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.
- data/.document +5 -0
- data/.gitattributes +1 -0
- data/Gemfile +12 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +82 -0
- data/Rakefile +78 -0
- data/VERSION +1 -0
- data/examples/a_simple.rb +45 -0
- data/examples/array_formula.rb +33 -0
- data/examples/autofilter.rb +235 -0
- data/examples/chart_area.rb +59 -0
- data/examples/chart_bar.rb +59 -0
- data/examples/chart_column.rb +58 -0
- data/examples/chart_line.rb +59 -0
- data/examples/chart_pie.rb +49 -0
- data/examples/chart_scatter.rb +59 -0
- data/examples/chart_stock.rb +65 -0
- data/examples/colors.rb +130 -0
- data/examples/comments1.rb +12 -0
- data/examples/comments2.rb +335 -0
- data/examples/conditional_format.rb +67 -0
- data/examples/data_validate.rb +279 -0
- data/examples/defined_name.rb +28 -0
- data/examples/demo.rb +104 -0
- data/examples/diag_border.rb +26 -0
- data/examples/headers.rb +119 -0
- data/examples/hide_sheet.rb +30 -0
- data/examples/hyperlink1.rb +58 -0
- data/examples/indent.rb +28 -0
- data/examples/merge1.rb +38 -0
- data/examples/merge2.rb +48 -0
- data/examples/merge3.rb +43 -0
- data/examples/merge4.rb +82 -0
- data/examples/merge5.rb +70 -0
- data/examples/merge6.rb +48 -0
- data/examples/outline.rb +252 -0
- data/examples/properties.rb +33 -0
- data/examples/protection.rb +34 -0
- data/examples/rich_strings.rb +42 -0
- data/examples/right_to_left.rb +24 -0
- data/examples/tab_colors.rb +26 -0
- data/lib/write_xlsx.rb +77 -0
- data/lib/write_xlsx/chart.rb +3027 -0
- data/lib/write_xlsx/chart/area.rb +52 -0
- data/lib/write_xlsx/chart/bar.rb +126 -0
- data/lib/write_xlsx/chart/column.rb +132 -0
- data/lib/write_xlsx/chart/line.rb +51 -0
- data/lib/write_xlsx/chart/pie.rb +210 -0
- data/lib/write_xlsx/chart/scatter.rb +252 -0
- data/lib/write_xlsx/chart/stock.rb +134 -0
- data/lib/write_xlsx/chartsheet.rb +173 -0
- data/lib/write_xlsx/colors.rb +65 -0
- data/lib/write_xlsx/compatibility.rb +71 -0
- data/lib/write_xlsx/drawing.rb +547 -0
- data/lib/write_xlsx/format.rb +683 -0
- data/lib/write_xlsx/package/app.rb +218 -0
- data/lib/write_xlsx/package/comments.rb +221 -0
- data/lib/write_xlsx/package/content_types.rb +189 -0
- data/lib/write_xlsx/package/core.rb +196 -0
- data/lib/write_xlsx/package/packager.rb +510 -0
- data/lib/write_xlsx/package/relationships.rb +98 -0
- data/lib/write_xlsx/package/shared_strings.rb +96 -0
- data/lib/write_xlsx/package/styles.rb +705 -0
- data/lib/write_xlsx/package/theme.rb +45 -0
- data/lib/write_xlsx/package/vml.rb +386 -0
- data/lib/write_xlsx/package/xml_writer_simple.rb +90 -0
- data/lib/write_xlsx/utility.rb +113 -0
- data/lib/write_xlsx/workbook.rb +1488 -0
- data/lib/write_xlsx/worksheet.rb +6578 -0
- data/lib/write_xlsx/zip_file_utils.rb +98 -0
- data/test/chart/test_add_series.rb +113 -0
- data/test/chart/test_process_names.rb +27 -0
- data/test/chart/test_write_auto.rb +15 -0
- data/test/chart/test_write_ax_id.rb +15 -0
- data/test/chart/test_write_ax_pos.rb +15 -0
- data/test/chart/test_write_chart_space.rb +15 -0
- data/test/chart/test_write_cross_ax.rb +15 -0
- data/test/chart/test_write_crosses.rb +15 -0
- data/test/chart/test_write_format_code.rb +15 -0
- data/test/chart/test_write_idx.rb +15 -0
- data/test/chart/test_write_label_align.rb +15 -0
- data/test/chart/test_write_label_offset.rb +15 -0
- data/test/chart/test_write_lang.rb +15 -0
- data/test/chart/test_write_layout.rb +15 -0
- data/test/chart/test_write_legend.rb +16 -0
- data/test/chart/test_write_legend_pos.rb +15 -0
- data/test/chart/test_write_major_gridlines.rb +15 -0
- data/test/chart/test_write_marker.rb +17 -0
- data/test/chart/test_write_marker_size.rb +15 -0
- data/test/chart/test_write_marker_value.rb +16 -0
- data/test/chart/test_write_num_cache.rb +16 -0
- data/test/chart/test_write_num_fmt.rb +16 -0
- data/test/chart/test_write_number_format.rb +15 -0
- data/test/chart/test_write_order.rb +15 -0
- data/test/chart/test_write_orientation.rb +15 -0
- data/test/chart/test_write_page_margins.rb +15 -0
- data/test/chart/test_write_page_setup.rb +15 -0
- data/test/chart/test_write_plot_vis_only.rb +15 -0
- data/test/chart/test_write_pt.rb +16 -0
- data/test/chart/test_write_pt_count.rb +16 -0
- data/test/chart/test_write_series_formula.rb +16 -0
- data/test/chart/test_write_style.rb +41 -0
- data/test/chart/test_write_symbol.rb +16 -0
- data/test/chart/test_write_tick_lbl_pos.rb +16 -0
- data/test/chart/test_write_v.rb +16 -0
- data/test/drawing/test_drawing_chart_01.rb +50 -0
- data/test/drawing/test_drawing_image_01.rb +59 -0
- data/test/helper.rb +90 -0
- data/test/package/app/test_app01.rb +44 -0
- data/test/package/app/test_app02.rb +46 -0
- data/test/package/app/test_app03.rb +53 -0
- data/test/package/comments/test_comments01.rb +36 -0
- data/test/package/comments/test_write_text_t.rb +44 -0
- data/test/package/content_types/test_content_types.rb +35 -0
- data/test/package/content_types/test_write_default.rb +13 -0
- data/test/package/content_types/test_write_override.rb +13 -0
- data/test/package/core/test_core01.rb +28 -0
- data/test/package/core/test_core02.rb +42 -0
- data/test/package/relationships/test_relationships.rb +28 -0
- data/test/package/relationships/test_sheet_rels.rb +22 -0
- data/test/package/shared_strings/test_shared_strings01.rb +30 -0
- data/test/package/shared_strings/test_shared_strings02.rb +30 -0
- data/test/package/shared_strings/test_write_si.rb +13 -0
- data/test/package/shared_strings/test_write_sst.rb +15 -0
- data/test/package/styles/test_styles_01.rb +69 -0
- data/test/package/styles/test_styles_02.rb +104 -0
- data/test/package/styles/test_styles_03.rb +90 -0
- data/test/package/styles/test_styles_04.rb +216 -0
- data/test/package/styles/test_styles_05.rb +150 -0
- data/test/package/styles/test_styles_06.rb +104 -0
- data/test/package/styles/test_styles_07.rb +104 -0
- data/test/package/styles/test_styles_08.rb +109 -0
- data/test/package/styles/test_styles_09.rb +95 -0
- data/test/package/vml/test_vml_01.rb +42 -0
- data/test/package/vml/test_write_anchor.rb +14 -0
- data/test/package/vml/test_write_auto_fill.rb +14 -0
- data/test/package/vml/test_write_column.rb +14 -0
- data/test/package/vml/test_write_div.rb +14 -0
- data/test/package/vml/test_write_fill.rb +14 -0
- data/test/package/vml/test_write_idmap.rb +14 -0
- data/test/package/vml/test_write_move_with_cells.rb +14 -0
- data/test/package/vml/test_write_path.rb +22 -0
- data/test/package/vml/test_write_row.rb +14 -0
- data/test/package/vml/test_write_shadow.rb +14 -0
- data/test/package/vml/test_write_shapelayout.rb +14 -0
- data/test/package/vml/test_write_shapetype.rb +14 -0
- data/test/package/vml/test_write_size_with_cells.rb +14 -0
- data/test/package/vml/test_write_stroke.rb +14 -0
- data/test/package/vml/test_write_textbox.rb +14 -0
- data/test/perl_output/a_simple.xlsx +0 -0
- data/test/perl_output/array_formula.xlsx +0 -0
- data/test/perl_output/autofilter.xlsx +0 -0
- data/test/perl_output/chart_area.xlsx +0 -0
- data/test/perl_output/chart_bar.xlsx +0 -0
- data/test/perl_output/chart_column.xlsx +0 -0
- data/test/perl_output/chart_line.xlsx +0 -0
- data/test/perl_output/chart_pie.xlsx +0 -0
- data/test/perl_output/chart_scatter.xlsx +0 -0
- data/test/perl_output/chart_stock.xlsx +0 -0
- data/test/perl_output/comments1.xlsx +0 -0
- data/test/perl_output/comments2.xlsx +0 -0
- data/test/perl_output/conditional_format.xlsx +0 -0
- data/test/perl_output/data_validate.xlsx +0 -0
- data/test/perl_output/defined_name.xlsx +0 -0
- data/test/perl_output/demo.xlsx +0 -0
- data/test/perl_output/diag_border.xlsx +0 -0
- data/test/perl_output/fit_to_pages.xlsx +0 -0
- data/test/perl_output/headers.xlsx +0 -0
- data/test/perl_output/hide_sheet.xlsx +0 -0
- data/test/perl_output/hyperlink.xlsx +0 -0
- data/test/perl_output/indent.xlsx +0 -0
- data/test/perl_output/merge1.xlsx +0 -0
- data/test/perl_output/merge2.xlsx +0 -0
- data/test/perl_output/merge3.xlsx +0 -0
- data/test/perl_output/merge4.xlsx +0 -0
- data/test/perl_output/merge5.xlsx +0 -0
- data/test/perl_output/merge6.xlsx +0 -0
- data/test/perl_output/outline.xlsx +0 -0
- data/test/perl_output/print_scale.xlsx +0 -0
- data/test/perl_output/properties.xlsx +0 -0
- data/test/perl_output/protection.xlsx +0 -0
- data/test/perl_output/rich_strings.xlsx +0 -0
- data/test/perl_output/right_to_left.xlsx +0 -0
- data/test/perl_output/tab_colors.xlsx +0 -0
- data/test/test_delete_files.rb +37 -0
- data/test/test_example_match.rb +2281 -0
- data/test/test_xml_writer_simple.rb +63 -0
- data/test/workbook/test_get_chart_range.rb +59 -0
- data/test/workbook/test_sort_defined_names.rb +77 -0
- data/test/workbook/test_workbook_01.rb +29 -0
- data/test/workbook/test_workbook_02.rb +31 -0
- data/test/workbook/test_workbook_03.rb +31 -0
- data/test/workbook/test_workbook_new.rb +18 -0
- data/test/workbook/test_write_defined_name.rb +17 -0
- data/test/workbook/test_write_defined_names.rb +41 -0
- data/test/worksheet/test_calculate_spans.rb +58 -0
- data/test/worksheet/test_convert_date_time_01.rb +439 -0
- data/test/worksheet/test_convert_date_time_02.rb +478 -0
- data/test/worksheet/test_convert_date_time_03.rb +435 -0
- data/test/worksheet/test_extract_filter_tokens.rb +109 -0
- data/test/worksheet/test_parse_filter_expression.rb +143 -0
- data/test/worksheet/test_position_object.rb +50 -0
- data/test/worksheet/test_repeat_formula.rb +55 -0
- data/test/worksheet/test_worksheet_01.rb +32 -0
- data/test/worksheet/test_worksheet_02.rb +38 -0
- data/test/worksheet/test_worksheet_03.rb +44 -0
- data/test/worksheet/test_worksheet_04.rb +45 -0
- data/test/worksheet/test_write_array_formula_01.rb +99 -0
- data/test/worksheet/test_write_autofilter.rb +260 -0
- data/test/worksheet/test_write_brk.rb +18 -0
- data/test/worksheet/test_write_cell.rb +49 -0
- data/test/worksheet/test_write_cell_value.rb +33 -0
- data/test/worksheet/test_write_col_breaks.rb +27 -0
- data/test/worksheet/test_write_col_info.rb +95 -0
- data/test/worksheet/test_write_conditional_formatting.rb +72 -0
- data/test/worksheet/test_write_custom_filter.rb +18 -0
- data/test/worksheet/test_write_custom_filters.rb +25 -0
- data/test/worksheet/test_write_data_validation_01.rb +113 -0
- data/test/worksheet/test_write_data_validation_02.rb +528 -0
- data/test/worksheet/test_write_dimension.rb +94 -0
- data/test/worksheet/test_write_ext.rb +18 -0
- data/test/worksheet/test_write_ext_lst.rb +18 -0
- data/test/worksheet/test_write_filter.rb +18 -0
- data/test/worksheet/test_write_filter_column.rb +18 -0
- data/test/worksheet/test_write_filters.rb +32 -0
- data/test/worksheet/test_write_header_footer.rb +53 -0
- data/test/worksheet/test_write_hyperlink.rb +39 -0
- data/test/worksheet/test_write_hyperlinks.rb +27 -0
- data/test/worksheet/test_write_legacy_drawing.rb +19 -0
- data/test/worksheet/test_write_merge_cell.rb +18 -0
- data/test/worksheet/test_write_merge_cells.rb +192 -0
- data/test/worksheet/test_write_methods.rb +353 -0
- data/test/worksheet/test_write_mx_plv.rb +19 -0
- data/test/worksheet/test_write_page_margins.rb +98 -0
- data/test/worksheet/test_write_page_set_up_pr.rb +19 -0
- data/test/worksheet/test_write_page_setup.rb +54 -0
- data/test/worksheet/test_write_pane.rb +123 -0
- data/test/worksheet/test_write_phonetic_pr.rb +19 -0
- data/test/worksheet/test_write_print_options.rb +77 -0
- data/test/worksheet/test_write_row_breaks.rb +27 -0
- data/test/worksheet/test_write_row_element.rb +69 -0
- data/test/worksheet/test_write_selection.rb +18 -0
- data/test/worksheet/test_write_sheet_calc_pr.rb +18 -0
- data/test/worksheet/test_write_sheet_data.rb +18 -0
- data/test/worksheet/test_write_sheet_format_pr.rb +18 -0
- data/test/worksheet/test_write_sheet_pr.rb +36 -0
- data/test/worksheet/test_write_sheet_protection.rb +174 -0
- data/test/worksheet/test_write_sheet_view.rb +62 -0
- data/test/worksheet/test_write_sheet_view1.rb +64 -0
- data/test/worksheet/test_write_sheet_view2.rb +56 -0
- data/test/worksheet/test_write_sheet_view3.rb +83 -0
- data/test/worksheet/test_write_sheet_view4.rb +83 -0
- data/test/worksheet/test_write_sheet_view5.rb +74 -0
- data/test/worksheet/test_write_sheet_view6.rb +51 -0
- data/test/worksheet/test_write_sheet_view7.rb +71 -0
- data/test/worksheet/test_write_sheet_view8.rb +51 -0
- data/test/worksheet/test_write_sheet_view9.rb +51 -0
- data/test/worksheet/test_write_tab_color.rb +23 -0
- data/test/worksheet/test_write_worksheet.rb +19 -0
- data/write_xlsx.gemspec +308 -0
- 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
|
data/examples/headers.rb
ADDED
|
@@ -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
|
data/examples/indent.rb
ADDED
|
@@ -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
|
data/examples/merge1.rb
ADDED
|
@@ -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
|
data/examples/merge2.rb
ADDED
|
@@ -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
|