write_xlsx 0.0.2

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 (261) hide show
  1. data/.document +5 -0
  2. data/.gitattributes +1 -0
  3. data/Gemfile +12 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +82 -0
  6. data/Rakefile +78 -0
  7. data/VERSION +1 -0
  8. data/examples/a_simple.rb +45 -0
  9. data/examples/array_formula.rb +33 -0
  10. data/examples/autofilter.rb +235 -0
  11. data/examples/chart_area.rb +59 -0
  12. data/examples/chart_bar.rb +59 -0
  13. data/examples/chart_column.rb +58 -0
  14. data/examples/chart_line.rb +59 -0
  15. data/examples/chart_pie.rb +49 -0
  16. data/examples/chart_scatter.rb +59 -0
  17. data/examples/chart_stock.rb +65 -0
  18. data/examples/colors.rb +130 -0
  19. data/examples/comments1.rb +12 -0
  20. data/examples/comments2.rb +335 -0
  21. data/examples/conditional_format.rb +67 -0
  22. data/examples/data_validate.rb +279 -0
  23. data/examples/defined_name.rb +28 -0
  24. data/examples/demo.rb +104 -0
  25. data/examples/diag_border.rb +26 -0
  26. data/examples/headers.rb +119 -0
  27. data/examples/hide_sheet.rb +30 -0
  28. data/examples/hyperlink1.rb +58 -0
  29. data/examples/indent.rb +28 -0
  30. data/examples/merge1.rb +38 -0
  31. data/examples/merge2.rb +48 -0
  32. data/examples/merge3.rb +43 -0
  33. data/examples/merge4.rb +82 -0
  34. data/examples/merge5.rb +70 -0
  35. data/examples/merge6.rb +48 -0
  36. data/examples/outline.rb +252 -0
  37. data/examples/properties.rb +33 -0
  38. data/examples/protection.rb +34 -0
  39. data/examples/rich_strings.rb +42 -0
  40. data/examples/right_to_left.rb +24 -0
  41. data/examples/tab_colors.rb +26 -0
  42. data/lib/write_xlsx.rb +77 -0
  43. data/lib/write_xlsx/chart.rb +3027 -0
  44. data/lib/write_xlsx/chart/area.rb +52 -0
  45. data/lib/write_xlsx/chart/bar.rb +126 -0
  46. data/lib/write_xlsx/chart/column.rb +132 -0
  47. data/lib/write_xlsx/chart/line.rb +51 -0
  48. data/lib/write_xlsx/chart/pie.rb +210 -0
  49. data/lib/write_xlsx/chart/scatter.rb +252 -0
  50. data/lib/write_xlsx/chart/stock.rb +134 -0
  51. data/lib/write_xlsx/chartsheet.rb +173 -0
  52. data/lib/write_xlsx/colors.rb +65 -0
  53. data/lib/write_xlsx/compatibility.rb +71 -0
  54. data/lib/write_xlsx/drawing.rb +547 -0
  55. data/lib/write_xlsx/format.rb +683 -0
  56. data/lib/write_xlsx/package/app.rb +218 -0
  57. data/lib/write_xlsx/package/comments.rb +221 -0
  58. data/lib/write_xlsx/package/content_types.rb +189 -0
  59. data/lib/write_xlsx/package/core.rb +196 -0
  60. data/lib/write_xlsx/package/packager.rb +510 -0
  61. data/lib/write_xlsx/package/relationships.rb +98 -0
  62. data/lib/write_xlsx/package/shared_strings.rb +96 -0
  63. data/lib/write_xlsx/package/styles.rb +705 -0
  64. data/lib/write_xlsx/package/theme.rb +45 -0
  65. data/lib/write_xlsx/package/vml.rb +386 -0
  66. data/lib/write_xlsx/package/xml_writer_simple.rb +90 -0
  67. data/lib/write_xlsx/utility.rb +113 -0
  68. data/lib/write_xlsx/workbook.rb +1488 -0
  69. data/lib/write_xlsx/worksheet.rb +6578 -0
  70. data/lib/write_xlsx/zip_file_utils.rb +98 -0
  71. data/test/chart/test_add_series.rb +113 -0
  72. data/test/chart/test_process_names.rb +27 -0
  73. data/test/chart/test_write_auto.rb +15 -0
  74. data/test/chart/test_write_ax_id.rb +15 -0
  75. data/test/chart/test_write_ax_pos.rb +15 -0
  76. data/test/chart/test_write_chart_space.rb +15 -0
  77. data/test/chart/test_write_cross_ax.rb +15 -0
  78. data/test/chart/test_write_crosses.rb +15 -0
  79. data/test/chart/test_write_format_code.rb +15 -0
  80. data/test/chart/test_write_idx.rb +15 -0
  81. data/test/chart/test_write_label_align.rb +15 -0
  82. data/test/chart/test_write_label_offset.rb +15 -0
  83. data/test/chart/test_write_lang.rb +15 -0
  84. data/test/chart/test_write_layout.rb +15 -0
  85. data/test/chart/test_write_legend.rb +16 -0
  86. data/test/chart/test_write_legend_pos.rb +15 -0
  87. data/test/chart/test_write_major_gridlines.rb +15 -0
  88. data/test/chart/test_write_marker.rb +17 -0
  89. data/test/chart/test_write_marker_size.rb +15 -0
  90. data/test/chart/test_write_marker_value.rb +16 -0
  91. data/test/chart/test_write_num_cache.rb +16 -0
  92. data/test/chart/test_write_num_fmt.rb +16 -0
  93. data/test/chart/test_write_number_format.rb +15 -0
  94. data/test/chart/test_write_order.rb +15 -0
  95. data/test/chart/test_write_orientation.rb +15 -0
  96. data/test/chart/test_write_page_margins.rb +15 -0
  97. data/test/chart/test_write_page_setup.rb +15 -0
  98. data/test/chart/test_write_plot_vis_only.rb +15 -0
  99. data/test/chart/test_write_pt.rb +16 -0
  100. data/test/chart/test_write_pt_count.rb +16 -0
  101. data/test/chart/test_write_series_formula.rb +16 -0
  102. data/test/chart/test_write_style.rb +41 -0
  103. data/test/chart/test_write_symbol.rb +16 -0
  104. data/test/chart/test_write_tick_lbl_pos.rb +16 -0
  105. data/test/chart/test_write_v.rb +16 -0
  106. data/test/drawing/test_drawing_chart_01.rb +50 -0
  107. data/test/drawing/test_drawing_image_01.rb +59 -0
  108. data/test/helper.rb +90 -0
  109. data/test/package/app/test_app01.rb +44 -0
  110. data/test/package/app/test_app02.rb +46 -0
  111. data/test/package/app/test_app03.rb +53 -0
  112. data/test/package/comments/test_comments01.rb +36 -0
  113. data/test/package/comments/test_write_text_t.rb +44 -0
  114. data/test/package/content_types/test_content_types.rb +35 -0
  115. data/test/package/content_types/test_write_default.rb +13 -0
  116. data/test/package/content_types/test_write_override.rb +13 -0
  117. data/test/package/core/test_core01.rb +28 -0
  118. data/test/package/core/test_core02.rb +42 -0
  119. data/test/package/relationships/test_relationships.rb +28 -0
  120. data/test/package/relationships/test_sheet_rels.rb +22 -0
  121. data/test/package/shared_strings/test_shared_strings01.rb +30 -0
  122. data/test/package/shared_strings/test_shared_strings02.rb +30 -0
  123. data/test/package/shared_strings/test_write_si.rb +13 -0
  124. data/test/package/shared_strings/test_write_sst.rb +15 -0
  125. data/test/package/styles/test_styles_01.rb +69 -0
  126. data/test/package/styles/test_styles_02.rb +104 -0
  127. data/test/package/styles/test_styles_03.rb +90 -0
  128. data/test/package/styles/test_styles_04.rb +216 -0
  129. data/test/package/styles/test_styles_05.rb +150 -0
  130. data/test/package/styles/test_styles_06.rb +104 -0
  131. data/test/package/styles/test_styles_07.rb +104 -0
  132. data/test/package/styles/test_styles_08.rb +109 -0
  133. data/test/package/styles/test_styles_09.rb +95 -0
  134. data/test/package/vml/test_vml_01.rb +42 -0
  135. data/test/package/vml/test_write_anchor.rb +14 -0
  136. data/test/package/vml/test_write_auto_fill.rb +14 -0
  137. data/test/package/vml/test_write_column.rb +14 -0
  138. data/test/package/vml/test_write_div.rb +14 -0
  139. data/test/package/vml/test_write_fill.rb +14 -0
  140. data/test/package/vml/test_write_idmap.rb +14 -0
  141. data/test/package/vml/test_write_move_with_cells.rb +14 -0
  142. data/test/package/vml/test_write_path.rb +22 -0
  143. data/test/package/vml/test_write_row.rb +14 -0
  144. data/test/package/vml/test_write_shadow.rb +14 -0
  145. data/test/package/vml/test_write_shapelayout.rb +14 -0
  146. data/test/package/vml/test_write_shapetype.rb +14 -0
  147. data/test/package/vml/test_write_size_with_cells.rb +14 -0
  148. data/test/package/vml/test_write_stroke.rb +14 -0
  149. data/test/package/vml/test_write_textbox.rb +14 -0
  150. data/test/perl_output/a_simple.xlsx +0 -0
  151. data/test/perl_output/array_formula.xlsx +0 -0
  152. data/test/perl_output/autofilter.xlsx +0 -0
  153. data/test/perl_output/chart_area.xlsx +0 -0
  154. data/test/perl_output/chart_bar.xlsx +0 -0
  155. data/test/perl_output/chart_column.xlsx +0 -0
  156. data/test/perl_output/chart_line.xlsx +0 -0
  157. data/test/perl_output/chart_pie.xlsx +0 -0
  158. data/test/perl_output/chart_scatter.xlsx +0 -0
  159. data/test/perl_output/chart_stock.xlsx +0 -0
  160. data/test/perl_output/comments1.xlsx +0 -0
  161. data/test/perl_output/comments2.xlsx +0 -0
  162. data/test/perl_output/conditional_format.xlsx +0 -0
  163. data/test/perl_output/data_validate.xlsx +0 -0
  164. data/test/perl_output/defined_name.xlsx +0 -0
  165. data/test/perl_output/demo.xlsx +0 -0
  166. data/test/perl_output/diag_border.xlsx +0 -0
  167. data/test/perl_output/fit_to_pages.xlsx +0 -0
  168. data/test/perl_output/headers.xlsx +0 -0
  169. data/test/perl_output/hide_sheet.xlsx +0 -0
  170. data/test/perl_output/hyperlink.xlsx +0 -0
  171. data/test/perl_output/indent.xlsx +0 -0
  172. data/test/perl_output/merge1.xlsx +0 -0
  173. data/test/perl_output/merge2.xlsx +0 -0
  174. data/test/perl_output/merge3.xlsx +0 -0
  175. data/test/perl_output/merge4.xlsx +0 -0
  176. data/test/perl_output/merge5.xlsx +0 -0
  177. data/test/perl_output/merge6.xlsx +0 -0
  178. data/test/perl_output/outline.xlsx +0 -0
  179. data/test/perl_output/print_scale.xlsx +0 -0
  180. data/test/perl_output/properties.xlsx +0 -0
  181. data/test/perl_output/protection.xlsx +0 -0
  182. data/test/perl_output/rich_strings.xlsx +0 -0
  183. data/test/perl_output/right_to_left.xlsx +0 -0
  184. data/test/perl_output/tab_colors.xlsx +0 -0
  185. data/test/test_delete_files.rb +37 -0
  186. data/test/test_example_match.rb +2281 -0
  187. data/test/test_xml_writer_simple.rb +63 -0
  188. data/test/workbook/test_get_chart_range.rb +59 -0
  189. data/test/workbook/test_sort_defined_names.rb +77 -0
  190. data/test/workbook/test_workbook_01.rb +29 -0
  191. data/test/workbook/test_workbook_02.rb +31 -0
  192. data/test/workbook/test_workbook_03.rb +31 -0
  193. data/test/workbook/test_workbook_new.rb +18 -0
  194. data/test/workbook/test_write_defined_name.rb +17 -0
  195. data/test/workbook/test_write_defined_names.rb +41 -0
  196. data/test/worksheet/test_calculate_spans.rb +58 -0
  197. data/test/worksheet/test_convert_date_time_01.rb +439 -0
  198. data/test/worksheet/test_convert_date_time_02.rb +478 -0
  199. data/test/worksheet/test_convert_date_time_03.rb +435 -0
  200. data/test/worksheet/test_extract_filter_tokens.rb +109 -0
  201. data/test/worksheet/test_parse_filter_expression.rb +143 -0
  202. data/test/worksheet/test_position_object.rb +50 -0
  203. data/test/worksheet/test_repeat_formula.rb +55 -0
  204. data/test/worksheet/test_worksheet_01.rb +32 -0
  205. data/test/worksheet/test_worksheet_02.rb +38 -0
  206. data/test/worksheet/test_worksheet_03.rb +44 -0
  207. data/test/worksheet/test_worksheet_04.rb +45 -0
  208. data/test/worksheet/test_write_array_formula_01.rb +99 -0
  209. data/test/worksheet/test_write_autofilter.rb +260 -0
  210. data/test/worksheet/test_write_brk.rb +18 -0
  211. data/test/worksheet/test_write_cell.rb +49 -0
  212. data/test/worksheet/test_write_cell_value.rb +33 -0
  213. data/test/worksheet/test_write_col_breaks.rb +27 -0
  214. data/test/worksheet/test_write_col_info.rb +95 -0
  215. data/test/worksheet/test_write_conditional_formatting.rb +72 -0
  216. data/test/worksheet/test_write_custom_filter.rb +18 -0
  217. data/test/worksheet/test_write_custom_filters.rb +25 -0
  218. data/test/worksheet/test_write_data_validation_01.rb +113 -0
  219. data/test/worksheet/test_write_data_validation_02.rb +528 -0
  220. data/test/worksheet/test_write_dimension.rb +94 -0
  221. data/test/worksheet/test_write_ext.rb +18 -0
  222. data/test/worksheet/test_write_ext_lst.rb +18 -0
  223. data/test/worksheet/test_write_filter.rb +18 -0
  224. data/test/worksheet/test_write_filter_column.rb +18 -0
  225. data/test/worksheet/test_write_filters.rb +32 -0
  226. data/test/worksheet/test_write_header_footer.rb +53 -0
  227. data/test/worksheet/test_write_hyperlink.rb +39 -0
  228. data/test/worksheet/test_write_hyperlinks.rb +27 -0
  229. data/test/worksheet/test_write_legacy_drawing.rb +19 -0
  230. data/test/worksheet/test_write_merge_cell.rb +18 -0
  231. data/test/worksheet/test_write_merge_cells.rb +192 -0
  232. data/test/worksheet/test_write_methods.rb +353 -0
  233. data/test/worksheet/test_write_mx_plv.rb +19 -0
  234. data/test/worksheet/test_write_page_margins.rb +98 -0
  235. data/test/worksheet/test_write_page_set_up_pr.rb +19 -0
  236. data/test/worksheet/test_write_page_setup.rb +54 -0
  237. data/test/worksheet/test_write_pane.rb +123 -0
  238. data/test/worksheet/test_write_phonetic_pr.rb +19 -0
  239. data/test/worksheet/test_write_print_options.rb +77 -0
  240. data/test/worksheet/test_write_row_breaks.rb +27 -0
  241. data/test/worksheet/test_write_row_element.rb +69 -0
  242. data/test/worksheet/test_write_selection.rb +18 -0
  243. data/test/worksheet/test_write_sheet_calc_pr.rb +18 -0
  244. data/test/worksheet/test_write_sheet_data.rb +18 -0
  245. data/test/worksheet/test_write_sheet_format_pr.rb +18 -0
  246. data/test/worksheet/test_write_sheet_pr.rb +36 -0
  247. data/test/worksheet/test_write_sheet_protection.rb +174 -0
  248. data/test/worksheet/test_write_sheet_view.rb +62 -0
  249. data/test/worksheet/test_write_sheet_view1.rb +64 -0
  250. data/test/worksheet/test_write_sheet_view2.rb +56 -0
  251. data/test/worksheet/test_write_sheet_view3.rb +83 -0
  252. data/test/worksheet/test_write_sheet_view4.rb +83 -0
  253. data/test/worksheet/test_write_sheet_view5.rb +74 -0
  254. data/test/worksheet/test_write_sheet_view6.rb +51 -0
  255. data/test/worksheet/test_write_sheet_view7.rb +71 -0
  256. data/test/worksheet/test_write_sheet_view8.rb +51 -0
  257. data/test/worksheet/test_write_sheet_view9.rb +51 -0
  258. data/test/worksheet/test_write_tab_color.rb +23 -0
  259. data/test/worksheet/test_write_worksheet.rb +19 -0
  260. data/write_xlsx.gemspec +308 -0
  261. metadata +363 -0
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'rubygems'
5
+ require 'write_xlsx'
6
+
7
+ workbook = WriteXLSX.new('defined_name.xlsx')
8
+ worksheet1 = workbook.add_worksheet
9
+ worksheet2 = workbook.add_worksheet
10
+
11
+ # Define some global/workbook names.
12
+ workbook.define_name('Exchange_rate', '=0.96')
13
+ workbook.define_name('Sales', '=Sheet1!$G$1:$H$10')
14
+
15
+ # Define a local/worksheet name.
16
+ workbook.define_name('Sheet2!Sales', '=Sheet2!$G$1:$G$10')
17
+
18
+ # Write some text in the file and one of the defined names in a formula.
19
+ workbook.worksheets.each do |worksheet|
20
+ worksheet.set_column('A:A', 45)
21
+ worksheet.write('A1', 'This worksheet contains some defined names.')
22
+ worksheet.write('A2', 'See Formulas -> Name Manager above.')
23
+ worksheet.write('A3', 'Example formula in cell B3 ->')
24
+
25
+ worksheet.write('B3', '=Exchange_rate')
26
+ end
27
+
28
+ workbook.close
data/examples/demo.rb ADDED
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'rubygems'
5
+ require 'write_xlsx'
6
+
7
+ workbook = WriteXLSX.new('demo.xlsx')
8
+ worksheet = workbook.add_worksheet('Demo')
9
+ worksheet2 = workbook.add_worksheet('Another sheet')
10
+ worksheet3 = workbook.add_worksheet('And another')
11
+
12
+ bold = workbook.add_format(:bold => 1)
13
+
14
+
15
+ #######################################################################
16
+ #
17
+ # Write a general heading
18
+ #
19
+ worksheet.set_column('A:A', 36, bold)
20
+ worksheet.set_column('B:B', 20)
21
+ worksheet.set_row(0, 40)
22
+
23
+ heading = workbook.add_format(
24
+ :bold => 1,
25
+ :color => 'blue',
26
+ :size => 16,
27
+ :merge => 1,
28
+ :align => 'vcenter'
29
+ )
30
+
31
+ hyperlink_format = workbook.add_format(
32
+ :color => 'blue',
33
+ :underline => 1
34
+ )
35
+
36
+ headings = ['Features of WriteXLSX', '']
37
+ worksheet.write_row('A1', headings, heading)
38
+
39
+ #######################################################################
40
+ #
41
+ # Some text examples
42
+ #
43
+ text_format = workbook.add_format(
44
+ :bold => 1,
45
+ :italic => 1,
46
+ :color => 'red',
47
+ :size => 18,
48
+ :font => 'Lucida Calligraphy'
49
+ )
50
+
51
+ worksheet.write('A2', "Text")
52
+ worksheet.write('B2', "Hello Excel")
53
+ worksheet.write('A3', "Formatted text")
54
+ worksheet.write('B3', "Hello Excel", text_format)
55
+ worksheet.write('A4', "Unicode text")
56
+ worksheet.write('B4', "А Б В Г Д")
57
+
58
+ #######################################################################
59
+ #
60
+ # Some numeric examples
61
+ #
62
+ num1_format = workbook.add_format(:num_format => '$#,##0.00')
63
+ num2_format = workbook.add_format(:num_format => ' d mmmm yyy')
64
+
65
+ worksheet.write('A5', "Numbers")
66
+ worksheet.write('B5', 1234.56)
67
+ worksheet.write('A6', "Formatted numbers")
68
+ worksheet.write('B6', 1234.56, num1_format)
69
+ worksheet.write('A7', "Formatted numbers")
70
+ worksheet.write('B7', 37257, num2_format)
71
+
72
+ #######################################################################
73
+ #
74
+ # Formulae
75
+ #
76
+ worksheet.set_selection('B8')
77
+ worksheet.write('A8', 'Formulas and functions, "=SIN(PI()/4)"')
78
+ worksheet.write('B8', '=SIN(PI()/4)')
79
+
80
+ #######################################################################
81
+ #
82
+ # Hyperlinks
83
+ #
84
+ worksheet.write('A9', "Hyperlinks")
85
+ worksheet.write('B9', 'http://www.ruby-lang.org/', hyperlink_format)
86
+
87
+ #######################################################################
88
+ #
89
+ # Images
90
+ #
91
+ # Not implemented yet.
92
+ #worksheet.write('A10', "Images")
93
+ #worksheet.insert_image('B10', 'republic.png', 16, 8)
94
+
95
+
96
+ #######################################################################
97
+ #
98
+ # Misc
99
+ #
100
+ worksheet.write('A18', "Page/printer setup")
101
+ worksheet.write('A19', "Multiple worksheets")
102
+
103
+ workbook.close
104
+
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ require 'rubygems'
5
+ require 'write_xlsx'
6
+
7
+ workbook = WriteXLSX.new('diag_border.xlsx')
8
+ worksheet = workbook.add_worksheet()
9
+
10
+
11
+ format1 = workbook.add_format(:diag_type => 1)
12
+ format2 = workbook.add_format(:diag_type => 2)
13
+ format3 = workbook.add_format(:diag_type => 3)
14
+
15
+ format4 = workbook.add_format(
16
+ :diag_type => 3,
17
+ :diag_border => 7,
18
+ :diag_color => 'red'
19
+ )
20
+
21
+ worksheet.write('B3', 'Text', format1)
22
+ worksheet.write('B6', 'Text', format2)
23
+ worksheet.write('B9', 'Text', format3)
24
+ worksheet.write('B12', 'Text', format4)
25
+
26
+ workbook.close
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ######################################################################
5
+ #
6
+ # This program shows several examples of how to set up headers and
7
+ # footers with Excel::Writer::XLSX.
8
+ #
9
+ # The control characters used in the header/footer strings are:
10
+ #
11
+ # Control Category Description
12
+ # ======= ======== ===========
13
+ # &L Justification Left
14
+ # &C Center
15
+ # &R Right
16
+ #
17
+ # &P Information Page number
18
+ # &N Total number of pages
19
+ # &D Date
20
+ # &T Time
21
+ # &F File name
22
+ # &A Worksheet name
23
+ #
24
+ # &fontsize Font Font size
25
+ # &"font,style" Font name and style
26
+ # &U Single underline
27
+ # &E Double underline
28
+ # &S Strikethrough
29
+ # &X Superscript
30
+ # &Y Subscript
31
+ #
32
+ # && Miscellaneous Literal ampersand &
33
+ #
34
+ # See the main Excel::Writer::XLSX documentation for more information.
35
+ #
36
+ # reverse(c), March 2002, John McNamara, jmcnamara@cpan.org
37
+ #
38
+ # converted to ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
39
+
40
+ require 'rubygems'
41
+ require 'write_xlsx'
42
+
43
+ workbook = WriteXLSX.new('headers.xlsx')
44
+ preview = 'Select Print Preview to see the header and footer'
45
+
46
+
47
+ ######################################################################
48
+ #
49
+ # A simple example to start
50
+ #
51
+ worksheet1 = workbook.add_worksheet('Simple')
52
+ header1 = '&CHere is some centred text.'
53
+ footer1 = '&LHere is some left aligned text.'
54
+
55
+ worksheet1.set_header(header1)
56
+ worksheet1.set_footer(footer1)
57
+
58
+ worksheet1.set_column('A:A', 50)
59
+ worksheet1.write('A1', preview)
60
+
61
+
62
+ ######################################################################
63
+ #
64
+ # This is an example of some of the header/footer variables.
65
+ #
66
+ worksheet2 = workbook.add_worksheet('Variables')
67
+ header2 = '&LPage &P of &N' + '&CFilename: &F' + '&RSheetname: &A'
68
+ footer2 = '&LCurrent date: &D' + '&RCurrent time: &T'
69
+
70
+ worksheet2.set_header(header2)
71
+ worksheet2.set_footer(footer2)
72
+
73
+ worksheet2.set_column('A:A', 50)
74
+ worksheet2.write('A1', preview)
75
+ worksheet2.write('A21', 'Next sheet')
76
+ worksheet2.set_h_pagebreaks(20)
77
+
78
+
79
+ ######################################################################
80
+ #
81
+ # This example shows how to use more than one font
82
+ #
83
+ worksheet3 = workbook.add_worksheet('Mixed fonts')
84
+ header3 = %q(&C&"Courier New,Bold"Hello &"Arial,Italic"World)
85
+ footer3 = %q(&C&"Symbol"e&"Arial" = mc&X2)
86
+
87
+ worksheet3.set_header(header3)
88
+ worksheet3.set_footer(footer3)
89
+
90
+ worksheet3.set_column('A:A', 50)
91
+ worksheet3.write('A1', preview)
92
+
93
+
94
+ ######################################################################
95
+ #
96
+ # Example of line wrapping
97
+ #
98
+ worksheet4 = workbook.add_worksheet('Word wrap')
99
+ header4 = "&CHeading 1\nHeading 2"
100
+
101
+ worksheet4.set_header(header4)
102
+
103
+ worksheet4.set_column('A:A', 50)
104
+ worksheet4.write('A1', preview)
105
+
106
+
107
+ ######################################################################
108
+ #
109
+ # Example of inserting a literal ampersand &
110
+ #
111
+ worksheet5 = workbook.add_worksheet('Ampersand')
112
+ header5 = '&CCuriouser && Curiouser - Attorneys at Law'
113
+
114
+ worksheet5.set_header(header5)
115
+
116
+ worksheet5.set_column('A:A', 50)
117
+ worksheet5.write('A1', preview)
118
+
119
+ workbook.close
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ #######################################################################
5
+ #
6
+ # Example of how to hide a worksheet with Excel::Writer::XLSX.
7
+ #
8
+ # reverse('c'), April 2005, John McNamara, jmcnamara@cpan.org
9
+ # convert to ruby by Hideo, Nakamura, cxn03651@msj.biglobe.ne.jp
10
+ #
11
+ require 'rubygems'
12
+ require 'write_xlsx'
13
+
14
+ workbook = WriteXLSX.new('hide_sheet.xlsx')
15
+ worksheet1 = workbook.add_worksheet
16
+ worksheet2 = workbook.add_worksheet
17
+ worksheet3 = workbook.add_worksheet
18
+
19
+ worksheet1.set_column('A:A', 30)
20
+ worksheet2.set_column('A:A', 30)
21
+ worksheet3.set_column('A:A', 30)
22
+
23
+ # Sheet2 won't be visible until it is unhidden in Excel.
24
+ worksheet2.hide
25
+
26
+ worksheet1.write(0, 0, 'Sheet2 is hidden')
27
+ worksheet2.write(0, 0, "Now it's my turn to find you.")
28
+ worksheet3.write(0, 0, 'Sheet2 is hidden')
29
+
30
+ workbook.close
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ###############################################################################
5
+ #
6
+ # Example of how to use the Excel::Writer::XLSX module to write hyperlinks
7
+ #
8
+ # See also hyperlink2.pl for worksheet URL examples.
9
+ #
10
+ # reverse(c), May 2004, John McNamara, jmcnamara@cpan.org
11
+ # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
12
+ #
13
+
14
+ require 'rubygems'
15
+ require 'write_xlsx'
16
+
17
+ # Create a new workbook and add a worksheet
18
+ workbook = WriteXLSX.new( 'hyperlink.xlsx')
19
+
20
+ worksheet = workbook.add_worksheet('Hyperlinks')
21
+
22
+ # Format the first column
23
+ worksheet.set_column('A:A', 30)
24
+ worksheet.set_selection('B1')
25
+
26
+
27
+ # Add the standard url link format.
28
+ url_format = workbook.add_format(
29
+ :color => 'blue',
30
+ :underline => 1
31
+ )
32
+
33
+ # Add a sample format.
34
+ red_format = workbook.add_format(
35
+ :color => 'red',
36
+ :bold => 1,
37
+ :underline => 1,
38
+ :size => 12
39
+ )
40
+
41
+ # Add an alternate description string to the URL.
42
+ str = 'Perl home.'
43
+
44
+ # Add a "tool tip" to the URL.
45
+ tip = 'Get the latest Perl news here.'
46
+
47
+
48
+ # Write some hyperlinks
49
+ worksheet.write('A1', 'http://www.perl.com/', url_format)
50
+ worksheet.write('A3', 'http://www.perl.com/', url_format, str)
51
+ worksheet.write('A5', 'http://www.perl.com/', url_format, str, tip)
52
+ worksheet.write('A7', 'http://www.perl.com/', red_format)
53
+ worksheet.write('A9', 'mailto:jmcnamara@cpan.org', url_format, 'Mail me')
54
+
55
+ # Write a URL that isn't a hyperlink
56
+ worksheet.write_string('A11', 'http://www.perl.com/')
57
+
58
+ workbook.close
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ##############################################################################
5
+ #
6
+ # A simple formatting example using Excel::Writer::XLSX.
7
+ #
8
+ # This program demonstrates the indentation cell format.
9
+ #
10
+ # reverse(c), May 2004, John McNamara, jmcnamara@cpan.org
11
+ # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
12
+ #
13
+
14
+ require 'rubygems'
15
+ require 'write_xlsx'
16
+
17
+ workbook = WriteXLSX.new('indent.xlsx')
18
+
19
+ worksheet = workbook.add_worksheet
20
+ indent1 = workbook.add_format(:indent => 1)
21
+ indent2 = workbook.add_format(:indent => 2)
22
+
23
+ worksheet.set_column('A:A', 40)
24
+
25
+ worksheet.write('A1', "This text is indented 1 level", indent1)
26
+ worksheet.write('A2', "This text is indented 2 levels", indent2)
27
+
28
+ workbook.close
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ###############################################################################
5
+ #
6
+ # Simple example of merging cells using the Excel::Writer::XLSX module.
7
+ #
8
+ # This example merges three cells using the "Centre Across Selection"
9
+ # alignment which was the Excel 5 method of achieving a merge. For a more
10
+ # modern approach use the merge_range() worksheet method instead.
11
+ # See the merge3.pl - merge6.pl programs.
12
+ #
13
+ # reverse(c), August 2002, John McNamara, jmcnamara@cpan.org
14
+ # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
15
+ #
16
+ require 'rubygems'
17
+ require 'write_xlsx'
18
+
19
+ # Create a new workbook and add a worksheet
20
+ workbook = WriteXLSX.new('merge1.xlsx')
21
+ worksheet = workbook.add_worksheet
22
+
23
+
24
+ # Increase the cell size of the merged cells to highlight the formatting.
25
+ worksheet.set_column('B:D', 20)
26
+ worksheet.set_row(2, 30)
27
+
28
+
29
+ # Create a merge format
30
+ format = workbook.add_format(:center_across => 1)
31
+
32
+
33
+ # Only one cell should contain text, the others should be blank.
34
+ worksheet.write(2, 1, "Center across selection", format)
35
+ worksheet.write_blank(2, 2, format)
36
+ worksheet.write_blank(2, 3, format)
37
+
38
+ workbook.close
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: utf-8 -*-
3
+
4
+ ###############################################################################
5
+ #
6
+ # Simple example of merging cells using the Excel::Writer::XLSX module
7
+ #
8
+ # This example merges three cells using the "Centre Across Selection"
9
+ # alignment which was the Excel 5 method of achieving a merge. For a more
10
+ # modern approach use the merge_range() worksheet method instead.
11
+ # See the merge3.pl - merge6.pl programs.
12
+ #
13
+ # reverse(c), August 2002, John McNamara, jmcnamara@cpan.org
14
+ # convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
15
+ #
16
+
17
+ require 'rubygems'
18
+ require 'write_xlsx'
19
+
20
+ # Create a new workbook and add a worksheet
21
+ workbook = WriteXLSX.new('merge2.xlsx')
22
+ worksheet = workbook.add_worksheet
23
+
24
+
25
+ # Increase the cell size of the merged cells to highlight the formatting.
26
+ worksheet.set_column(1, 2, 30)
27
+ worksheet.set_row(2, 40)
28
+
29
+
30
+ # Create a merged format
31
+ format = workbook.add_format(
32
+ :center_across => 1,
33
+ :bold => 1,
34
+ :size => 15,
35
+ :pattern => 1,
36
+ :border => 6,
37
+ :color => 'white',
38
+ :fg_color => 'green',
39
+ :border_color => 'yellow',
40
+ :align => 'vcenter'
41
+ )
42
+
43
+
44
+ # Only one cell should contain text, the others should be blank.
45
+ worksheet.write(2, 1, "Center across selection", format)
46
+ worksheet.write_blank(2, 2, format)
47
+
48
+ workbook.close