writeexcel 0.3.5 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. data/.gitattributes +1 -0
  2. data/README.rdoc +12 -6
  3. data/VERSION +1 -1
  4. data/charts/chartex.rb +316 -315
  5. data/charts/demo1.rb +1 -0
  6. data/charts/demo2.rb +1 -0
  7. data/charts/demo3.rb +117 -116
  8. data/charts/demo4.rb +119 -118
  9. data/charts/demo5.rb +48 -47
  10. data/examples/a_simple.rb +1 -0
  11. data/examples/autofilter.rb +1 -0
  12. data/examples/bigfile.rb +30 -29
  13. data/examples/chart_area.rb +121 -120
  14. data/examples/chart_bar.rb +120 -119
  15. data/examples/chart_column.rb +120 -119
  16. data/examples/chart_line.rb +120 -119
  17. data/examples/chart_pie.rb +108 -107
  18. data/examples/chart_scatter.rb +121 -120
  19. data/examples/chart_stock.rb +148 -147
  20. data/examples/chess.rb +1 -0
  21. data/examples/colors.rb +1 -0
  22. data/examples/comments1.rb +1 -0
  23. data/examples/comments2.rb +3 -2
  24. data/examples/copyformat.rb +1 -0
  25. data/examples/data_validate.rb +1 -0
  26. data/examples/date_time.rb +1 -0
  27. data/examples/defined_name.rb +1 -0
  28. data/examples/demo.rb +1 -0
  29. data/examples/diag_border.rb +1 -0
  30. data/examples/formats.rb +1 -0
  31. data/examples/formula_result.rb +1 -0
  32. data/examples/header.rb +1 -0
  33. data/examples/hide_sheet.rb +1 -0
  34. data/examples/hyperlink.rb +1 -0
  35. data/examples/images.rb +1 -0
  36. data/examples/indent.rb +1 -0
  37. data/examples/merge1.rb +1 -0
  38. data/examples/merge2.rb +1 -0
  39. data/examples/merge3.rb +1 -0
  40. data/examples/merge4.rb +1 -0
  41. data/examples/merge5.rb +1 -0
  42. data/examples/merge6.rb +67 -66
  43. data/examples/outline.rb +1 -0
  44. data/examples/outline_collapsed.rb +1 -0
  45. data/examples/panes.rb +1 -0
  46. data/examples/properties.rb +1 -0
  47. data/examples/properties_jp.rb +1 -0
  48. data/examples/protection.rb +1 -0
  49. data/examples/regions.rb +1 -0
  50. data/examples/repeat.rb +1 -0
  51. data/examples/right_to_left.rb +1 -0
  52. data/examples/row_wrap.rb +1 -0
  53. data/examples/stats.rb +1 -0
  54. data/examples/stocks.rb +1 -0
  55. data/examples/tab_colors.rb +1 -0
  56. data/examples/write_arrays.rb +1 -0
  57. data/lib/writeexcel.rb +6 -1
  58. data/lib/writeexcel/biffwriter.rb +21 -20
  59. data/lib/writeexcel/chart.rb +25 -12
  60. data/lib/writeexcel/charts/area.rb +153 -152
  61. data/lib/writeexcel/charts/bar.rb +178 -177
  62. data/lib/writeexcel/charts/column.rb +157 -156
  63. data/lib/writeexcel/charts/external.rb +62 -61
  64. data/lib/writeexcel/charts/line.rb +153 -152
  65. data/lib/writeexcel/charts/pie.rb +170 -169
  66. data/lib/writeexcel/charts/scatter.rb +4 -3
  67. data/lib/writeexcel/charts/stock.rb +212 -211
  68. data/lib/writeexcel/compatibility.rb +320 -0
  69. data/lib/writeexcel/excelformulaparser.rb +587 -586
  70. data/lib/writeexcel/format.rb +12 -13
  71. data/lib/writeexcel/formula.rb +30 -28
  72. data/lib/writeexcel/helper.rb +23 -0
  73. data/lib/writeexcel/olewriter.rb +5 -16
  74. data/lib/writeexcel/properties.rb +43 -54
  75. data/lib/writeexcel/storage_lite.rb +981 -968
  76. data/lib/writeexcel/workbook.rb +94 -73
  77. data/lib/writeexcel/worksheet.rb +230 -210
  78. data/test/helper.rb +19 -0
  79. data/test/test_00_IEEE_double.rb +1 -0
  80. data/test/test_01_add_worksheet.rb +1 -0
  81. data/test/test_02_merge_formats.rb +3 -5
  82. data/test/test_04_dimensions.rb +3 -5
  83. data/test/test_05_rows.rb +6 -6
  84. data/test/test_06_extsst.rb +8 -8
  85. data/test/test_11_date_time.rb +3 -5
  86. data/test/test_12_date_only.rb +3 -5
  87. data/test/test_13_date_seconds.rb +4 -6
  88. data/test/test_21_escher.rb +3 -5
  89. data/test/test_22_mso_drawing_group.rb +20 -22
  90. data/test/test_23_note.rb +5 -7
  91. data/test/test_24_txo.rb +3 -5
  92. data/test/test_25_position_object.rb +84 -79
  93. data/test/test_26_autofilter.rb +3 -13
  94. data/test/test_27_autofilter.rb +3 -13
  95. data/test/test_28_autofilter.rb +3 -13
  96. data/test/test_29_process_jpg.rb +5 -0
  97. data/test/test_30_validation_dval.rb +3 -5
  98. data/test/test_31_validation_dv_strings.rb +3 -5
  99. data/test/test_32_validation_dv_formula.rb +3 -5
  100. data/test/test_40_property_types.rb +10 -9
  101. data/test/test_41_properties.rb +1 -0
  102. data/test/test_42_set_properties.rb +14 -15
  103. data/test/test_50_name_stored.rb +299 -302
  104. data/test/test_51_name_print_area.rb +357 -360
  105. data/test/test_52_name_print_titles.rb +454 -457
  106. data/test/test_53_autofilter.rb +203 -206
  107. data/test/test_60_chart_generic.rb +5 -0
  108. data/test/test_61_chart_subclasses.rb +95 -94
  109. data/test/test_62_chart_formats.rb +272 -267
  110. data/test/test_63_chart_area_formats.rb +649 -644
  111. data/test/test_biff.rb +12 -38
  112. data/test/test_compatibility.rb +627 -0
  113. data/test/test_example_match.rb +3 -18
  114. data/test/test_format.rb +46 -105
  115. data/test/test_formula.rb +1 -0
  116. data/test/test_ole.rb +3 -4
  117. data/test/test_storage_lite.rb +125 -146
  118. data/test/test_workbook.rb +2 -23
  119. data/test/test_worksheet.rb +4 -5
  120. data/utils/add_magic_comment.rb +80 -0
  121. data/writeexcel.gemspec +8 -2
  122. metadata +10 -4
