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
data/charts/demo4.rb CHANGED
@@ -1,119 +1,119 @@
1
- #!/usr/bin/ruby -w
2
- # -*- coding: utf-8 -*-
3
-
4
- ###############################################################################
5
- #
6
- # Simple example of how to add an externally created chart to a Spreadsheet::
7
- # WriteExcel file.
8
- #
9
- #
10
- # This example adds an "Open-high-low-close" stock chart extracted from the
11
- # file Chart3.xls as follows:
12
- #
13
- # perl chartex.pl -c=demo4 Chart4.xls
14
- #
15
- #
16
- # reverse('ゥ'), September 2004, John McNamara, jmcnamara@cpan.org
17
- #
18
- # original written in Perl by John McNamara
19
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
20
- #
21
-
22
- require 'writeexcel'
23
-
24
- workbook = WriteExcel.new("demo4.xls")
25
- worksheet = workbook.add_worksheet
26
-
27
- # Add the chart extracted using the chartex utility
28
- worksheet.embed_chart('G2', 'demo401.bin', 3, 3, 1.08, 1.21)
29
-
30
- # Link the chart to the worksheet data using a dummy formula.
31
- worksheet.store_formula('=Sheet1!A1')
32
-
33
-
34
- # Add some extra formats to cover formats used in the charts.
35
- chart_font_1 = workbook.add_format(:font_only => 1)
36
- chart_font_2 = workbook.add_format(:font_only => 1, :bold => 1)
37
- chart_font_3 = workbook.add_format(:font_only => 1)
38
- chart_font_4 = workbook.add_format(:font_only => 1)
39
-
40
- # Add all other formats.
41
- bold = workbook.add_format(:bold => 1)
42
- date_format = workbook.add_format(:num_format => 'dd/mm/yyyy')
43
-
44
- # Adjust column widths and add some headers
45
- worksheet.set_column('A:A', 12)
46
-
47
- worksheet.write('A1', 'Date', bold)
48
- worksheet.write('B1', 'Open', bold)
49
- worksheet.write('C1', 'High', bold)
50
- worksheet.write('D1', 'Low', bold)
51
- worksheet.write('E1', 'Close', bold)
52
-
53
-
54
- # Add data to range that the chart refers to.
55
- dates = [
56
-
57
- "2004-08-19T",
58
- "2004-08-20T",
59
- "2004-08-23T",
60
- "2004-08-24T",
61
- "2004-08-25T",
62
- "2004-08-26T",
63
- "2004-08-27T",
64
- "2004-08-30T",
65
- "2004-08-31T",
66
- "2004-09-01T",
67
- "2004-09-02T",
68
- "2004-09-03T",
69
- "2004-09-07T",
70
- "2004-09-08T",
71
- "2004-09-09T",
72
- "2004-09-10T",
73
- "2004-09-13T",
74
- "2004-09-14T",
75
- "2004-09-15T",
76
- "2004-09-16T",
77
- "2004-09-17T",
78
- "2004-09-20T",
79
- "2004-09-21T"
80
- ]
81
-
82
- # Open-High-Low-Close prices
83
- prices = [
84
-
85
- [100.00, 104.06, 95.96, 100.34],
86
- [101.01, 109.08, 100.50, 108.31],
87
- [110.75, 113.48, 109.05, 109.40],
88
- [111.24, 111.60, 103.57, 104.87],
89
- [104.96, 108.00, 103.88, 106.00],
90
- [104.95, 107.95, 104.66, 107.91],
91
- [108.10, 108.62, 105.69, 106.15],
92
- [105.28, 105.49, 102.01, 102.01],
93
- [102.30, 103.71, 102.16, 102.37],
94
- [102.70, 102.97, 99.67, 100.25],
95
- [ 99.19, 102.37, 98.94, 101.51],
96
- [100.95, 101.74, 99.32, 100.01],
97
- [101.01, 102.00, 99.61, 101.58],
98
- [100.74, 103.03, 100.50, 102.30],
99
- [102.53, 102.71, 101.00, 102.31],
100
- [101.60, 106.56, 101.30, 105.33],
101
- [106.63, 108.41, 106.46, 107.50],
102
- [107.45, 112.00, 106.79, 111.49],
103
- [110.56, 114.23, 110.20, 112.00],
104
- [112.34, 115.80, 111.65, 113.97],
105
- [114.42, 117.49, 113.55, 117.49],
106
- [116.95, 121.60, 116.77, 119.36],
107
- [119.81, 120.42, 117.51, 117.84]
108
- ]
109
-
110
-
111
-
112
- row = 1
113
- dates.each do |d|
114
- worksheet.write_date_time(row, 0, d, date_format)
115
- row += 1
116
- end
117
- worksheet.write_col('B2', prices)
118
-
119
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ###############################################################################
5
+ #
6
+ # Simple example of how to add an externally created chart to a Spreadsheet::
7
+ # WriteExcel file.
8
+ #
9
+ #
10
+ # This example adds an "Open-high-low-close" stock chart extracted from the
11
+ # file Chart3.xls as follows:
12
+ #
13
+ # perl chartex.pl -c=demo4 Chart4.xls
14
+ #
15
+ #
16
+ # reverse('ゥ'), September 2004, John McNamara, jmcnamara@cpan.org
17
+ #
18
+ # original written in Perl by John McNamara
19
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
20
+ #
21
+
22
+ require 'writeexcel'
23
+
24
+ workbook = WriteExcel.new("demo4.xls")
25
+ worksheet = workbook.add_worksheet
26
+
27
+ # Add the chart extracted using the chartex utility
28
+ worksheet.embed_chart('G2', 'demo401.bin', 3, 3, 1.08, 1.21)
29
+
30
+ # Link the chart to the worksheet data using a dummy formula.
31
+ worksheet.store_formula('=Sheet1!A1')
32
+
33
+
34
+ # Add some extra formats to cover formats used in the charts.
35
+ chart_font_1 = workbook.add_format(:font_only => 1)
36
+ chart_font_2 = workbook.add_format(:font_only => 1, :bold => 1)
37
+ chart_font_3 = workbook.add_format(:font_only => 1)
38
+ chart_font_4 = workbook.add_format(:font_only => 1)
39
+
40
+ # Add all other formats.
41
+ bold = workbook.add_format(:bold => 1)
42
+ date_format = workbook.add_format(:num_format => 'dd/mm/yyyy')
43
+
44
+ # Adjust column widths and add some headers
45
+ worksheet.set_column('A:A', 12)
46
+
47
+ worksheet.write('A1', 'Date', bold)
48
+ worksheet.write('B1', 'Open', bold)
49
+ worksheet.write('C1', 'High', bold)
50
+ worksheet.write('D1', 'Low', bold)
51
+ worksheet.write('E1', 'Close', bold)
52
+
53
+
54
+ # Add data to range that the chart refers to.
55
+ dates = [
56
+
57
+ "2004-08-19T",
58
+ "2004-08-20T",
59
+ "2004-08-23T",
60
+ "2004-08-24T",
61
+ "2004-08-25T",
62
+ "2004-08-26T",
63
+ "2004-08-27T",
64
+ "2004-08-30T",
65
+ "2004-08-31T",
66
+ "2004-09-01T",
67
+ "2004-09-02T",
68
+ "2004-09-03T",
69
+ "2004-09-07T",
70
+ "2004-09-08T",
71
+ "2004-09-09T",
72
+ "2004-09-10T",
73
+ "2004-09-13T",
74
+ "2004-09-14T",
75
+ "2004-09-15T",
76
+ "2004-09-16T",
77
+ "2004-09-17T",
78
+ "2004-09-20T",
79
+ "2004-09-21T"
80
+ ]
81
+
82
+ # Open-High-Low-Close prices
83
+ prices = [
84
+
85
+ [100.00, 104.06, 95.96, 100.34],
86
+ [101.01, 109.08, 100.50, 108.31],
87
+ [110.75, 113.48, 109.05, 109.40],
88
+ [111.24, 111.60, 103.57, 104.87],
89
+ [104.96, 108.00, 103.88, 106.00],
90
+ [104.95, 107.95, 104.66, 107.91],
91
+ [108.10, 108.62, 105.69, 106.15],
92
+ [105.28, 105.49, 102.01, 102.01],
93
+ [102.30, 103.71, 102.16, 102.37],
94
+ [102.70, 102.97, 99.67, 100.25],
95
+ [ 99.19, 102.37, 98.94, 101.51],
96
+ [100.95, 101.74, 99.32, 100.01],
97
+ [101.01, 102.00, 99.61, 101.58],
98
+ [100.74, 103.03, 100.50, 102.30],
99
+ [102.53, 102.71, 101.00, 102.31],
100
+ [101.60, 106.56, 101.30, 105.33],
101
+ [106.63, 108.41, 106.46, 107.50],
102
+ [107.45, 112.00, 106.79, 111.49],
103
+ [110.56, 114.23, 110.20, 112.00],
104
+ [112.34, 115.80, 111.65, 113.97],
105
+ [114.42, 117.49, 113.55, 117.49],
106
+ [116.95, 121.60, 116.77, 119.36],
107
+ [119.81, 120.42, 117.51, 117.84]
108
+ ]
109
+
110
+
111
+
112
+ row = 1
113
+ dates.each do |d|
114
+ worksheet.write_date_time(row, 0, d, date_format)
115
+ row += 1
116
+ end
117
+ worksheet.write_col('B2', prices)
118
+
119
+ workbook.close
data/charts/demo5.rb CHANGED
@@ -1,48 +1,48 @@
1
- #!/usr/bin/ruby -w
2
- # -*- coding: utf-8 -*-
3
-
4
- ###############################################################################
5
- #
6
- # Simple example of how to add an externally created chart to a Spreadsheet::
7
- # WriteExcel file.
8
- #
9
- #
10
- # This example adds a line chart extracted from the file Chart1.xls as follows:
11
- #
12
- # perl chartex.pl -c=demo5 Chart5.xls
13
- #
14
- #
15
- # reverse('ゥ'), September 2004, John McNamara, jmcnamara@cpan.org
16
- #
17
- # original written in Perl by John McNamara
18
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
19
- #
20
-
21
- require 'writeexcel'
22
-
23
- workbook = WriteExcel.new("demo5.xls")
24
- worksheet = workbook.add_worksheet
25
-
26
- # Add the chart extracted using the chartex utility
27
- worksheet.embed_chart('D3', 'demo501.bin')
28
-
29
- # Link the chart to the worksheet data using a dummy formula.
30
- worksheet.store_formula('=Sheet1!A1')
31
-
32
-
33
- # Add some extra formats to cover formats used in the charts.
34
- chart_font_1 = workbook.add_format(:font_only => 1)
35
- chart_font_2 = workbook.add_format(:font_only => 1)
36
-
37
- # Add all other formats.
38
-
39
- # Add data to range that the chart refers to.
40
- nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
41
- squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
42
-
43
-
44
-
45
- worksheet.write_col('A1', nums)
46
- worksheet.write_col('B1', squares)
47
-
48
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ###############################################################################
5
+ #
6
+ # Simple example of how to add an externally created chart to a Spreadsheet::
7
+ # WriteExcel file.
8
+ #
9
+ #
10
+ # This example adds a line chart extracted from the file Chart1.xls as follows:
11
+ #
12
+ # perl chartex.pl -c=demo5 Chart5.xls
13
+ #
14
+ #
15
+ # reverse('ゥ'), September 2004, John McNamara, jmcnamara@cpan.org
16
+ #
17
+ # original written in Perl by John McNamara
18
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
19
+ #
20
+
21
+ require 'writeexcel'
22
+
23
+ workbook = WriteExcel.new("demo5.xls")
24
+ worksheet = workbook.add_worksheet
25
+
26
+ # Add the chart extracted using the chartex utility
27
+ worksheet.embed_chart('D3', 'demo501.bin')
28
+
29
+ # Link the chart to the worksheet data using a dummy formula.
30
+ worksheet.store_formula('=Sheet1!A1')
31
+
32
+
33
+ # Add some extra formats to cover formats used in the charts.
34
+ chart_font_1 = workbook.add_format(:font_only => 1)
35
+ chart_font_2 = workbook.add_format(:font_only => 1)
36
+
37
+ # Add all other formats.
38
+
39
+ # Add data to range that the chart refers to.
40
+ nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
41
+ squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
42
+
43
+
44
+
45
+ worksheet.write_col('A1', nums)
46
+ worksheet.write_col('B1', squares)
47
+
48
+ workbook.close
data/examples/a_simple.rb CHANGED
@@ -1,43 +1,43 @@
1
- #!/usr/bin/ruby -w
2
- # -*- coding: utf-8 -*-
3
- #
4
- # Example of how to use the WriteExcel module to write text and numbers
5
- # to an Excel binary file.
6
- #
7
- # reverse('©'), March 2001, 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
- require 'rubygems'
13
- require 'writeexcel'
14
-
15
- # Create a new workbook called simple.xls and add a worksheet
16
- workbook = WriteExcel.new('a_simple.xls');
17
- worksheet = workbook.add_worksheet
18
-
19
- # The general syntax is write(row, column, token). Note that row and
20
- # column are zero indexed
21
- #
22
-
23
- # Write some text
24
- worksheet.write(0, 0, "Hi Excel!")
25
-
26
-
27
- # Write some numbers
28
- worksheet.write(2, 0, 3) # Writes 3
29
- worksheet.write(3, 0, 3.00000) # Writes 3
30
- worksheet.write(4, 0, 3.00001) # Writes 3.00001
31
- worksheet.write(5, 0, 3.14159) # TeX revision no.?
32
-
33
-
34
- # Write some formulas
35
- worksheet.write(7, 0, '=A3 + A6')
36
- worksheet.write(8, 0, '=IF(A5>3,"Yes", "No")')
37
-
38
-
39
- # Write a hyperlink
40
- worksheet.write(10, 0, 'http://www.perl.com/')
41
-
42
- # File save
43
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # Example of how to use the WriteExcel module to write text and numbers
5
+ # to an Excel binary file.
6
+ #
7
+ # reverse('©'), March 2001, 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
+ require 'rubygems'
13
+ require 'writeexcel'
14
+
15
+ # Create a new workbook called simple.xls and add a worksheet
16
+ workbook = WriteExcel.new('a_simple.xls');
17
+ worksheet = workbook.add_worksheet
18
+
19
+ # The general syntax is write(row, column, token). Note that row and
20
+ # column are zero indexed
21
+ #
22
+
23
+ # Write some text
24
+ worksheet.write(0, 0, "Hi Excel!")
25
+
26
+
27
+ # Write some numbers
28
+ worksheet.write(2, 0, 3) # Writes 3
29
+ worksheet.write(3, 0, 3.00000) # Writes 3
30
+ worksheet.write(4, 0, 3.00001) # Writes 3.00001
31
+ worksheet.write(5, 0, 3.14159) # TeX revision no.?
32
+
33
+
34
+ # Write some formulas
35
+ worksheet.write(7, 0, '=A3 + A6')
36
+ worksheet.write(8, 0, '=IF(A5>3,"Yes", "No")')
37
+
38
+
39
+ # Write a hyperlink
40
+ worksheet.write(10, 0, 'http://www.perl.com/')
41
+
42
+ # File save
43
+ workbook.close