ricardoo27-writeexcel 0.6.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. data/.document +5 -0
  2. data/.gitattributes +1 -0
  3. data/README.rdoc +136 -0
  4. data/Rakefile +52 -0
  5. data/VERSION +1 -0
  6. data/charts/chartex.rb +316 -0
  7. data/charts/demo1.rb +46 -0
  8. data/charts/demo101.bin +0 -0
  9. data/charts/demo2.rb +65 -0
  10. data/charts/demo201.bin +0 -0
  11. data/charts/demo3.rb +117 -0
  12. data/charts/demo301.bin +0 -0
  13. data/charts/demo4.rb +119 -0
  14. data/charts/demo401.bin +0 -0
  15. data/charts/demo5.rb +48 -0
  16. data/charts/demo501.bin +0 -0
  17. data/examples/a_simple.rb +43 -0
  18. data/examples/autofilter.rb +265 -0
  19. data/examples/bigfile.rb +30 -0
  20. data/examples/chart_area.rb +121 -0
  21. data/examples/chart_bar.rb +120 -0
  22. data/examples/chart_column.rb +120 -0
  23. data/examples/chart_line.rb +120 -0
  24. data/examples/chart_pie.rb +108 -0
  25. data/examples/chart_scatter.rb +121 -0
  26. data/examples/chart_stock.rb +148 -0
  27. data/examples/chess.rb +142 -0
  28. data/examples/colors.rb +129 -0
  29. data/examples/comments1.rb +27 -0
  30. data/examples/comments2.rb +352 -0
  31. data/examples/copyformat.rb +52 -0
  32. data/examples/data_validate.rb +279 -0
  33. data/examples/date_time.rb +87 -0
  34. data/examples/defined_name.rb +32 -0
  35. data/examples/demo.rb +124 -0
  36. data/examples/diag_border.rb +36 -0
  37. data/examples/formats.rb +490 -0
  38. data/examples/formula_result.rb +30 -0
  39. data/examples/header.rb +137 -0
  40. data/examples/hide_sheet.rb +29 -0
  41. data/examples/hyperlink.rb +43 -0
  42. data/examples/images.rb +63 -0
  43. data/examples/indent.rb +31 -0
  44. data/examples/merge1.rb +40 -0
  45. data/examples/merge2.rb +45 -0
  46. data/examples/merge3.rb +66 -0
  47. data/examples/merge4.rb +83 -0
  48. data/examples/merge5.rb +80 -0
  49. data/examples/merge6.rb +67 -0
  50. data/examples/outline.rb +255 -0
  51. data/examples/outline_collapsed.rb +209 -0
  52. data/examples/panes.rb +113 -0
  53. data/examples/password_protection.rb +33 -0
  54. data/examples/properties.rb +34 -0
  55. data/examples/properties_jp.rb +33 -0
  56. data/examples/protection.rb +47 -0
  57. data/examples/regions.rb +53 -0
  58. data/examples/repeat.rb +43 -0
  59. data/examples/republic.png +0 -0
  60. data/examples/right_to_left.rb +27 -0
  61. data/examples/row_wrap.rb +53 -0
  62. data/examples/set_first_sheet.rb +14 -0
  63. data/examples/stats.rb +74 -0
  64. data/examples/stocks.rb +81 -0
  65. data/examples/store_formula.rb +15 -0
  66. data/examples/tab_colors.rb +31 -0
  67. data/examples/utf8.rb +15 -0
  68. data/examples/write_arrays.rb +83 -0
  69. data/html/en/doc_en.html +5946 -0
  70. data/html/images/a_simple.jpg +0 -0
  71. data/html/images/area1.jpg +0 -0
  72. data/html/images/bar1.jpg +0 -0
  73. data/html/images/chart_area.xls +0 -0
  74. data/html/images/column1.jpg +0 -0
  75. data/html/images/data_validation.jpg +0 -0
  76. data/html/images/line1.jpg +0 -0
  77. data/html/images/pie1.jpg +0 -0
  78. data/html/images/regions.jpg +0 -0
  79. data/html/images/scatter1.jpg +0 -0
  80. data/html/images/stats.jpg +0 -0
  81. data/html/images/stock1.jpg +0 -0
  82. data/html/images/stocks.jpg +0 -0
  83. data/html/index.html +16 -0
  84. data/html/style.css +433 -0
  85. data/lib/writeexcel.rb +1159 -0
  86. data/lib/writeexcel/biffwriter.rb +223 -0
  87. data/lib/writeexcel/caller_info.rb +12 -0
  88. data/lib/writeexcel/cell_range.rb +332 -0
  89. data/lib/writeexcel/chart.rb +1968 -0
  90. data/lib/writeexcel/charts/area.rb +154 -0
  91. data/lib/writeexcel/charts/bar.rb +177 -0
  92. data/lib/writeexcel/charts/column.rb +156 -0
  93. data/lib/writeexcel/charts/external.rb +66 -0
  94. data/lib/writeexcel/charts/line.rb +154 -0
  95. data/lib/writeexcel/charts/pie.rb +169 -0
  96. data/lib/writeexcel/charts/scatter.rb +192 -0
  97. data/lib/writeexcel/charts/stock.rb +213 -0
  98. data/lib/writeexcel/col_info.rb +87 -0
  99. data/lib/writeexcel/colors.rb +68 -0
  100. data/lib/writeexcel/comments.rb +460 -0
  101. data/lib/writeexcel/compatibility.rb +65 -0
  102. data/lib/writeexcel/convert_date_time.rb +117 -0
  103. data/lib/writeexcel/data_validations.rb +370 -0
  104. data/lib/writeexcel/debug_info.rb +41 -0
  105. data/lib/writeexcel/embedded_chart.rb +35 -0
  106. data/lib/writeexcel/excelformula.y +139 -0
  107. data/lib/writeexcel/excelformulaparser.rb +587 -0
  108. data/lib/writeexcel/format.rb +1575 -0
  109. data/lib/writeexcel/formula.rb +987 -0
  110. data/lib/writeexcel/helper.rb +78 -0
  111. data/lib/writeexcel/image.rb +218 -0
  112. data/lib/writeexcel/olewriter.rb +305 -0
  113. data/lib/writeexcel/outline.rb +24 -0
  114. data/lib/writeexcel/properties.rb +242 -0
  115. data/lib/writeexcel/shared_string_table.rb +153 -0
  116. data/lib/writeexcel/storage_lite.rb +984 -0
  117. data/lib/writeexcel/workbook.rb +2478 -0
  118. data/lib/writeexcel/worksheet.rb +6925 -0
  119. data/lib/writeexcel/worksheets.rb +25 -0
  120. data/lib/writeexcel/write_file.rb +63 -0
  121. data/test/excelfile/Chart1.xls +0 -0
  122. data/test/excelfile/Chart2.xls +0 -0
  123. data/test/excelfile/Chart3.xls +0 -0
  124. data/test/excelfile/Chart4.xls +0 -0
  125. data/test/excelfile/Chart5.xls +0 -0
  126. data/test/helper.rb +31 -0
  127. data/test/perl_output/Chart1.xls.data +0 -0
  128. data/test/perl_output/Chart2.xls.data +0 -0
  129. data/test/perl_output/Chart3.xls.data +0 -0
  130. data/test/perl_output/Chart4.xls.data +0 -0
  131. data/test/perl_output/Chart5.xls.data +0 -0
  132. data/test/perl_output/README +31 -0
  133. data/test/perl_output/a_simple.xls +0 -0
  134. data/test/perl_output/autofilter.xls +0 -0
  135. data/test/perl_output/biff_add_continue_testdata +0 -0
  136. data/test/perl_output/chart_area.xls +0 -0
  137. data/test/perl_output/chart_bar.xls +0 -0
  138. data/test/perl_output/chart_column.xls +0 -0
  139. data/test/perl_output/chart_line.xls +0 -0
  140. data/test/perl_output/chess.xls +0 -0
  141. data/test/perl_output/colors.xls +0 -0
  142. data/test/perl_output/comments0.xls +0 -0
  143. data/test/perl_output/comments1.xls +0 -0
  144. data/test/perl_output/comments2.xls +0 -0
  145. data/test/perl_output/data_validate.xls +0 -0
  146. data/test/perl_output/date_time.xls +0 -0
  147. data/test/perl_output/defined_name.xls +0 -0
  148. data/test/perl_output/demo.xls +0 -0
  149. data/test/perl_output/demo101.bin +0 -0
  150. data/test/perl_output/demo201.bin +0 -0
  151. data/test/perl_output/demo301.bin +0 -0
  152. data/test/perl_output/demo401.bin +0 -0
  153. data/test/perl_output/demo501.bin +0 -0
  154. data/test/perl_output/diag_border.xls +0 -0
  155. data/test/perl_output/f_font_biff +0 -0
  156. data/test/perl_output/f_font_key +1 -0
  157. data/test/perl_output/f_xf_biff +0 -0
  158. data/test/perl_output/file_font_biff +0 -0
  159. data/test/perl_output/file_font_key +1 -0
  160. data/test/perl_output/file_xf_biff +0 -0
  161. data/test/perl_output/formula_result.xls +0 -0
  162. data/test/perl_output/headers.xls +0 -0
  163. data/test/perl_output/hidden.xls +0 -0
  164. data/test/perl_output/hide_zero.xls +0 -0
  165. data/test/perl_output/hyperlink.xls +0 -0
  166. data/test/perl_output/images.xls +0 -0
  167. data/test/perl_output/indent.xls +0 -0
  168. data/test/perl_output/merge1.xls +0 -0
  169. data/test/perl_output/merge2.xls +0 -0
  170. data/test/perl_output/merge3.xls +0 -0
  171. data/test/perl_output/merge4.xls +0 -0
  172. data/test/perl_output/merge5.xls +0 -0
  173. data/test/perl_output/merge6.xls +0 -0
  174. data/test/perl_output/ole_write_header +0 -0
  175. data/test/perl_output/outline.xls +0 -0
  176. data/test/perl_output/outline_collapsed.xls +0 -0
  177. data/test/perl_output/panes.xls +0 -0
  178. data/test/perl_output/password_protection.xls +0 -0
  179. data/test/perl_output/protection.xls +0 -0
  180. data/test/perl_output/regions.xls +0 -0
  181. data/test/perl_output/right_to_left.xls +0 -0
  182. data/test/perl_output/set_first_sheet.xls +0 -0
  183. data/test/perl_output/stats.xls +0 -0
  184. data/test/perl_output/stocks.xls +0 -0
  185. data/test/perl_output/store_formula.xls +0 -0
  186. data/test/perl_output/tab_colors.xls +0 -0
  187. data/test/perl_output/unicode_cyrillic.xls +0 -0
  188. data/test/perl_output/utf8.xls +0 -0
  189. data/test/perl_output/workbook1.xls +0 -0
  190. data/test/perl_output/workbook2.xls +0 -0
  191. data/test/perl_output/ws_colinfo +1 -0
  192. data/test/perl_output/ws_store_colinfo +0 -0
  193. data/test/perl_output/ws_store_dimensions +0 -0
  194. data/test/perl_output/ws_store_filtermode +0 -0
  195. data/test/perl_output/ws_store_filtermode_off +0 -0
  196. data/test/perl_output/ws_store_filtermode_on +0 -0
  197. data/test/perl_output/ws_store_selection +0 -0
  198. data/test/perl_output/ws_store_window2 +1 -0
  199. data/test/republic.png +0 -0
  200. data/test/test_00_IEEE_double.rb +13 -0
  201. data/test/test_01_add_worksheet.rb +10 -0
  202. data/test/test_02_merge_formats.rb +49 -0
  203. data/test/test_04_dimensions.rb +388 -0
  204. data/test/test_05_rows.rb +175 -0
  205. data/test/test_06_extsst.rb +74 -0
  206. data/test/test_11_date_time.rb +475 -0
  207. data/test/test_12_date_only.rb +525 -0
  208. data/test/test_13_date_seconds.rb +477 -0
  209. data/test/test_21_escher.rb +624 -0
  210. data/test/test_22_mso_drawing_group.rb +741 -0
  211. data/test/test_23_note.rb +57 -0
  212. data/test/test_24_txo.rb +74 -0
  213. data/test/test_25_position_object.rb +80 -0
  214. data/test/test_26_autofilter.rb +309 -0
  215. data/test/test_27_autofilter.rb +126 -0
  216. data/test/test_28_autofilter.rb +156 -0
  217. data/test/test_29_process_jpg.rb +670 -0
  218. data/test/test_30_validation_dval.rb +74 -0
  219. data/test/test_31_validation_dv_strings.rb +123 -0
  220. data/test/test_32_validation_dv_formula.rb +203 -0
  221. data/test/test_40_property_types.rb +188 -0
  222. data/test/test_41_properties.rb +235 -0
  223. data/test/test_42_set_properties.rb +434 -0
  224. data/test/test_50_name_stored.rb +295 -0
  225. data/test/test_51_name_print_area.rb +353 -0
  226. data/test/test_52_name_print_titles.rb +450 -0
  227. data/test/test_53_autofilter.rb +199 -0
  228. data/test/test_60_chart_generic.rb +574 -0
  229. data/test/test_61_chart_subclasses.rb +84 -0
  230. data/test/test_62_chart_formats.rb +268 -0
  231. data/test/test_63_chart_area_formats.rb +645 -0
  232. data/test/test_biff.rb +71 -0
  233. data/test/test_big_workbook.rb +17 -0
  234. data/test/test_compatibility.rb +12 -0
  235. data/test/test_example_match.rb +3246 -0
  236. data/test/test_format.rb +1189 -0
  237. data/test/test_formula.rb +61 -0
  238. data/test/test_ole.rb +102 -0
  239. data/test/test_storage_lite.rb +116 -0
  240. data/test/test_workbook.rb +146 -0
  241. data/test/test_worksheet.rb +106 -0
  242. data/utils/add_magic_comment.rb +80 -0
  243. data/writeexcel.gemspec +278 -0
  244. data/writeexcel.rdoc +1425 -0
  245. metadata +292 -0
