writeexcel 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. data/.gitattributes +1 -1
  2. data/.gitignore +24 -24
  3. data/README.rdoc +34 -55
  4. data/VERSION +1 -1
  5. data/charts/chartex.rb +316 -316
  6. data/charts/demo1.rb +46 -46
  7. data/charts/demo2.rb +65 -65
  8. data/charts/demo3.rb +117 -117
  9. data/charts/demo4.rb +119 -119
  10. data/charts/demo5.rb +48 -48
  11. data/examples/a_simple.rb +43 -43
  12. data/examples/autofilter.rb +265 -265
  13. data/examples/bigfile.rb +30 -30
  14. data/examples/chart_area.rb +121 -121
  15. data/examples/chart_bar.rb +120 -120
  16. data/examples/chart_column.rb +120 -120
  17. data/examples/chart_line.rb +120 -120
  18. data/examples/chart_pie.rb +108 -108
  19. data/examples/chart_scatter.rb +121 -121
  20. data/examples/chart_stock.rb +148 -148
  21. data/examples/chess.rb +142 -142
  22. data/examples/colors.rb +129 -129
  23. data/examples/comments1.rb +27 -27
  24. data/examples/comments2.rb +352 -352
  25. data/examples/copyformat.rb +52 -52
  26. data/examples/data_validate.rb +279 -279
  27. data/examples/date_time.rb +87 -87
  28. data/examples/defined_name.rb +32 -32
  29. data/examples/demo.rb +124 -124
  30. data/examples/diag_border.rb +36 -36
  31. data/examples/formats.rb +490 -490
  32. data/examples/formula_result.rb +30 -30
  33. data/examples/header.rb +137 -137
  34. data/examples/hide_sheet.rb +29 -29
  35. data/examples/hyperlink.rb +43 -43
  36. data/examples/images.rb +63 -63
  37. data/examples/indent.rb +31 -31
  38. data/examples/merge1.rb +40 -40
  39. data/examples/merge2.rb +45 -45
  40. data/examples/merge3.rb +66 -66
  41. data/examples/merge4.rb +83 -83
  42. data/examples/merge5.rb +80 -80
  43. data/examples/merge6.rb +67 -67
  44. data/examples/outline.rb +255 -255
  45. data/examples/outline_collapsed.rb +209 -209
  46. data/examples/panes.rb +113 -113
  47. data/examples/properties.rb +34 -34
  48. data/examples/properties_jp.rb +33 -33
  49. data/examples/protection.rb +47 -47
  50. data/examples/regions.rb +53 -53
  51. data/examples/repeat.rb +43 -43
  52. data/examples/right_to_left.rb +27 -27
  53. data/examples/row_wrap.rb +53 -53
  54. data/examples/stats.rb +74 -74
  55. data/examples/stocks.rb +81 -81
  56. data/examples/tab_colors.rb +31 -31
  57. data/examples/utf8.rb +15 -15
  58. data/examples/write_arrays.rb +83 -83
  59. data/lib/writeexcel/biffwriter.rb +232 -232
  60. data/lib/writeexcel/caller_info.rb +12 -12
  61. data/lib/writeexcel/chart.rb +2190 -2177
  62. data/lib/writeexcel/charts/area.rb +154 -154
  63. data/lib/writeexcel/charts/bar.rb +177 -177
  64. data/lib/writeexcel/charts/column.rb +156 -156
  65. data/lib/writeexcel/charts/external.rb +66 -66
  66. data/lib/writeexcel/charts/line.rb +154 -154
  67. data/lib/writeexcel/charts/pie.rb +169 -169
  68. data/lib/writeexcel/charts/scatter.rb +192 -192
  69. data/lib/writeexcel/charts/stock.rb +213 -213
  70. data/lib/writeexcel/colors.rb +64 -64
  71. data/lib/writeexcel/compatibility.rb +0 -255
  72. data/lib/writeexcel/debug_info.rb +37 -33
  73. data/lib/writeexcel/excelformulaparser.rb +587 -587
  74. data/lib/writeexcel/format.rb +13 -4
  75. data/lib/writeexcel/formula.rb +26 -9
  76. data/lib/writeexcel/helper.rb +68 -64
  77. data/lib/writeexcel/olewriter.rb +311 -311
  78. data/lib/writeexcel/properties.rb +242 -240
  79. data/lib/writeexcel/storage_lite.rb +984 -978
  80. data/lib/writeexcel/workbook.rb +3210 -3192
  81. data/lib/writeexcel/worksheet.rb +143 -51
  82. data/lib/writeexcel/write_file.rb +44 -40
  83. data/lib/writeexcel.rb +1159 -1159
  84. data/test/helper.rb +31 -28
  85. data/test/perl_output/README +31 -31
  86. data/test/test_00_IEEE_double.rb +13 -13
  87. data/test/test_01_add_worksheet.rb +10 -10
  88. data/test/test_02_merge_formats.rb +53 -53
  89. data/test/test_04_dimensions.rb +392 -392
  90. data/test/test_05_rows.rb +179 -179
  91. data/test/test_06_extsst.rb +77 -77
  92. data/test/test_11_date_time.rb +479 -479
  93. data/test/test_12_date_only.rb +501 -501
  94. data/test/test_13_date_seconds.rb +481 -481
  95. data/test/test_21_escher.rb +637 -637
  96. data/test/test_22_mso_drawing_group.rb +745 -745
  97. data/test/test_23_note.rb +73 -73
  98. data/test/test_24_txo.rb +75 -75
  99. data/test/test_25_position_object.rb +84 -84
  100. data/test/test_26_autofilter.rb +314 -314
  101. data/test/test_27_autofilter.rb +131 -131
  102. data/test/test_28_autofilter.rb +161 -161
  103. data/test/test_29_process_jpg.rb +683 -683
  104. data/test/test_30_validation_dval.rb +77 -77
  105. data/test/test_31_validation_dv_strings.rb +126 -126
  106. data/test/test_32_validation_dv_formula.rb +206 -206
  107. data/test/test_40_property_types.rb +188 -188
  108. data/test/test_41_properties.rb +235 -235
  109. data/test/test_42_set_properties.rb +437 -437
  110. data/test/test_50_name_stored.rb +299 -299
  111. data/test/test_51_name_print_area.rb +357 -357
  112. data/test/test_52_name_print_titles.rb +454 -454
  113. data/test/test_53_autofilter.rb +203 -203
  114. data/test/test_60_chart_generic.rb +578 -578
  115. data/test/test_61_chart_subclasses.rb +95 -95
  116. data/test/test_62_chart_formats.rb +272 -272
  117. data/test/test_63_chart_area_formats.rb +649 -649
  118. data/test/test_biff.rb +75 -75
  119. data/test/test_compatibility.rb +12 -627
  120. data/test/test_example_match.rb +3144 -3144
  121. data/test/test_formula.rb +61 -61
  122. data/test/test_ole.rb +106 -106
  123. data/test/test_storage_lite.rb +125 -125
  124. data/test/test_workbook.rb +139 -139
  125. data/test/test_worksheet.rb +110 -110
  126. data/utils/add_magic_comment.rb +80 -80
  127. data/writeexcel.gemspec +4 -6
  128. data/writeexcel.rdoc +58 -15
  129. metadata +9 -6
  130. data/test/test_new_encoding.rb +0 -205