@@ -1,267 +1,272 @@
1
- require 'helper'
2
- require 'stringio'
3
-
4
- ###############################################################################
5
- #
6
- # A test for Spreadsheet::WriteExcel::Chart.
7
- #
8
- # Tests for the Excel Chart.pm format conversion methods.
9
- #
10
- # reverse('ゥ'), January 2010, John McNamara, jmcnamara@cpan.org
11
- #
12
- # original written in Perl by John McNamara
13
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
14
- #
15
- class TC_ChartFormats < Test::Unit::TestCase
16
- def setup
17
- @io = StringIO.new
18
- @workbook = WriteExcel.new(@io)
19
- @chart = @workbook.add_chart(:type => Chart::Column)
20
- end
21
-
22
- ###############################################################################
23
- #
24
- # Test. User defined colour as string.
25
- #
26
- def test_user_defined_color_as_string
27
- color = 'red'
28
- caption1 = " \tChart: index = get_color_indices(#{color})"
29
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
30
-
31
- expected_index = 0x0A
32
- expected_rgb = 0x000000FF
33
-
34
- got_index, got_rgb = @chart.get_color_indices(color)
35
-
36
- assert_equal(expected_index, got_index, caption1)
37
- assert_equal(expected_rgb, got_rgb, caption2)
38
-
39
- color = 'black'
40
- caption1 = " \tChart: index = get_color_indices(#{color})"
41
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
42
-
43
- expected_index = 0x08
44
- expected_rgb = 0x00000000
45
-
46
- got_index, got_rgb = @chart.get_color_indices(color)
47
-
48
- assert_equal(expected_index, got_index, caption1)
49
- assert_equal(expected_rgb, got_rgb, caption2)
50
-
51
- color = 'white'
52
- caption1 = " \tChart: index = get_color_indices(#{color})"
53
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
54
-
55
- expected_index = 0x09
56
- expected_rgb = 0x00FFFFFF
57
-
58
- got_index, got_rgb = @chart.get_color_indices(color)
59
-
60
- assert_equal(expected_index, got_index, caption1)
61
- assert_equal(expected_rgb, got_rgb, caption2)
62
- end
63
-
64
- ###############################################################################
65
- #
66
- # Test. User defined colour as an index.
67
- #
68
- def test_user_defined_color_as_an_index
69
- color = 0x0A
70
- caption1 = " \tChart: index = get_color_indices(#{color})"
71
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
72
-
73
- expected_index = 0x0A
74
- expected_rgb = 0x000000FF
75
-
76
-
77
- got_index, got_rgb = @chart.get_color_indices(color)
78
-
79
- assert_equal(expected_index, got_index, caption1)
80
- assert_equal(expected_rgb, got_rgb, caption2)
81
- end
82
-
83
- ###############################################################################
84
- #
85
- # Test. User defined colour as an out of range index.
86
- #
87
- def test_user_defined_color_as_an_out_of_range_index
88
- color = 7
89
- caption1 = " \tChart: index = get_color_indices(#{color})"
90
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
91
-
92
- expected_index = nil
93
- expected_rgb = nil
94
-
95
- got_index, got_rgb = @chart.get_color_indices(color)
96
-
97
- assert_equal(expected_index, got_index, caption1)
98
- assert_equal(expected_rgb, got_rgb, caption2)
99
-
100
- color = 64
101
- caption1 = " \tChart: index = get_color_indices(#{color})"
102
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
103
-
104
- expected_index = nil
105
- expected_rgb = nil
106
-
107
- got_index, got_rgb = @chart.get_color_indices(color)
108
-
109
- assert_equal(expected_index, got_index, caption1)
110
- assert_equal(expected_rgb, got_rgb, caption2)
111
- end
112
-
113
- ###############################################################################
114
- #
115
- # Test. User defined colour as an invalid string.
116
- #
117
- def test_user_defined_color_as_an_invalid_string
118
- color = 'plaid'
119
- caption1 = " \tChart: index = get_color_indices(#{color})"
120
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
121
-
122
- expected_index = nil
123
- expected_rgb = nil
124
-
125
- got_index, got_rgb = @chart.get_color_indices(color)
126
-
127
- assert_equal(expected_index, got_index, caption1)
128
- assert_equal(expected_rgb, got_rgb, caption2)
129
- end
130
-
131
- ###############################################################################
132
- #
133
- # Test. User defined colour as an undef property.
134
- #
135
- def test_user_defined_color_as_an_nil_property
136
- color = nil
137
- caption1 = " \tChart: index = get_color_indices(#{color})"
138
- caption2 = " \tChart: rgb = get_color_indices(#{color})"
139
-
140
- expected_index = nil
141
- expected_rgb = nil
142
-
143
- got_index, got_rgb = @chart.get_color_indices(color)
144
-
145
- assert_equal(expected_index, got_index, caption1)
146
- assert_equal(expected_rgb, got_rgb, caption2)
147
- end
148
-
149
- ###############################################################################
150
- #
151
- # Test. Line patterns with indices.
152
- #
153
- def test_line_patterns_with_indices
154
- caption = " \tChart: pattern = _get_line_pattern()"
155
-
156
- values = {
157
- 0 => 5,
158
- 1 => 0,
159
- 2 => 1,
160
- 3 => 2,
161
- 4 => 3,
162
- 5 => 4,
163
- 6 => 7,
164
- 7 => 6,
165
- 8 => 8,
166
- 9 => 0,
167
- nil => 0
168
- }
169
-
170
- expected = []
171
- got = []
172
-
173
- values.each do |user, excel|
174
- got.push(@chart.get_line_pattern(user))
175
- expected.push(excel)
176
- end
177
-
178
- assert_equal(expected, got, caption)
179
- end
180
-
181
- ###############################################################################
182
- #
183
- # Test. Line patterns with names.
184
- #
185
- def test_line_patterns_with_names
186
- caption = " \tChart: pattern = _get_line_pattern()"
187
-
188
- values = {
189
- 'solid' => 0,
190
- 'dash' => 1,
191
- 'dot' => 2,
192
- 'dash-dot' => 3,
193
- 'dash-dot-dot' => 4,
194
- 'none' => 5,
195
- 'dark-gray' => 6,
196
- 'medium-gray' => 7,
197
- 'light-gray' => 8,
198
- 'DASH' => 1,
199
- 'fictional' => 0
200
- }
201
-
202
- expected = []
203
- got = []
204
-
205
- values.each do |user, excel|
206
- got.push(@chart.get_line_pattern(user))
207
- expected.push(excel)
208
- end
209
-
210
- assert_equal(expected, got, caption)
211
- end
212
-
213
- ###############################################################################
214
- #
215
- # Test. Line weights with indices.
216
- #
217
- def test_line_weights_with_indices
218
- caption = " \tChart: weight = _get_line_weight()"
219
-
220
- values = {
221
- 1 => -1,
222
- 2 => 0,
223
- 3 => 1,
224
- 4 => 2,
225
- 5 => 0,
226
- 0 => 0,
227
- nil => 0
228
- }
229
-
230
- expected = []
231
- got = []
232
-
233
- values.each do |user, excel|
234
- got.push(@chart.get_line_weight(user))
235
- expected.push(excel)
236
- end
237
-
238
- assert_equal(expected, got, caption)
239
- end
240
-
241
- ###############################################################################
242
- #
243
- # Test. Line weights with names.
244
- #
245
- def test_line_weights_with_names
246
- caption = " \tChart: weight = _get_line_weight()"
247
-
248
- values = {
249
- 'hairline' => -1,
250
- 'narrow' => 0,
251
- 'medium' => 1,
252
- 'wide' => 2,
253
- 'WIDE' => 2,
254
- 'Fictional' => 0,
255
- }
256
-
257
- expected = []
258
- got = []
259
-
260
- values.each do |user, excel|
261
- got.push(@chart.get_line_weight(user))
262
- expected.push(excel)
263
- end
264
-
265
- assert_equal(expected, got, caption)
266
- end
267
- end
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'stringio'
4
+
5
+ ###############################################################################
6
+ #
7
+ # A test for Spreadsheet::WriteExcel::Chart.
8
+ #
9
+ # Tests for the Excel Chart.pm format conversion methods.
10
+ #
11
+ # reverse('ゥ'), January 2010, John McNamara, jmcnamara@cpan.org
12
+ #
13
+ # original written in Perl by John McNamara
14
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
15
+ #
16
+ class TC_ChartFormats < Test::Unit::TestCase
17
+ def setup
18
+ @io = StringIO.new
19
+ @workbook = WriteExcel.new(@io)
20
+ @chart = @workbook.add_chart(:type => Chart::Column)
21
+ end
22
+
23
+ def teardown
24
+ @workbook.close
25
+ end
26
+
27
+ ###############################################################################
28
+ #
29
+ # Test. User defined colour as string.
30
+ #
31
+ def test_user_defined_color_as_string
32
+ color = 'red'
33
+ caption1 = " \tChart: index = get_color_indices(#{color})"
34
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
35
+
36
+ expected_index = 0x0A
37
+ expected_rgb = 0x000000FF
38
+
39
+ got_index, got_rgb = @chart.get_color_indices(color)
40
+
41
+ assert_equal(expected_index, got_index, caption1)
42
+ assert_equal(expected_rgb, got_rgb, caption2)
43
+
44
+ color = 'black'
45
+ caption1 = " \tChart: index = get_color_indices(#{color})"
46
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
47
+
48
+ expected_index = 0x08
49
+ expected_rgb = 0x00000000
50
+
51
+ got_index, got_rgb = @chart.get_color_indices(color)
52
+
53
+ assert_equal(expected_index, got_index, caption1)
54
+ assert_equal(expected_rgb, got_rgb, caption2)
55
+
56
+ color = 'white'
57
+ caption1 = " \tChart: index = get_color_indices(#{color})"
58
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
59
+
60
+ expected_index = 0x09
61
+ expected_rgb = 0x00FFFFFF
62
+
63
+ got_index, got_rgb = @chart.get_color_indices(color)
64
+
65
+ assert_equal(expected_index, got_index, caption1)
66
+ assert_equal(expected_rgb, got_rgb, caption2)
67
+ end
68
+
69
+ ###############################################################################
70
+ #
71
+ # Test. User defined colour as an index.
72
+ #
73
+ def test_user_defined_color_as_an_index
74
+ color = 0x0A
75
+ caption1 = " \tChart: index = get_color_indices(#{color})"
76
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
77
+
78
+ expected_index = 0x0A
79
+ expected_rgb = 0x000000FF
80
+
81
+
82
+ got_index, got_rgb = @chart.get_color_indices(color)
83
+
84
+ assert_equal(expected_index, got_index, caption1)
85
+ assert_equal(expected_rgb, got_rgb, caption2)
86
+ end
87
+
88
+ ###############################################################################
89
+ #
90
+ # Test. User defined colour as an out of range index.
91
+ #
92
+ def test_user_defined_color_as_an_out_of_range_index
93
+ color = 7
94
+ caption1 = " \tChart: index = get_color_indices(#{color})"
95
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
96
+
97
+ expected_index = nil
98
+ expected_rgb = nil
99
+
100
+ got_index, got_rgb = @chart.get_color_indices(color)
101
+
102
+ assert_equal(expected_index, got_index, caption1)
103
+ assert_equal(expected_rgb, got_rgb, caption2)
104
+
105
+ color = 64
106
+ caption1 = " \tChart: index = get_color_indices(#{color})"
107
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
108
+
109
+ expected_index = nil
110
+ expected_rgb = nil
111
+
112
+ got_index, got_rgb = @chart.get_color_indices(color)
113
+
114
+ assert_equal(expected_index, got_index, caption1)
115
+ assert_equal(expected_rgb, got_rgb, caption2)
116
+ end
117
+
118
+ ###############################################################################
119
+ #
120
+ # Test. User defined colour as an invalid string.
121
+ #
122
+ def test_user_defined_color_as_an_invalid_string
123
+ color = 'plaid'
124
+ caption1 = " \tChart: index = get_color_indices(#{color})"
125
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
126
+
127
+ expected_index = nil
128
+ expected_rgb = nil
129
+
130
+ got_index, got_rgb = @chart.get_color_indices(color)
131
+
132
+ assert_equal(expected_index, got_index, caption1)
133
+ assert_equal(expected_rgb, got_rgb, caption2)
134
+ end
135
+
136
+ ###############################################################################
137
+ #
138
+ # Test. User defined colour as an undef property.
139
+ #
140
+ def test_user_defined_color_as_an_nil_property
141
+ color = nil
142
+ caption1 = " \tChart: index = get_color_indices(#{color})"
143
+ caption2 = " \tChart: rgb = get_color_indices(#{color})"
144
+
145
+ expected_index = nil
146
+ expected_rgb = nil
147
+
148
+ got_index, got_rgb = @chart.get_color_indices(color)
149
+
150
+ assert_equal(expected_index, got_index, caption1)
151
+ assert_equal(expected_rgb, got_rgb, caption2)
152
+ end
153
+
154
+ ###############################################################################
155
+ #
156
+ # Test. Line patterns with indices.
157
+ #
158
+ def test_line_patterns_with_indices
159
+ caption = " \tChart: pattern = _get_line_pattern()"
160
+
161
+ values = {
162
+ 0 => 5,
163
+ 1 => 0,
164
+ 2 => 1,
165
+ 3 => 2,
166
+ 4 => 3,
167
+ 5 => 4,
168
+ 6 => 7,
169
+ 7 => 6,
170
+ 8 => 8,
171
+ 9 => 0,
172
+ nil => 0
173
+ }
174
+
175
+ expected = []
176
+ got = []
177
+
178
+ values.each do |user, excel|
179
+ got.push(@chart.get_line_pattern(user))
180
+ expected.push(excel)
181
+ end
182
+
183
+ assert_equal(expected, got, caption)
184
+ end
185
+
186
+ ###############################################################################
187
+ #
188
+ # Test. Line patterns with names.
189
+ #
190
+ def test_line_patterns_with_names
191
+ caption = " \tChart: pattern = _get_line_pattern()"
192
+
193
+ values = {
194
+ 'solid' => 0,
195
+ 'dash' => 1,
196
+ 'dot' => 2,
197
+ 'dash-dot' => 3,
198
+ 'dash-dot-dot' => 4,
199
+ 'none' => 5,
200
+ 'dark-gray' => 6,
201
+ 'medium-gray' => 7,
202
+ 'light-gray' => 8,
203
+ 'DASH' => 1,
204
+ 'fictional' => 0
205
+ }
206
+
207
+ expected = []
208
+ got = []
209
+
210
+ values.each do |user, excel|
211
+ got.push(@chart.get_line_pattern(user))
212
+ expected.push(excel)
213
+ end
214
+
215
+ assert_equal(expected, got, caption)
216
+ end
217
+
218
+ ###############################################################################
219
+ #
220
+ # Test. Line weights with indices.
221
+ #
222
+ def test_line_weights_with_indices
223
+ caption = " \tChart: weight = _get_line_weight()"
224
+
225
+ values = {
226
+ 1 => -1,
227
+ 2 => 0,
228
+ 3 => 1,
229
+ 4 => 2,
230
+ 5 => 0,
231
+ 0 => 0,
232
+ nil => 0
233
+ }
234
+
235
+ expected = []
236
+ got = []
237
+
238
+ values.each do |user, excel|
239
+ got.push(@chart.get_line_weight(user))
240
+ expected.push(excel)
241
+ end
242
+
243
+ assert_equal(expected, got, caption)
244
+ end
245
+
246
+ ###############################################################################
247
+ #
248
+ # Test. Line weights with names.
249
+ #
250
+ def test_line_weights_with_names
251
+ caption = " \tChart: weight = _get_line_weight()"
252
+
253
+ values = {
254
+ 'hairline' => -1,
255
+ 'narrow' => 0,
256
+ 'medium' => 1,
257
+ 'wide' => 2,
258
+ 'WIDE' => 2,
259
+ 'Fictional' => 0,
260
+ }
261
+
262
+ expected = []
263
+ got = []
264
+
265
+ values.each do |user, excel|
266
+ got.push(@chart.get_line_weight(user))
267
+ expected.push(excel)
268
+ end
269
+
270
+ assert_equal(expected, got, caption)
271
+ end
272
+ end