@@ -0,0 +1,46 @@
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=demo1 Chart1.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("demo1.xls")
24
+ worksheet = workbook.add_worksheet
25
+
26
+ # Add the chart extracted using the chartex utility
27
+ chart = workbook.add_chart_ext('demo101.bin', 'Chart1')
28
+
29
+ # Link the chart to the worksheet data using a dummy formula.
30
+ worksheet.store_formula('=Sheet1!A1')
31
+
32
+ # Add some extra formats to cover formats used in the charts.
33
+ chart_font_1 = workbook.add_format(:font_only => 1)
34
+ chart_font_2 = workbook.add_format(:font_only => 1)
35
+ chart_font_3 = workbook.add_format(:font_only => 1)
36
+
37
+ # Add all other formats (if any).
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
+ worksheet.write_col('A1', nums )
44
+ worksheet.write_col('B1', squares)
45
+
46
+ workbook.close
Binary file
@@ -0,0 +1,65 @@
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 pie chart extracted from the file Chart2.xls as follows:
11
+ #
12
+ # perl chartex.pl -c=demo1 Chart1.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("demo2.xls")
24
+ worksheet = workbook.add_worksheet
25
+
26
+ # Add the chart extracted using the chartex utility
27
+ chart = workbook.add_chart_ext('demo201.bin', 'Chart1')
28
+
29
+ # Link the chart to the worksheet data using a dummy formula.
30
+ worksheet.store_formula('=Sheet1!A1')
31
+
32
+ # Add some extra formats to cover formats used in the charts.
33
+ chart_font_1 = workbook.add_format(:font_only => 1)
34
+ chart_font_2 = workbook.add_format(:font_only => 1)
35
+ chart_font_3 = workbook.add_format(:font_only => 1)
36
+ chart_font_4 = workbook.add_format(:font_only => 1)
37
+ chart_font_5 = workbook.add_format(:font_only => 1)
38
+
39
+ # Add all other formats (if any).
40
+ bold = workbook.add_format(:bold => 1)
41
+
42
+ # Adjust column widths and add some headers
43
+ worksheet.set_column('A:B', 20)
44
+
45
+ worksheet.write('A1', 'Module', bold)
46
+ worksheet.write('B1', 'No. of lines', bold)
47
+
48
+ # Add data to range that the chart refers to.
49
+ data = [
50
+
51
+ ['BIFFwriter.pm', 275],
52
+ ['Big.pm', 99],
53
+ ['Chart.pm', 269],
54
+ ['Format.pm', 724],
55
+ ['Formula.pm', 1410],
56
+ ['OLEwriter.pm', 447],
57
+ ['Utility.pm', 884],
58
+ ['Workbook.pm', 1925],
59
+ ['WorkbookBig.pm', 112],
60
+ ['Worksheet.pm', 3945]
61
+ ]
62
+
63
+ worksheet.write_col('A2', data )
64
+
65
+ workbook.close
Binary file
@@ -0,0 +1,117 @@
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=demo3 Chart3.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("demo3.xls")
25
+ worksheet = workbook.add_worksheet
26
+
27
+ # Add the chart extracted using the chartex utility
28
+ chart = workbook.add_chart_ext('demo301.bin', 'Chart1')
29
+
30
+ # Link the chart to the worksheet data using a dummy formula.
31
+ worksheet.store_formula('=Sheet1!A1')
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
+ chart_font_3 = workbook.add_format(:font_only => 1)
37
+ chart_font_4 = workbook.add_format(:font_only => 1)
38
+ chart_font_5 = workbook.add_format(:font_only => 1)
39
+
40
+ # Add all other formats (if any).
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
+ # Add data to range that the chart refers to.
54
+ dates = [
55
+
56
+ "2004-08-19T",
57
+ "2004-08-20T",
58
+ "2004-08-23T",
59
+ "2004-08-24T",
60
+ "2004-08-25T",
61
+ "2004-08-26T",
62
+ "2004-08-27T",
63
+ "2004-08-30T",
64
+ "2004-08-31T",
65
+ "2004-09-01T",
66
+ "2004-09-02T",
67
+ "2004-09-03T",
68
+ "2004-09-07T",
69
+ "2004-09-08T",
70
+ "2004-09-09T",
71
+ "2004-09-10T",
72
+ "2004-09-13T",
73
+ "2004-09-14T",
74
+ "2004-09-15T",
75
+ "2004-09-16T",
76
+ "2004-09-17T",
77
+ "2004-09-20T",
78
+ "2004-09-21T"
79
+ ]
80
+
81
+ # Open-High-Low-Close prices
82
+ prices = [
83
+
84
+ [100.00, 104.06, 95.96, 100.34],
85
+ [101.01, 109.08, 100.50, 108.31],
86
+ [110.75, 113.48, 109.05, 109.40],
87
+ [111.24, 111.60, 103.57, 104.87],
88
+ [104.96, 108.00, 103.88, 106.00],
89
+ [104.95, 107.95, 104.66, 107.91],
90
+ [108.10, 108.62, 105.69, 106.15],
91
+ [105.28, 105.49, 102.01, 102.01],
92
+ [102.30, 103.71, 102.16, 102.37],
93
+ [102.70, 102.97, 99.67, 100.25],
94
+ [ 99.19, 102.37, 98.94, 101.51],
95
+ [100.95, 101.74, 99.32, 100.01],
96
+ [101.01, 102.00, 99.61, 101.58],
97
+ [100.74, 103.03, 100.50, 102.30],
98
+ [102.53, 102.71, 101.00, 102.31],
99
+ [101.60, 106.56, 101.30, 105.33],
100
+ [106.63, 108.41, 106.46, 107.50],
101
+ [107.45, 112.00, 106.79, 111.49],
102
+ [110.56, 114.23, 110.20, 112.00],
103
+ [112.34, 115.80, 111.65, 113.97],
104
+ [114.42, 117.49, 113.55, 117.49],
105
+ [116.95, 121.60, 116.77, 119.36],
106
+ [119.81, 120.42, 117.51, 117.84]
107
+ ]
108
+
109
+ row = 1
110
+
111
+ dates.each do |d|
112
+ worksheet.write_date_time(row, 0, d, date_format)
113
+ row += 1
114
+ end
115
+ worksheet.write_col('B2', prices)
116
+
117
+ workbook.close
Binary file
@@ -0,0 +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
Binary file
@@ -0,0 +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
Binary file
@@ -0,0 +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