@@ -1,131 +1,131 @@
1
- # -*- coding: utf-8 -*-
2
- ##########################################################################
3
- # test_27_autofilter.rb
4
- #
5
- # Tests for the token extraction method used to parse autofilter expressions.
6
- #
7
- # reverse('©'), September 2005, John McNamara, jmcnamara@cpan.org
8
- #
9
- # original written in Perl by John McNamara
10
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
11
- #
12
- #########################################################################
13
- require 'helper'
14
- require 'stringio'
15
-
16
- class TC_27_autofilter < Test::Unit::TestCase
17
-
18
- def test_27_autofilter
19
- @tests.each do |test|
20
- expression = test[0]
21
- expected = test[1]
22
- result = @worksheet.extract_filter_tokens(expression)
23
-
24
- testname = expression || 'none'
25
-
26
- assert_equal(expected, result, testname)
27
- end
28
- end
29
-
30
- def setup
31
- @workbook = WriteExcel.new(StringIO.new)
32
- @worksheet = @workbook.add_worksheet
33
- @tests = [
34
- [
35
- nil,
36
- [],
37
- ],
38
-
39
- [
40
- '',
41
- [],
42
- ],
43
-
44
- [
45
- '0 < 2000',
46
- [0, '<', 2000],
47
- ],
48
-
49
- [
50
- 'x < 2000',
51
- ['x', '<', 2000],
52
- ],
53
-
54
- [
55
- 'x > 2000',
56
- ['x', '>', 2000],
57
- ],
58
-
59
- [
60
- 'x == 2000',
61
- ['x', '==', 2000],
62
- ],
63
-
64
- [
65
- 'x > 2000 and x < 5000',
66
- ['x', '>', 2000, 'and', 'x', '<', 5000],
67
- ],
68
-
69
- [
70
- 'x = "foo"',
71
- ['x', '=', 'foo'],
72
- ],
73
-
74
- [
75
- 'x = foo',
76
- ['x', '=', 'foo'],
77
- ],
78
-
79
- [
80
- 'x = "foo bar"',
81
- ['x', '=', 'foo bar'],
82
- ],
83
-
84
- [
85
- 'x = "foo "" bar"',
86
- ['x', '=', 'foo " bar'],
87
- ],
88
-
89
- [
90
- 'x = "foo bar" or x = "bar foo"',
91
- ['x', '=', 'foo bar', 'or', 'x', '=', 'bar foo'],
92
- ],
93
-
94
- [
95
- 'x = "foo "" bar" or x = "bar "" foo"',
96
- ['x', '=', 'foo " bar', 'or', 'x', '=', 'bar " foo'],
97
- ],
98
-
99
- [
100
- 'x = """"""""',
101
- ['x', '=', '"""'],
102
- ],
103
-
104
- [
105
- 'x = Blanks',
106
- ['x', '=', 'Blanks'],
107
- ],
108
-
109
- [
110
- 'x = NonBlanks',
111
- ['x', '=', 'NonBlanks'],
112
- ],
113
-
114
- [
115
- 'top 10 %',
116
- ['top', 10, '%'],
117
- ],
118
-
119
- [
120
- 'top 10 items',
121
- ['top', 10, 'items'],
122
- ],
123
-
124
- ]
125
- end
126
-
127
- def teardown
128
- @workbook.close
129
- end
130
-
131
- end
1
+ # -*- coding: utf-8 -*-
2
+ ##########################################################################
3
+ # test_27_autofilter.rb
4
+ #
5
+ # Tests for the token extraction method used to parse autofilter expressions.
6
+ #
7
+ # reverse('©'), September 2005, John McNamara, jmcnamara@cpan.org
8
+ #
9
+ # original written in Perl by John McNamara
10
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
11
+ #
12
+ #########################################################################
13
+ require 'helper'
14
+ require 'stringio'
15
+
16
+ class TC_27_autofilter < Test::Unit::TestCase
17
+
18
+ def test_27_autofilter
19
+ @tests.each do |test|
20
+ expression = test[0]
21
+ expected = test[1]
22
+ result = @worksheet.extract_filter_tokens(expression)
23
+
24
+ testname = expression || 'none'
25
+
26
+ assert_equal(expected, result, testname)
27
+ end
28
+ end
29
+
30
+ def setup
31
+ @workbook = WriteExcel.new(StringIO.new)
32
+ @worksheet = @workbook.add_worksheet
33
+ @tests = [
34
+ [
35
+ nil,
36
+ [],
37
+ ],
38
+
39
+ [
40
+ '',
41
+ [],
42
+ ],
43
+
44
+ [
45
+ '0 < 2000',
46
+ [0, '<', 2000],
47
+ ],
48
+
49
+ [
50
+ 'x < 2000',
51
+ ['x', '<', 2000],
52
+ ],
53
+
54
+ [
55
+ 'x > 2000',
56
+ ['x', '>', 2000],
57
+ ],
58
+
59
+ [
60
+ 'x == 2000',
61
+ ['x', '==', 2000],
62
+ ],
63
+
64
+ [
65
+ 'x > 2000 and x < 5000',
66
+ ['x', '>', 2000, 'and', 'x', '<', 5000],
67
+ ],
68
+
69
+ [
70
+ 'x = "foo"',
71
+ ['x', '=', 'foo'],
72
+ ],
73
+
74
+ [
75
+ 'x = foo',
76
+ ['x', '=', 'foo'],
77
+ ],
78
+
79
+ [
80
+ 'x = "foo bar"',
81
+ ['x', '=', 'foo bar'],
82
+ ],
83
+
84
+ [
85
+ 'x = "foo "" bar"',
86
+ ['x', '=', 'foo " bar'],
87
+ ],
88
+
89
+ [
90
+ 'x = "foo bar" or x = "bar foo"',
91
+ ['x', '=', 'foo bar', 'or', 'x', '=', 'bar foo'],
92
+ ],
93
+
94
+ [
95
+ 'x = "foo "" bar" or x = "bar "" foo"',
96
+ ['x', '=', 'foo " bar', 'or', 'x', '=', 'bar " foo'],
97
+ ],
98
+
99
+ [
100
+ 'x = """"""""',
101
+ ['x', '=', '"""'],
102
+ ],
103
+
104
+ [
105
+ 'x = Blanks',
106
+ ['x', '=', 'Blanks'],
107
+ ],
108
+
109
+ [
110
+ 'x = NonBlanks',
111
+ ['x', '=', 'NonBlanks'],
112
+ ],
113
+
114
+ [
115
+ 'top 10 %',
116
+ ['top', 10, '%'],
117
+ ],
118
+
119
+ [
120
+ 'top 10 items',
121
+ ['top', 10, 'items'],
122
+ ],
123
+
124
+ ]
125
+ end
126
+
127
+ def teardown
128
+ @workbook.close
129
+ end
130
+
131
+ end
@@ -1,161 +1,161 @@
1
- # -*- coding: utf-8 -*-
2
- ##########################################################################
3
- # test_28_autofilter.rb
4
- #
5
- # Tests for the token parsing methods used to parse autofilter expressions.
6
- #
7
- # reverse('©'), September 2005, John McNamara, jmcnamara@cpan.org
8
- #
9
- # original written in Perl by John McNamara
10
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
11
- #
12
- #########################################################################
13
- require 'helper'
14
- require 'stringio'
15
-
16
- class TC_28_autofilter < Test::Unit::TestCase
17
-
18
- def test_28_autofilter
19
- @tests.each do |test|
20
- expression = test[0]
21
- expected = test[1]
22
- tokens = @worksheet.extract_filter_tokens(expression)
23
- result = @worksheet.parse_filter_expression(expression, tokens)
24
-
25
- testname = expression || 'none'
26
-
27
- assert_equal(expected, result, testname)
28
- end
29
- end
30
-
31
- def setup
32
- @workbook = WriteExcel.new(StringIO.new)
33
- @worksheet = @workbook.add_worksheet
34
- @tests = [
35
- [
36
- 'x = 2000',
37
- [2, 2000],
38
- ],
39
-
40
- [
41
- 'x == 2000',
42
- [2, 2000],
43
- ],
44
-
45
- [
46
- 'x =~ 2000',
47
- [2, 2000],
48
- ],
49
-
50
- [
51
- 'x eq 2000',
52
- [2, 2000],
53
- ],
54
-
55
- [
56
- 'x <> 2000',
57
- [5, 2000],
58
- ],
59
-
60
- [
61
- 'x != 2000',
62
- [5, 2000],
63
- ],
64
-
65
- [
66
- 'x ne 2000',
67
- [5, 2000],
68
- ],
69
-
70
- [
71
- 'x !~ 2000',
72
- [5, 2000],
73
- ],
74
-
75
- [
76
- 'x > 2000',
77
- [4, 2000],
78
- ],
79
-
80
- [
81
- 'x < 2000',
82
- [1, 2000],
83
- ],
84
-
85
- [
86
- 'x >= 2000',
87
- [6, 2000],
88
- ],
89
-
90
- [
91
- 'x <= 2000',
92
- [3, 2000],
93
- ],
94
-
95
- [
96
- 'x > 2000 and x < 5000',
97
- [4, 2000, 0, 1, 5000],
98
- ],
99
-
100
- [
101
- 'x > 2000 && x < 5000',
102
- [4, 2000, 0, 1, 5000],
103
- ],
104
-
105
- [
106
- 'x > 2000 or x < 5000',
107
- [4, 2000, 1, 1, 5000],
108
- ],
109
-
110
- [
111
- 'x > 2000 || x < 5000',
112
- [4, 2000, 1, 1, 5000],
113
- ],
114
-
115
- [
116
- 'x = Blanks',
117
- [2, 'blanks'],
118
- ],
119
-
120
- [
121
- 'x = NonBlanks',
122
- [2, 'nonblanks'],
123
- ],
124
-
125
- [
126
- 'x <> Blanks',
127
- [2, 'nonblanks'],
128
- ],
129
-
130
- [
131
- 'x <> NonBlanks',
132
- [2, 'blanks'],
133
- ],
134
-
135
- [
136
- 'Top 10 Items',
137
- [30, 10],
138
- ],
139
-
140
- [
141
- 'Top 20 %',
142
- [31, 20],
143
- ],
144
-
145
- [
146
- 'Bottom 5 Items',
147
- [32, 5],
148
- ],
149
-
150
- [
151
- 'Bottom 101 %',
152
- [33, 101],
153
- ],
154
- ]
155
- end
156
-
157
- def teardown
158
- @workbook.close
159
- end
160
-
161
- end
1
+ # -*- coding: utf-8 -*-
2
+ ##########################################################################
3
+ # test_28_autofilter.rb
4
+ #
5
+ # Tests for the token parsing methods used to parse autofilter expressions.
6
+ #
7
+ # reverse('©'), September 2005, John McNamara, jmcnamara@cpan.org
8
+ #
9
+ # original written in Perl by John McNamara
10
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
11
+ #
12
+ #########################################################################
13
+ require 'helper'
14
+ require 'stringio'
15
+
16
+ class TC_28_autofilter < Test::Unit::TestCase
17
+
18
+ def test_28_autofilter
19
+ @tests.each do |test|
20
+ expression = test[0]
21
+ expected = test[1]
22
+ tokens = @worksheet.extract_filter_tokens(expression)
23
+ result = @worksheet.parse_filter_expression(expression, tokens)
24
+
25
+ testname = expression || 'none'
26
+
27
+ assert_equal(expected, result, testname)
28
+ end
29
+ end
30
+
31
+ def setup
32
+ @workbook = WriteExcel.new(StringIO.new)
33
+ @worksheet = @workbook.add_worksheet
34
+ @tests = [
35
+ [
36
+ 'x = 2000',
37
+ [2, 2000],
38
+ ],
39
+
40
+ [
41
+ 'x == 2000',
42
+ [2, 2000],
43
+ ],
44
+
45
+ [
46
+ 'x =~ 2000',
47
+ [2, 2000],
48
+ ],
49
+
50
+ [
51
+ 'x eq 2000',
52
+ [2, 2000],
53
+ ],
54
+
55
+ [
56
+ 'x <> 2000',
57
+ [5, 2000],
58
+ ],
59
+
60
+ [
61
+ 'x != 2000',
62
+ [5, 2000],
63
+ ],
64
+
65
+ [
66
+ 'x ne 2000',
67
+ [5, 2000],
68
+ ],
69
+
70
+ [
71
+ 'x !~ 2000',
72
+ [5, 2000],
73
+ ],
74
+
75
+ [
76
+ 'x > 2000',
77
+ [4, 2000],
78
+ ],
79
+
80
+ [
81
+ 'x < 2000',
82
+ [1, 2000],
83
+ ],
84
+
85
+ [
86
+ 'x >= 2000',
87
+ [6, 2000],
88
+ ],
89
+
90
+ [
91
+ 'x <= 2000',
92
+ [3, 2000],
93
+ ],
94
+
95
+ [
96
+ 'x > 2000 and x < 5000',
97
+ [4, 2000, 0, 1, 5000],
98
+ ],
99
+
100
+ [
101
+ 'x > 2000 && x < 5000',
102
+ [4, 2000, 0, 1, 5000],
103
+ ],
104
+
105
+ [
106
+ 'x > 2000 or x < 5000',
107
+ [4, 2000, 1, 1, 5000],
108
+ ],
109
+
110
+ [
111
+ 'x > 2000 || x < 5000',
112
+ [4, 2000, 1, 1, 5000],
113
+ ],
114
+
115
+ [
116
+ 'x = Blanks',
117
+ [2, 'blanks'],
118
+ ],
119
+
120
+ [
121
+ 'x = NonBlanks',
122
+ [2, 'nonblanks'],
123
+ ],
124
+
125
+ [
126
+ 'x <> Blanks',
127
+ [2, 'nonblanks'],
128
+ ],
129
+
130
+ [
131
+ 'x <> NonBlanks',
132
+ [2, 'blanks'],
133
+ ],
134
+
135
+ [
136
+ 'Top 10 Items',
137
+ [30, 10],
138
+ ],
139
+
140
+ [
141
+ 'Top 20 %',
142
+ [31, 20],
143
+ ],
144
+
145
+ [
146
+ 'Bottom 5 Items',
147
+ [32, 5],
148
+ ],
149
+
150
+ [
151
+ 'Bottom 101 %',
152
+ [33, 101],
153
+ ],
154
+ ]
155
+ end
156
+
157
+ def teardown
158
+ @workbook.close
159
+ end
160
+
161
+ end