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,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
@@ -0,0 +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
@@ -0,0 +1,33 @@
1
+ require 'rubygems'
2
+ require 'writeexcel'
3
+
4
+ workbook = WriteExcel.new('password_protection.xls')
5
+ worksheet = workbook.add_worksheet
6
+
7
+ # Create some format objects
8
+ locked = workbook.add_format(:locked => 1)
9
+ unlocked = workbook.add_format(:locked => 0)
10
+ hidden = workbook.add_format(:hidden => 1)
11
+
12
+ # Format the columns
13
+ worksheet.set_column('A:A', 42)
14
+ worksheet.set_selection('B3:B3')
15
+
16
+ # Protect the worksheet
17
+ worksheet.protect('password')
18
+
19
+ # Examples of cell locking and hiding
20
+ worksheet.write('A1', 'Cell B1 is locked. It cannot be edited.')
21
+ worksheet.write('B1', '=1+2', locked)
22
+
23
+ worksheet.write('A2', 'Cell B2 is unlocked. It can be edited.')
24
+ worksheet.write('B2', '=1+2', unlocked)
25
+
26
+ worksheet.write('A3', "Cell B3 is hidden. The formula isn't visible.")
27
+ worksheet.write('B3', '=1+2', hidden)
28
+
29
+ worksheet.write('A5', 'Use Menu->Tools->Protection->Unprotect Sheet')
30
+ worksheet.write('A6', 'to remove the worksheet protection. ')
31
+ worksheet.write('A7', 'The password is "password". ')
32
+
33
+ workbook.close
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ##############################################################################
5
+ #
6
+ # An example of adding document properties to a WriteExcel file.
7
+ #
8
+ # reverse('©'), August 2008, 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
+ require 'rubygems'
14
+ require 'writeexcel'
15
+
16
+ workbook = WriteExcel.new('properties.xls')
17
+ worksheet = workbook.add_worksheet
18
+ bp =1
19
+ workbook.set_properties(
20
+ :title => 'This is an example spreadsheet',
21
+ :subject => 'With document properties',
22
+ :author => 'Hideo NAKAMURA',
23
+ :manager => 'John McNamara',
24
+ :company => 'Rubygem',
25
+ :category => 'Example spreadsheets',
26
+ :keywords => 'Sample, Example, Properties',
27
+ :comments => 'Created with Ruby and WriteExcel'
28
+ )
29
+
30
+
31
+ worksheet.set_column('A:A', 50)
32
+ worksheet.write('A1', 'Select File->Properties to see the file properties')
33
+
34
+ workbook.close
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/ruby -w
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ##############################################################################
5
+ #
6
+ # An example of adding document properties to a WriteExcel file.
7
+ #
8
+ # reverse('©'), August 2008, 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
+ require 'rubygems'
14
+ require 'writeexcel'
15
+
16
+ workbook = WriteExcel.new('properties_jp.xls')
17
+ worksheet = workbook.add_worksheet
18
+ bp =1
19
+ workbook.set_properties(
20
+ :title => 'スプレッドシートの作成例',
21
+ :subject => 'ファイルのプロパティをセット',
22
+ :author => '中村英夫',
23
+ :manager => 'John McNamara',
24
+ :company => 'Rubygem',
25
+ :category => 'エクセルファイル',
26
+ :keywords => 'エクセル プロパティ UTF-8',
27
+ :comments => 'Rubygem writeexcelで作成'
28
+ )
29
+
30
+ worksheet.set_column('A:A', 50)
31
+ worksheet.write('A1', 'メニューのファイル(F)-プロパティ(I)を見てください。')
32
+
33
+ workbook.close
@@ -0,0 +1,47 @@
1
+ # -*- coding: utf-8 -*-
2
+ #!/usr/bin/ruby -w
3
+
4
+ ########################################################################
5
+ #
6
+ # Example of cell locking and formula hiding in an Excel worksheet via
7
+ # the WriteExcel module.
8
+ #
9
+ # reverse('©'), August 2001, John McNamara, jmcnamara@cpan.org
10
+ #
11
+ # original written in Perl by John McNamara
12
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
13
+ #
14
+
15
+ require 'rubygems'
16
+ require 'writeexcel'
17
+
18
+ workbook = WriteExcel.new("protection.xls")
19
+ worksheet = workbook.add_worksheet
20
+
21
+ # Create some format objects
22
+ locked = workbook.add_format(:locked => 1)
23
+ unlocked = workbook.add_format(:locked => 0)
24
+ hidden = workbook.add_format(:hidden => 1)
25
+
26
+ # Format the columns
27
+ worksheet.set_column('A:A', 42)
28
+ worksheet.set_selection('B3:B3')
29
+
30
+ # Protect the worksheet
31
+ worksheet.protect
32
+
33
+ # Examples of cell locking and hiding
34
+ worksheet.write('A1', 'Cell B1 is locked. It cannot be edited.')
35
+ worksheet.write('B1', '=1+2', locked)
36
+
37
+ worksheet.write('A2', 'Cell B2 is unlocked. It can be edited.')
38
+ worksheet.write('B2', '=1+2', unlocked)
39
+
40
+ worksheet.write('A3', "Cell B3 is hidden. The formula isn't visible.")
41
+ worksheet.write('B3', '=1+2', hidden)
42
+
43
+ worksheet.write('A5', 'Use Menu->Tools->Protection->Unprotect Sheet')
44
+ worksheet.write('A6', 'to remove the worksheet protection. ')
45
+
46
+ workbook.close
47
+