writeexcel 0.5.0 → 0.6.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 (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,209 +1,209 @@
1
- #!/usr/bin/ruby -w
2
- # -*- coding: utf-8 -*-
3
-
4
- ###############################################################################
5
- #
6
- # Example of how use Spreadsheet::WriteExcel to generate Excel outlines and
7
- # grouping.
8
- #
9
- # These example focus mainly on collapsed outlines. See also the
10
- # outlines.pl example program for more general examples.
11
- #
12
- # reverse('©'), March 2008, John McNamara, jmcnamara@cpan.org
13
- #
14
- # original written in Perl by John McNamara
15
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
16
- #
17
-
18
- require 'writeexcel'
19
-
20
- # Create a new workbook and add some worksheets
21
- workbook = WriteExcel.new('outline_collapsed.xls')
22
- worksheet1 = workbook.add_worksheet('Outlined Rows')
23
- worksheet2 = workbook.add_worksheet('Collapsed Rows 1')
24
- worksheet3 = workbook.add_worksheet('Collapsed Rows 2')
25
- worksheet4 = workbook.add_worksheet('Collapsed Rows 3')
26
- worksheet5 = workbook.add_worksheet('Outline Columns')
27
- worksheet6 = workbook.add_worksheet('Collapsed Columns')
28
-
29
- # Add a general format
30
- bold = workbook.add_format(:bold => 1)
31
-
32
- #
33
- # This function will generate the same data and sub-totals on each worksheet.
34
- #
35
- def create_sub_totals(worksheet, bold)
36
- # Add a column format for clarity
37
- worksheet.set_column('A:A', 20)
38
-
39
- # Add the data, labels and formulas
40
- worksheet.write('A1', 'Region', bold)
41
- worksheet.write('A2', 'North')
42
- worksheet.write('A3', 'North')
43
- worksheet.write('A4', 'North')
44
- worksheet.write('A5', 'North')
45
- worksheet.write('A6', 'North Total', bold)
46
-
47
- worksheet.write('B1', 'Sales', bold)
48
- worksheet.write('B2', 1000)
49
- worksheet.write('B3', 1200)
50
- worksheet.write('B4', 900)
51
- worksheet.write('B5', 1200)
52
- worksheet.write('B6', '=SUBTOTAL(9,B2:B5)', bold)
53
-
54
- worksheet.write('A7', 'South')
55
- worksheet.write('A8', 'South')
56
- worksheet.write('A9', 'South')
57
- worksheet.write('A10', 'South')
58
- worksheet.write('A11', 'South Total', bold)
59
-
60
- worksheet.write('B7', 400)
61
- worksheet.write('B8', 600)
62
- worksheet.write('B9', 500)
63
- worksheet.write('B10', 600)
64
- worksheet.write('B11', '=SUBTOTAL(9,B7:B10)', bold)
65
-
66
- worksheet.write('A12', 'Grand Total', bold)
67
- worksheet.write('B12', '=SUBTOTAL(9,B2:B10)', bold)
68
-
69
- end
70
-
71
-
72
- ###############################################################################
73
- #
74
- # Example 1: Create a worksheet with outlined rows. It also includes SUBTOTAL()
75
- # functions so that it looks like the type of automatic outlines that are
76
- # generated when you use the Excel Data.SubTotals menu item.
77
- #
78
-
79
- # The syntax is: set_row(row, height, XF, hidden, level, collapsed)
80
- worksheet1.set_row(1, nil, nil, 0, 2)
81
- worksheet1.set_row(2, nil, nil, 0, 2)
82
- worksheet1.set_row(3, nil, nil, 0, 2)
83
- worksheet1.set_row(4, nil, nil, 0, 2)
84
- worksheet1.set_row(5, nil, nil, 0, 1)
85
-
86
- worksheet1.set_row(6, nil, nil, 0, 2)
87
- worksheet1.set_row(7, nil, nil, 0, 2)
88
- worksheet1.set_row(8, nil, nil, 0, 2)
89
- worksheet1.set_row(9, nil, nil, 0, 2)
90
- worksheet1.set_row(10, nil, nil, 0, 1)
91
-
92
- # Write the sub-total data that is common to the row examples.
93
- create_sub_totals(worksheet1, bold)
94
-
95
-
96
- ###############################################################################
97
- #
98
- # Example 2: Create a worksheet with collapsed outlined rows.
99
- # This is the same as the example 1 except that the all rows are collapsed.
100
- # Note: We need to indicate the row that contains the collapsed symbol '+' with
101
- # the optional parameter, collapsed.
102
-
103
- worksheet2.set_row(1, nil, nil, 1, 2)
104
- worksheet2.set_row(2, nil, nil, 1, 2)
105
- worksheet2.set_row(3, nil, nil, 1, 2)
106
- worksheet2.set_row(4, nil, nil, 1, 2)
107
- worksheet2.set_row(5, nil, nil, 1, 1)
108
-
109
- worksheet2.set_row(6, nil, nil, 1, 2)
110
- worksheet2.set_row(7, nil, nil, 1, 2)
111
- worksheet2.set_row(8, nil, nil, 1, 2)
112
- worksheet2.set_row(9, nil, nil, 1, 2)
113
- worksheet2.set_row(10, nil, nil, 1, 1)
114
-
115
- worksheet2.set_row(11, nil, nil, 0, 0, 1)
116
-
117
- # Write the sub-total data that is common to the row examples.
118
- create_sub_totals(worksheet2, bold)
119
-
120
-
121
- ###############################################################################
122
- #
123
- # Example 3: Create a worksheet with collapsed outlined rows.
124
- # Same as the example 1 except that the two sub-totals are collapsed.
125
-
126
- worksheet3.set_row(1, nil, nil, 1, 2)
127
- worksheet3.set_row(2, nil, nil, 1, 2)
128
- worksheet3.set_row(3, nil, nil, 1, 2)
129
- worksheet3.set_row(4, nil, nil, 1, 2)
130
- worksheet3.set_row(5, nil, nil, 0, 1, 1)
131
-
132
- worksheet3.set_row(6, nil, nil, 1, 2)
133
- worksheet3.set_row(7, nil, nil, 1, 2)
134
- worksheet3.set_row(8, nil, nil, 1, 2)
135
- worksheet3.set_row(9, nil, nil, 1, 2)
136
- worksheet3.set_row(10, nil, nil, 0, 1, 1)
137
-
138
-
139
- # Write the sub-total data that is common to the row examples.
140
- create_sub_totals(worksheet3, bold)
141
-
142
-
143
- ###############################################################################
144
- #
145
- # Example 4: Create a worksheet with outlined rows.
146
- # Same as the example 1 except that the two sub-totals are collapsed.
147
-
148
- worksheet4.set_row(1, nil, nil, 1, 2)
149
- worksheet4.set_row(2, nil, nil, 1, 2)
150
- worksheet4.set_row(3, nil, nil, 1, 2)
151
- worksheet4.set_row(4, nil, nil, 1, 2)
152
- worksheet4.set_row(5, nil, nil, 1, 1, 1)
153
-
154
- worksheet4.set_row(6, nil, nil, 1, 2)
155
- worksheet4.set_row(7, nil, nil, 1, 2)
156
- worksheet4.set_row(8, nil, nil, 1, 2)
157
- worksheet4.set_row(9, nil, nil, 1, 2)
158
- worksheet4.set_row(10, nil, nil, 1, 1, 1)
159
-
160
- worksheet4.set_row(11, nil, nil, 0, 0, 1)
161
-
162
- # Write the sub-total data that is common to the row examples.
163
- create_sub_totals(worksheet4, bold)
164
-
165
-
166
-
167
- ###############################################################################
168
- #
169
- # Example 5: Create a worksheet with outlined columns.
170
- #
171
- data = [
172
- ['Month', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',' Total'],
173
- ['North', 50, 20, 15, 25, 65, 80, '=SUM(B2:G2)'],
174
- ['South', 10, 20, 30, 50, 50, 50, '=SUM(B3:G3)'],
175
- ['East', 45, 75, 50, 15, 75, 100, '=SUM(B4:G4)'],
176
- ['West', 15, 15, 55, 35, 20, 50, '=SUM(B5:G6)']
177
- ]
178
-
179
- # Add bold format to the first row
180
- worksheet5.set_row(0, nil, bold)
181
-
182
- # Syntax: set_column(col1, col2, width, XF, hidden, level, collapsed)
183
- worksheet5.set_column('A:A', 10, bold )
184
- worksheet5.set_column('B:G', 5, nil, 0, 1)
185
- worksheet5.set_column('H:H', 10 )
186
-
187
- # Write the data and a formula
188
- worksheet5.write_col('A1', data)
189
- worksheet5.write('H6', '=SUM(H2:H5)', bold)
190
-
191
-
192
- ###############################################################################
193
- #
194
- # Example 6: Create a worksheet with collapsed outlined columns.
195
- # This is the same as the previous example except collapsed columns.
196
-
197
- # Add bold format to the first row
198
- worksheet6.set_row(0, nil, bold)
199
-
200
- # Syntax: set_column(col1, col2, width, XF, hidden, level, collapsed)
201
- worksheet6.set_column('A:A', 10, bold )
202
- worksheet6.set_column('B:G', 5, nil, 1, 1 )
203
- worksheet6.set_column('H:H', 10, nil, 0, 0, 1)
204
-
205
- # Write the data and a formula
206
- worksheet6.write_col('A1', data)
207
- worksheet6.write('H6', '=SUM(H2:H5)', bold)
208
-
209
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ###############################################################################
5
+ #
6
+ # Example of how use Spreadsheet::WriteExcel to generate Excel outlines and
7
+ # grouping.
8
+ #
9
+ # These example focus mainly on collapsed outlines. See also the
10
+ # outlines.pl example program for more general examples.
11
+ #
12
+ # reverse('©'), March 2008, John McNamara, jmcnamara@cpan.org
13
+ #
14
+ # original written in Perl by John McNamara
15
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
16
+ #
17
+
18
+ require 'writeexcel'
19
+
20
+ # Create a new workbook and add some worksheets
21
+ workbook = WriteExcel.new('outline_collapsed.xls')
22
+ worksheet1 = workbook.add_worksheet('Outlined Rows')
23
+ worksheet2 = workbook.add_worksheet('Collapsed Rows 1')
24
+ worksheet3 = workbook.add_worksheet('Collapsed Rows 2')
25
+ worksheet4 = workbook.add_worksheet('Collapsed Rows 3')
26
+ worksheet5 = workbook.add_worksheet('Outline Columns')
27
+ worksheet6 = workbook.add_worksheet('Collapsed Columns')
28
+
29
+ # Add a general format
30
+ bold = workbook.add_format(:bold => 1)
31
+
32
+ #
33
+ # This function will generate the same data and sub-totals on each worksheet.
34
+ #
35
+ def create_sub_totals(worksheet, bold)
36
+ # Add a column format for clarity
37
+ worksheet.set_column('A:A', 20)
38
+
39
+ # Add the data, labels and formulas
40
+ worksheet.write('A1', 'Region', bold)
41
+ worksheet.write('A2', 'North')
42
+ worksheet.write('A3', 'North')
43
+ worksheet.write('A4', 'North')
44
+ worksheet.write('A5', 'North')
45
+ worksheet.write('A6', 'North Total', bold)
46
+
47
+ worksheet.write('B1', 'Sales', bold)
48
+ worksheet.write('B2', 1000)
49
+ worksheet.write('B3', 1200)
50
+ worksheet.write('B4', 900)
51
+ worksheet.write('B5', 1200)
52
+ worksheet.write('B6', '=SUBTOTAL(9,B2:B5)', bold)
53
+
54
+ worksheet.write('A7', 'South')
55
+ worksheet.write('A8', 'South')
56
+ worksheet.write('A9', 'South')
57
+ worksheet.write('A10', 'South')
58
+ worksheet.write('A11', 'South Total', bold)
59
+
60
+ worksheet.write('B7', 400)
61
+ worksheet.write('B8', 600)
62
+ worksheet.write('B9', 500)
63
+ worksheet.write('B10', 600)
64
+ worksheet.write('B11', '=SUBTOTAL(9,B7:B10)', bold)
65
+
66
+ worksheet.write('A12', 'Grand Total', bold)
67
+ worksheet.write('B12', '=SUBTOTAL(9,B2:B10)', bold)
68
+
69
+ end
70
+
71
+
72
+ ###############################################################################
73
+ #
74
+ # Example 1: Create a worksheet with outlined rows. It also includes SUBTOTAL()
75
+ # functions so that it looks like the type of automatic outlines that are
76
+ # generated when you use the Excel Data.SubTotals menu item.
77
+ #
78
+
79
+ # The syntax is: set_row(row, height, XF, hidden, level, collapsed)
80
+ worksheet1.set_row(1, nil, nil, 0, 2)
81
+ worksheet1.set_row(2, nil, nil, 0, 2)
82
+ worksheet1.set_row(3, nil, nil, 0, 2)
83
+ worksheet1.set_row(4, nil, nil, 0, 2)
84
+ worksheet1.set_row(5, nil, nil, 0, 1)
85
+
86
+ worksheet1.set_row(6, nil, nil, 0, 2)
87
+ worksheet1.set_row(7, nil, nil, 0, 2)
88
+ worksheet1.set_row(8, nil, nil, 0, 2)
89
+ worksheet1.set_row(9, nil, nil, 0, 2)
90
+ worksheet1.set_row(10, nil, nil, 0, 1)
91
+
92
+ # Write the sub-total data that is common to the row examples.
93
+ create_sub_totals(worksheet1, bold)
94
+
95
+
96
+ ###############################################################################
97
+ #
98
+ # Example 2: Create a worksheet with collapsed outlined rows.
99
+ # This is the same as the example 1 except that the all rows are collapsed.
100
+ # Note: We need to indicate the row that contains the collapsed symbol '+' with
101
+ # the optional parameter, collapsed.
102
+
103
+ worksheet2.set_row(1, nil, nil, 1, 2)
104
+ worksheet2.set_row(2, nil, nil, 1, 2)
105
+ worksheet2.set_row(3, nil, nil, 1, 2)
106
+ worksheet2.set_row(4, nil, nil, 1, 2)
107
+ worksheet2.set_row(5, nil, nil, 1, 1)
108
+
109
+ worksheet2.set_row(6, nil, nil, 1, 2)
110
+ worksheet2.set_row(7, nil, nil, 1, 2)
111
+ worksheet2.set_row(8, nil, nil, 1, 2)
112
+ worksheet2.set_row(9, nil, nil, 1, 2)
113
+ worksheet2.set_row(10, nil, nil, 1, 1)
114
+
115
+ worksheet2.set_row(11, nil, nil, 0, 0, 1)
116
+
117
+ # Write the sub-total data that is common to the row examples.
118
+ create_sub_totals(worksheet2, bold)
119
+
120
+
121
+ ###############################################################################
122
+ #
123
+ # Example 3: Create a worksheet with collapsed outlined rows.
124
+ # Same as the example 1 except that the two sub-totals are collapsed.
125
+
126
+ worksheet3.set_row(1, nil, nil, 1, 2)
127
+ worksheet3.set_row(2, nil, nil, 1, 2)
128
+ worksheet3.set_row(3, nil, nil, 1, 2)
129
+ worksheet3.set_row(4, nil, nil, 1, 2)
130
+ worksheet3.set_row(5, nil, nil, 0, 1, 1)
131
+
132
+ worksheet3.set_row(6, nil, nil, 1, 2)
133
+ worksheet3.set_row(7, nil, nil, 1, 2)
134
+ worksheet3.set_row(8, nil, nil, 1, 2)
135
+ worksheet3.set_row(9, nil, nil, 1, 2)
136
+ worksheet3.set_row(10, nil, nil, 0, 1, 1)
137
+
138
+
139
+ # Write the sub-total data that is common to the row examples.
140
+ create_sub_totals(worksheet3, bold)
141
+
142
+
143
+ ###############################################################################
144
+ #
145
+ # Example 4: Create a worksheet with outlined rows.
146
+ # Same as the example 1 except that the two sub-totals are collapsed.
147
+
148
+ worksheet4.set_row(1, nil, nil, 1, 2)
149
+ worksheet4.set_row(2, nil, nil, 1, 2)
150
+ worksheet4.set_row(3, nil, nil, 1, 2)
151
+ worksheet4.set_row(4, nil, nil, 1, 2)
152
+ worksheet4.set_row(5, nil, nil, 1, 1, 1)
153
+
154
+ worksheet4.set_row(6, nil, nil, 1, 2)
155
+ worksheet4.set_row(7, nil, nil, 1, 2)
156
+ worksheet4.set_row(8, nil, nil, 1, 2)
157
+ worksheet4.set_row(9, nil, nil, 1, 2)
158
+ worksheet4.set_row(10, nil, nil, 1, 1, 1)
159
+
160
+ worksheet4.set_row(11, nil, nil, 0, 0, 1)
161
+
162
+ # Write the sub-total data that is common to the row examples.
163
+ create_sub_totals(worksheet4, bold)
164
+
165
+
166
+
167
+ ###############################################################################
168
+ #
169
+ # Example 5: Create a worksheet with outlined columns.
170
+ #
171
+ data = [
172
+ ['Month', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',' Total'],
173
+ ['North', 50, 20, 15, 25, 65, 80, '=SUM(B2:G2)'],
174
+ ['South', 10, 20, 30, 50, 50, 50, '=SUM(B3:G3)'],
175
+ ['East', 45, 75, 50, 15, 75, 100, '=SUM(B4:G4)'],
176
+ ['West', 15, 15, 55, 35, 20, 50, '=SUM(B5:G6)']
177
+ ]
178
+
179
+ # Add bold format to the first row
180
+ worksheet5.set_row(0, nil, bold)
181
+
182
+ # Syntax: set_column(col1, col2, width, XF, hidden, level, collapsed)
183
+ worksheet5.set_column('A:A', 10, bold )
184
+ worksheet5.set_column('B:G', 5, nil, 0, 1)
185
+ worksheet5.set_column('H:H', 10 )
186
+
187
+ # Write the data and a formula
188
+ worksheet5.write_col('A1', data)
189
+ worksheet5.write('H6', '=SUM(H2:H5)', bold)
190
+
191
+
192
+ ###############################################################################
193
+ #
194
+ # Example 6: Create a worksheet with collapsed outlined columns.
195
+ # This is the same as the previous example except collapsed columns.
196
+
197
+ # Add bold format to the first row
198
+ worksheet6.set_row(0, nil, bold)
199
+
200
+ # Syntax: set_column(col1, col2, width, XF, hidden, level, collapsed)
201
+ worksheet6.set_column('A:A', 10, bold )
202
+ worksheet6.set_column('B:G', 5, nil, 1, 1 )
203
+ worksheet6.set_column('H:H', 10, nil, 0, 0, 1)
204
+
205
+ # Write the data and a formula
206
+ worksheet6.write_col('A1', data)
207
+ worksheet6.write('H6', '=SUM(H2:H5)', bold)
208
+
209
+ workbook.close
data/examples/panes.rb CHANGED
@@ -1,113 +1,113 @@
1
- #!/usr/bin/ruby -w
2
- # -*- coding: utf-8 -*-
3
-
4
- #######################################################################
5
- #
6
- # Example of using the WriteExcel module to create worksheet panes.
7
- #
8
- # reverse('©'), May 2001, John McNamara, jmcnamara@cpan.org
9
- #
10
- # original written in Perl by John McNamara
11
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
12
- #
13
-
14
- require 'writeexcel'
15
-
16
- workbook = WriteExcel.new("panes.xls")
17
-
18
- worksheet1 = workbook.add_worksheet('Panes 1')
19
- worksheet2 = workbook.add_worksheet('Panes 2')
20
- worksheet3 = workbook.add_worksheet('Panes 3')
21
- worksheet4 = workbook.add_worksheet('Panes 4')
22
-
23
- # Freeze panes
24
- worksheet1.freeze_panes(1, 0) # 1 row
25
-
26
- worksheet2.freeze_panes(0, 1) # 1 column
27
- worksheet3.freeze_panes(1, 1) # 1 row and column
28
-
29
- # Split panes.
30
- # The divisions must be specified in terms of row and column dimensions.
31
- # The default row height is 12.75 and the default column width is 8.43
32
- #
33
- worksheet4.split_panes(12.75, 8.43, 1, 1) # 1 row and column
34
-
35
-
36
- #######################################################################
37
- #
38
- # Set up some formatting and text to highlight the panes
39
- #
40
-
41
- header = workbook.add_format
42
- header.set_color('white')
43
- header.set_align('center')
44
- header.set_align('vcenter')
45
- header.set_pattern
46
- header.set_fg_color('green')
47
-
48
- center = workbook.add_format
49
- center.set_align('center')
50
-
51
- #######################################################################
52
- #
53
- # Sheet 1
54
- #
55
-
56
- worksheet1.set_column('A:I', 16)
57
- worksheet1.set_row(0, 20)
58
- worksheet1.set_selection('C3')
59
-
60
- (0..8).each { |i| worksheet1.write(0, i, 'Scroll down', header) }
61
- (1..100).each do |i|
62
- (0..8).each { |j| worksheet1.write(i, j, i + 1, center) }
63
- end
64
-
65
- #######################################################################
66
- #
67
- # Sheet 2
68
- #
69
-
70
- worksheet2.set_column('A:A', 16)
71
- worksheet2.set_selection('C3')
72
-
73
- (0..49).each do |i|
74
- worksheet2.set_row(i, 15)
75
- worksheet2.write(i, 0, 'Scroll right', header)
76
- end
77
-
78
- (0..49).each do |i|
79
- (1..25).each { |j| worksheet2.write(i, j, j, center) }
80
- end
81
-
82
- #######################################################################
83
- #
84
- # Sheet 3
85
- #
86
-
87
- worksheet3.set_column('A:Z', 16)
88
- worksheet3.set_selection('C3')
89
-
90
- (1..25).each { |i| worksheet3.write(0, i, 'Scroll down', header) }
91
-
92
- (1..49).each { |i| worksheet3.write(i, 0, 'Scroll right', header) }
93
-
94
- (1..49).each do |i|
95
- (1..25).each { |j| worksheet3.write(i, j, j, center) }
96
- end
97
-
98
- #######################################################################
99
- #
100
- # Sheet 4
101
- #
102
-
103
- worksheet4.set_selection('C3')
104
-
105
- (1..25).each { |i| worksheet4.write(0, i, 'Scroll', center) }
106
-
107
- (1..49).each { |i| worksheet4.write(i, 0, 'Scroll', center) }
108
-
109
- (1..49).each do |i|
110
- (1..25).each { |j| worksheet4.write(i, j, j, center) }
111
- end
112
-
113
- workbook.close
1
+ #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #######################################################################
5
+ #
6
+ # Example of using the WriteExcel module to create worksheet panes.
7
+ #
8
+ # reverse('©'), May 2001, John McNamara, jmcnamara@cpan.org
9
+ #
10
+ # original written in Perl by John McNamara
11
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
12
+ #
13
+
14
+ require 'writeexcel'
15
+
16
+ workbook = WriteExcel.new("panes.xls")
17
+
18
+ worksheet1 = workbook.add_worksheet('Panes 1')
19
+ worksheet2 = workbook.add_worksheet('Panes 2')
20
+ worksheet3 = workbook.add_worksheet('Panes 3')
21
+ worksheet4 = workbook.add_worksheet('Panes 4')
22
+
23
+ # Freeze panes
24
+ worksheet1.freeze_panes(1, 0) # 1 row
25
+
26
+ worksheet2.freeze_panes(0, 1) # 1 column
27
+ worksheet3.freeze_panes(1, 1) # 1 row and column
28
+
29
+ # Split panes.
30
+ # The divisions must be specified in terms of row and column dimensions.
31
+ # The default row height is 12.75 and the default column width is 8.43
32
+ #
33
+ worksheet4.split_panes(12.75, 8.43, 1, 1) # 1 row and column
34
+
35
+
36
+ #######################################################################
37
+ #
38
+ # Set up some formatting and text to highlight the panes
39
+ #
40
+
41
+ header = workbook.add_format
42
+ header.set_color('white')
43
+ header.set_align('center')
44
+ header.set_align('vcenter')
45
+ header.set_pattern
46
+ header.set_fg_color('green')
47
+
48
+ center = workbook.add_format
49
+ center.set_align('center')
50
+
51
+ #######################################################################
52
+ #
53
+ # Sheet 1
54
+ #
55
+
56
+ worksheet1.set_column('A:I', 16)
57
+ worksheet1.set_row(0, 20)
58
+ worksheet1.set_selection('C3')
59
+
60
+ (0..8).each { |i| worksheet1.write(0, i, 'Scroll down', header) }
61
+ (1..100).each do |i|
62
+ (0..8).each { |j| worksheet1.write(i, j, i + 1, center) }
63
+ end
64
+
65
+ #######################################################################
66
+ #
67
+ # Sheet 2
68
+ #
69
+
70
+ worksheet2.set_column('A:A', 16)
71
+ worksheet2.set_selection('C3')
72
+
73
+ (0..49).each do |i|
74
+ worksheet2.set_row(i, 15)
75
+ worksheet2.write(i, 0, 'Scroll right', header)
76
+ end
77
+
78
+ (0..49).each do |i|
79
+ (1..25).each { |j| worksheet2.write(i, j, j, center) }
80
+ end
81
+
82
+ #######################################################################
83
+ #
84
+ # Sheet 3
85
+ #
86
+
87
+ worksheet3.set_column('A:Z', 16)
88
+ worksheet3.set_selection('C3')
89
+
90
+ (1..25).each { |i| worksheet3.write(0, i, 'Scroll down', header) }
91
+
92
+ (1..49).each { |i| worksheet3.write(i, 0, 'Scroll right', header) }
93
+
94
+ (1..49).each do |i|
95
+ (1..25).each { |j| worksheet3.write(i, j, j, center) }
96
+ end
97
+
98
+ #######################################################################
99
+ #
100
+ # Sheet 4
101
+ #
102
+
103
+ worksheet4.set_selection('C3')
104
+
105
+ (1..25).each { |i| worksheet4.write(0, i, 'Scroll', center) }
106
+
107
+ (1..49).each { |i| worksheet4.write(i, 0, 'Scroll', center) }
108
+
109
+ (1..49).each do |i|
110
+ (1..25).each { |j| worksheet4.write(i, j, j, center) }
111
+ end
112
+
113
+ workbook.close