writeexcel 0.3.5 → 0.4.0

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 (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,4 +1,5 @@
1
1
  #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
2
3
 
3
4
  ###############################################################################
4
5
  #
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
2
3
 
3
4
  ###############################################################################
4
5
  #
@@ -1,116 +1,117 @@
1
- #!/usr/bin/ruby -w
2
-
3
- ###############################################################################
4
- #
5
- # Simple example of how to add an externally created chart to a Spreadsheet::
6
- # WriteExcel file.
7
- #
8
- #
9
- # This example adds an "Open-high-low-close" stock chart extracted from the
10
- # file Chart3.xls as follows:
11
- #
12
- # perl chartex.pl -c=demo3 Chart3.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("demo3.xls")
24
- worksheet = workbook.add_worksheet
25
-
26
- # Add the chart extracted using the chartex utility
27
- chart = workbook.add_chart_ext('demo301.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
- date_format = workbook.add_format(:num_format => 'dd/mm/yyyy')
42
-
43
- # Adjust column widths and add some headers
44
- worksheet.set_column('A:A', 12)
45
-
46
- worksheet.write('A1', 'Date', bold)
47
- worksheet.write('B1', 'Open', bold)
48
- worksheet.write('C1', 'High', bold)
49
- worksheet.write('D1', 'Low', bold)
50
- worksheet.write('E1', 'Close', bold)
51
-
52
- # Add data to range that the chart refers to.
53
- dates = [
54
-
55
- "2004-08-19T",
56
- "2004-08-20T",
57
- "2004-08-23T",
58
- "2004-08-24T",
59
- "2004-08-25T",
60
- "2004-08-26T",
61
- "2004-08-27T",
62
- "2004-08-30T",
63
- "2004-08-31T",
64
- "2004-09-01T",
65
- "2004-09-02T",
66
- "2004-09-03T",
67
- "2004-09-07T",
68
- "2004-09-08T",
69
- "2004-09-09T",
70
- "2004-09-10T",
71
- "2004-09-13T",
72
- "2004-09-14T",
73
- "2004-09-15T",
74
- "2004-09-16T",
75
- "2004-09-17T",
76
- "2004-09-20T",
77
- "2004-09-21T"
78
- ]
79
-
80
- # Open-High-Low-Close prices
81
- prices = [
82
-
83
- [100.00, 104.06, 95.96, 100.34],
84
- [101.01, 109.08, 100.50, 108.31],
85
- [110.75, 113.48, 109.05, 109.40],
86
- [111.24, 111.60, 103.57, 104.87],
87
- [104.96, 108.00, 103.88, 106.00],
88
- [104.95, 107.95, 104.66, 107.91],
89
- [108.10, 108.62, 105.69, 106.15],
90
- [105.28, 105.49, 102.01, 102.01],
91
- [102.30, 103.71, 102.16, 102.37],
92
- [102.70, 102.97, 99.67, 100.25],
93
- [ 99.19, 102.37, 98.94, 101.51],
94
- [100.95, 101.74, 99.32, 100.01],
95
- [101.01, 102.00, 99.61, 101.58],
96
- [100.74, 103.03, 100.50, 102.30],
97
- [102.53, 102.71, 101.00, 102.31],
98
- [101.60, 106.56, 101.30, 105.33],
99
- [106.63, 108.41, 106.46, 107.50],
100
- [107.45, 112.00, 106.79, 111.49],
101
- [110.56, 114.23, 110.20, 112.00],
102
- [112.34, 115.80, 111.65, 113.97],
103
- [114.42, 117.49, 113.55, 117.49],
104
- [116.95, 121.60, 116.77, 119.36],
105
- [119.81, 120.42, 117.51, 117.84]
106
- ]
107
-
108
- row = 1
109
-
110
- dates.each do |d|
111
- worksheet.write_date_time(row, 0, d, date_format)
112
- row += 1
113
- end
114
- worksheet.write_col('B2', prices)
115
-
116
- 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=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
@@ -1,118 +1,119 @@
1
- #!/usr/bin/ruby -w
2
-
3
- ###############################################################################
4
- #
5
- # Simple example of how to add an externally created chart to a Spreadsheet::
6
- # WriteExcel file.
7
- #
8
- #
9
- # This example adds an "Open-high-low-close" stock chart extracted from the
10
- # file Chart3.xls as follows:
11
- #
12
- # perl chartex.pl -c=demo4 Chart4.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("demo4.xls")
24
- worksheet = workbook.add_worksheet
25
-
26
- # Add the chart extracted using the chartex utility
27
- worksheet.embed_chart('G2', 'demo401.bin', 3, 3, 1.08, 1.21)
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, :bold => 1)
36
- chart_font_3 = workbook.add_format(:font_only => 1)
37
- chart_font_4 = workbook.add_format(:font_only => 1)
38
-
39
- # Add all other formats.
40
- bold = workbook.add_format(:bold => 1)
41
- date_format = workbook.add_format(:num_format => 'dd/mm/yyyy')
42
-
43
- # Adjust column widths and add some headers
44
- worksheet.set_column('A:A', 12)
45
-
46
- worksheet.write('A1', 'Date', bold)
47
- worksheet.write('B1', 'Open', bold)
48
- worksheet.write('C1', 'High', bold)
49
- worksheet.write('D1', 'Low', bold)
50
- worksheet.write('E1', 'Close', bold)
51
-
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
-
110
-
111
- row = 1
112
- dates.each do |d|
113
- worksheet.write_date_time(row, 0, d, date_format)
114
- row += 1
115
- end
116
- worksheet.write_col('B2', prices)
117
-
118
- 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