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,59 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# A demo of an Area chart in Excel::Writer::XLSX.
|
|
7
|
+
#
|
|
8
|
+
# reverse('ゥ'), March 2011, John McNamara, jmcnamara@cpan.org
|
|
9
|
+
# convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'write_xlsx'
|
|
14
|
+
|
|
15
|
+
workbook = WriteXLSX.new('chart_area.xlsx')
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
bold = workbook.add_format(:bold => 1)
|
|
18
|
+
|
|
19
|
+
# Add the worksheet data that the charts will refer to.
|
|
20
|
+
headings = [ 'Number', 'Batch 1', 'Batch 2' ]
|
|
21
|
+
data = [
|
|
22
|
+
[ 2, 3, 4, 5, 6, 7 ],
|
|
23
|
+
[ 40, 40, 50, 30, 25, 50 ],
|
|
24
|
+
[ 30, 25, 30, 10, 5, 10 ]
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
worksheet.write('A1', headings, bold)
|
|
28
|
+
worksheet.write('A2', data)
|
|
29
|
+
|
|
30
|
+
# Create a new chart object. In this case an embedded chart.
|
|
31
|
+
chart = workbook.add_chart(:type => 'area', :embedded => 1)
|
|
32
|
+
|
|
33
|
+
# Configure the first series.
|
|
34
|
+
chart.add_series(
|
|
35
|
+
:name => '=Sheet1!$B$1',
|
|
36
|
+
:categories => '=Sheet1!$A$2:$A$7',
|
|
37
|
+
:values => '=Sheet1!$B$2:$B$7'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Configure second series. Note alternative use of array ref to define
|
|
41
|
+
# ranges: [ sheetname, row_start, row_end, col_start, col_end ].
|
|
42
|
+
chart.add_series(
|
|
43
|
+
:name => '=Sheet1!$C$1',
|
|
44
|
+
:categories => [ 'Sheet1', 1, 6, 0, 0 ],
|
|
45
|
+
:values => [ 'Sheet1', 1, 6, 2, 2 ]
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
# Add a chart title and some axis labels.
|
|
49
|
+
chart.set_title(:name => 'Results of sample analysis')
|
|
50
|
+
chart.set_x_axis(:name => 'Test number')
|
|
51
|
+
chart.set_y_axis(:name => 'Sample length (mm)')
|
|
52
|
+
|
|
53
|
+
# Set an Excel chart style. Blue colors with white outline and shadow.
|
|
54
|
+
chart.set_style(11)
|
|
55
|
+
|
|
56
|
+
# Insert the chart into the worksheet (with an offset).
|
|
57
|
+
worksheet.insert_chart('D2', chart, 25, 10)
|
|
58
|
+
|
|
59
|
+
workbook.close
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# A demo of an Bar chart in Excel::Writer::XLSX.
|
|
7
|
+
#
|
|
8
|
+
# reverse('c'), March 2011, John McNamara, jmcnamara@cpan.org
|
|
9
|
+
# convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'write_xlsx'
|
|
14
|
+
|
|
15
|
+
workbook = WriteXLSX.new('chart_bar.xlsx')
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
bold = workbook.add_format(:bold => 1)
|
|
18
|
+
|
|
19
|
+
# Add the worksheet data that the charts will refer to.
|
|
20
|
+
headings = [ 'Number', 'Batch 1', 'Batch 2' ]
|
|
21
|
+
data = [
|
|
22
|
+
[ 2, 3, 4, 5, 6, 7 ],
|
|
23
|
+
[ 10, 40, 50, 20, 10, 50 ],
|
|
24
|
+
[ 30, 60, 70, 50, 40, 30 ]
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
worksheet.write('A1', headings, bold)
|
|
28
|
+
worksheet.write('A2', data)
|
|
29
|
+
|
|
30
|
+
# Create a new chart object. In this case an embedded chart.
|
|
31
|
+
chart = workbook.add_chart(:type => 'bar', :embedded => 1)
|
|
32
|
+
|
|
33
|
+
# Configure the first series.
|
|
34
|
+
chart.add_series(
|
|
35
|
+
:name => '=Sheet1!$B$1',
|
|
36
|
+
:categories => '=Sheet1!$A$2:$A$7',
|
|
37
|
+
:values => '=Sheet1!$B$2:$B$7'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Configure second series. Note alternative use of array ref to define
|
|
41
|
+
# ranges: [ sheetname, row_start, row_end, col_start, col_end ].
|
|
42
|
+
chart.add_series(
|
|
43
|
+
:name => '=Sheet1!$C$1',
|
|
44
|
+
:categories => [ 'Sheet1', 1, 6, 0, 0 ],
|
|
45
|
+
:values => [ 'Sheet1', 1, 6, 2, 2 ]
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
# Add a chart title and some axis labels.
|
|
49
|
+
chart.set_title(:name => 'Results of sample analysis')
|
|
50
|
+
chart.set_x_axis(:name => 'Test number')
|
|
51
|
+
chart.set_y_axis(:name => 'Sample length (mm)')
|
|
52
|
+
|
|
53
|
+
# Set an Excel chart style. Blue colors with white outline and shadow.
|
|
54
|
+
chart.set_style(11)
|
|
55
|
+
|
|
56
|
+
# Insert the chart into the worksheet (with an offset).
|
|
57
|
+
worksheet.insert_chart('D2', chart, 25, 10)
|
|
58
|
+
|
|
59
|
+
workbook.close
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# A demo of an Area chart in Excel::Writer::XLSX.
|
|
7
|
+
#
|
|
8
|
+
# reverse('ゥ'), March 2011, John McNamara, jmcnamara@cpan.org
|
|
9
|
+
# convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
require 'write_xlsx'
|
|
13
|
+
|
|
14
|
+
workbook = WriteXLSX.new('chart_column.xlsx')
|
|
15
|
+
worksheet = workbook.add_worksheet
|
|
16
|
+
bold = workbook.add_format(:bold => 1)
|
|
17
|
+
|
|
18
|
+
# Add the worksheet data that the charts will refer to.
|
|
19
|
+
headings = [ 'Number', 'Batch 1', 'Batch 2' ]
|
|
20
|
+
data = [
|
|
21
|
+
[ 2, 3, 4, 5, 6, 7 ],
|
|
22
|
+
[ 10, 40, 50, 20, 10, 50 ],
|
|
23
|
+
[ 30, 60, 70, 50, 40, 30 ]
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
worksheet.write('A1', headings, bold)
|
|
27
|
+
worksheet.write('A2', data)
|
|
28
|
+
|
|
29
|
+
# Create a new chart object. In this case an embedded chart.
|
|
30
|
+
chart = workbook.add_chart(:type => 'column', :embedded => 1)
|
|
31
|
+
|
|
32
|
+
# Configure the first series.
|
|
33
|
+
chart.add_series(
|
|
34
|
+
:name => '=Sheet1!$B$1',
|
|
35
|
+
:categories => '=Sheet1!$A$2:$A$7',
|
|
36
|
+
:values => '=Sheet1!$B$2:$B$7'
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
# Configure second series. Note alternative use of array ref to define
|
|
40
|
+
# ranges: [ sheetname, row_start, row_end, col_start, col_end ].
|
|
41
|
+
chart.add_series(
|
|
42
|
+
:name => '=Sheet1!$C$1',
|
|
43
|
+
:categories => [ 'Sheet1', 1, 6, 0, 0 ],
|
|
44
|
+
:values => [ 'Sheet1', 1, 6, 2, 2 ]
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
# Add a chart title and some axis labels.
|
|
48
|
+
chart.set_title(:name => 'Results of sample analysis')
|
|
49
|
+
chart.set_x_axis(:name => 'Test number')
|
|
50
|
+
chart.set_y_axis(:name => 'Sample length (mm)')
|
|
51
|
+
|
|
52
|
+
# Set an Excel chart style. Blue colors with white outline and shadow.
|
|
53
|
+
chart.set_style(11)
|
|
54
|
+
|
|
55
|
+
# Insert the chart into the worksheet (with an offset).
|
|
56
|
+
worksheet.insert_chart('D2', chart, 25, 10)
|
|
57
|
+
|
|
58
|
+
workbook.close
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# A demo of a Line chart in Excel::Writer::XLSX.
|
|
7
|
+
#
|
|
8
|
+
# reverse('ゥ'), March 2011, John McNamara, jmcnamara@cpan.org
|
|
9
|
+
# convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'write_xlsx'
|
|
14
|
+
|
|
15
|
+
workbook = WriteXLSX.new('chart_line.xlsx')
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
bold = workbook.add_format(:bold => 1)
|
|
18
|
+
|
|
19
|
+
# Add the worksheet data that the charts will refer to.
|
|
20
|
+
headings = [ 'Number', 'Batch 1', 'Batch 2' ]
|
|
21
|
+
data = [
|
|
22
|
+
[ 2, 3, 4, 5, 6, 7 ],
|
|
23
|
+
[ 10, 40, 50, 20, 10, 50 ],
|
|
24
|
+
[ 30, 60, 70, 50, 40, 30 ]
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
worksheet.write('A1', headings, bold)
|
|
28
|
+
worksheet.write('A2', data)
|
|
29
|
+
|
|
30
|
+
# Create a new chart object. In this case an embedded chart.
|
|
31
|
+
chart = workbook.add_chart(:type => 'line', :embedded => 1)
|
|
32
|
+
|
|
33
|
+
# Configure the first series.
|
|
34
|
+
chart.add_series(
|
|
35
|
+
:name => '=Sheet1!$B$1',
|
|
36
|
+
:categories => '=Sheet1!$A$2:$A$7',
|
|
37
|
+
:values => '=Sheet1!$B$2:$B$7'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Configure second series. Note alternative use of array ref to define
|
|
41
|
+
# ranges: [ sheetname, row_start, row_end, col_start, col_end ].
|
|
42
|
+
chart.add_series(
|
|
43
|
+
:name => '=Sheet1!$C$1',
|
|
44
|
+
:categories => [ 'Sheet1', 1, 6, 0, 0 ],
|
|
45
|
+
:values => [ 'Sheet1', 1, 6, 2, 2 ]
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
# Add a chart title and some axis labels.
|
|
49
|
+
chart.set_title(:name => 'Results of sample analysis')
|
|
50
|
+
chart.set_x_axis(:name => 'Test number')
|
|
51
|
+
chart.set_y_axis(:name => 'Sample length (mm)')
|
|
52
|
+
|
|
53
|
+
# Set an Excel chart style. Blue colors with white outline and shadow.
|
|
54
|
+
chart.set_style(10)
|
|
55
|
+
|
|
56
|
+
# Insert the chart into the worksheet (with an offset).
|
|
57
|
+
worksheet.insert_chart('D2', chart, 25, 10)
|
|
58
|
+
|
|
59
|
+
workbook.close
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# A demo of a Pie chart in Excel::Writer::XLSX.
|
|
7
|
+
#
|
|
8
|
+
# reverse(c), March 2011, John McNamara, jmcnamara@cpan.org
|
|
9
|
+
# convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'write_xlsx'
|
|
14
|
+
|
|
15
|
+
workbook = WriteXLSX.new('chart_pie.xlsx')
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
bold = workbook.add_format(:bold => 1)
|
|
18
|
+
|
|
19
|
+
# Add the worksheet data that the charts will refer to.
|
|
20
|
+
headings = [ 'Category', 'Values' ]
|
|
21
|
+
data = [
|
|
22
|
+
[ 'Apple', 'Cherry', 'Pecan' ],
|
|
23
|
+
[ 60, 30, 10 ]
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
worksheet.write('A1', headings, bold)
|
|
27
|
+
worksheet.write('A2', data)
|
|
28
|
+
|
|
29
|
+
# Create a new chart object. In this case an embedded chart.
|
|
30
|
+
chart = workbook.add_chart(:type => 'pie', :embedded => 1)
|
|
31
|
+
|
|
32
|
+
# Configure the series. Note the use of the array ref to define ranges:
|
|
33
|
+
# [ $sheetname, $row_start, $row_end, $col_start, $col_end ].
|
|
34
|
+
chart.add_series(
|
|
35
|
+
:name => 'Pie sales data',
|
|
36
|
+
:categories => [ 'Sheet1', 1, 3, 0, 0 ],
|
|
37
|
+
:values => [ 'Sheet1', 1, 3, 1, 1 ]
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Add a title.
|
|
41
|
+
chart.set_title(:name => 'Popular Pie Types')
|
|
42
|
+
|
|
43
|
+
# Set an Excel chart style. Blue colors with white outline and shadow.
|
|
44
|
+
chart.set_style(10)
|
|
45
|
+
|
|
46
|
+
# Insert the chart into the worksheet (with an offset).
|
|
47
|
+
worksheet.insert_chart('C2', chart, 25, 10)
|
|
48
|
+
|
|
49
|
+
workbook.close
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# A demo of a Scatter chart in Excel::Writer::XLSX.
|
|
7
|
+
#
|
|
8
|
+
# reverse(c), March 2011, John McNamara, jmcnamara@cpan.org
|
|
9
|
+
# convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'write_xlsx'
|
|
14
|
+
|
|
15
|
+
workbook = WriteXLSX.new('chart_scatter.xlsx')
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
bold = workbook.add_format(:bold => 1)
|
|
18
|
+
|
|
19
|
+
# Add the worksheet data that the charts will refer to.
|
|
20
|
+
headings = [ 'Number', 'Batch 1', 'Batch 2' ]
|
|
21
|
+
data = [
|
|
22
|
+
[ 2, 3, 4, 5, 6, 7 ],
|
|
23
|
+
[ 10, 40, 50, 20, 10, 50 ],
|
|
24
|
+
[ 30, 60, 70, 50, 40, 30 ]
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
worksheet.write('A1', headings, bold)
|
|
28
|
+
worksheet.write('A2', data)
|
|
29
|
+
|
|
30
|
+
# Create a new chart object. In this case an embedded chart.
|
|
31
|
+
chart = workbook.add_chart(:type => 'scatter', :embedded => 1)
|
|
32
|
+
|
|
33
|
+
# Configure the first series.
|
|
34
|
+
chart.add_series(
|
|
35
|
+
:name => '=Sheet1!$B$1',
|
|
36
|
+
:categories => '=Sheet1!$A$2:$A$7',
|
|
37
|
+
:values => '=Sheet1!$B$2:$B$7'
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Configure second series. Note alternative use of array ref to define
|
|
41
|
+
# ranges: [ $sheetname, $row_start, $row_end, $col_start, $col_end ].
|
|
42
|
+
chart.add_series(
|
|
43
|
+
:name => '=Sheet1!$C$1',
|
|
44
|
+
:categories => [ 'Sheet1', 1, 6, 0, 0 ],
|
|
45
|
+
:values => [ 'Sheet1', 1, 6, 2, 2 ]
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
# Add a chart title and some axis labels.
|
|
49
|
+
chart.set_title(:name => 'Results of sample analysis')
|
|
50
|
+
chart.set_x_axis(:name => 'Test number')
|
|
51
|
+
chart.set_y_axis(:name => 'Sample length (mm)')
|
|
52
|
+
|
|
53
|
+
# Set an Excel chart style. Blue colors with white outline and shadow.
|
|
54
|
+
chart.set_style(10)
|
|
55
|
+
|
|
56
|
+
# Insert the chart into the worksheet (with an offset).
|
|
57
|
+
worksheet.insert_chart('D2', chart, 25, 10)
|
|
58
|
+
|
|
59
|
+
workbook.close
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
#######################################################################
|
|
5
|
+
#
|
|
6
|
+
# A demo of a Stock chart in Excel::Writer::XLSX.
|
|
7
|
+
#
|
|
8
|
+
# reverse(c), March 2011, John McNamara, jmcnamara@cpan.org
|
|
9
|
+
# convert to ruby by Hideo NAKAMURA, cxn03651@msj.biglobe.ne.jp
|
|
10
|
+
#
|
|
11
|
+
|
|
12
|
+
require 'rubygems'
|
|
13
|
+
require 'write_xlsx'
|
|
14
|
+
|
|
15
|
+
workbook = WriteXLSX.new('chart_stock.xlsx')
|
|
16
|
+
worksheet = workbook.add_worksheet
|
|
17
|
+
bold = workbook.add_format(:bold => 1)
|
|
18
|
+
date_format = workbook.add_format(:num_format => 'dd/mm/yyyy')
|
|
19
|
+
chart = workbook.add_chart(:type => 'stock', :embedded => 1)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# Add the worksheet data that the charts will refer to.
|
|
23
|
+
headings = [ 'Date', 'High', 'Low', 'Close' ]
|
|
24
|
+
data = [
|
|
25
|
+
[ '2007-01-01T', '2007-01-02T', '2007-01-03T', '2007-01-04T', '2007-01-05T' ],
|
|
26
|
+
[ 27.2, 25.03, 19.05, 20.34, 18.5 ],
|
|
27
|
+
[ 23.49, 19.55, 15.12, 17.84, 16.34 ],
|
|
28
|
+
[ 25.45, 23.05, 17.32, 20.45, 17.34 ]
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
worksheet.write('A1', headings, bold)
|
|
32
|
+
|
|
33
|
+
(0 .. 4).each do |row|
|
|
34
|
+
worksheet.write_date_time(row + 1, 0, data[0][row], date_format)
|
|
35
|
+
worksheet.write(row + 1, 1, data[1][row])
|
|
36
|
+
worksheet.write(row + 1, 2, data[2][row])
|
|
37
|
+
worksheet.write(row + 1, 3, data[3][row])
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
worksheet.set_column('A:D', 11)
|
|
41
|
+
|
|
42
|
+
# Add a series for each of the High-Low-Close columns.
|
|
43
|
+
chart.add_series(
|
|
44
|
+
:categories => '=Sheet1!$A$2:$A$6',
|
|
45
|
+
:values => '=Sheet1!$B$2:$B$6'
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
chart.add_series(
|
|
49
|
+
:categories => '=Sheet1!$A$2:$A$6',
|
|
50
|
+
:values => '=Sheet1!$C$2:$C$6'
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
chart.add_series(
|
|
54
|
+
:categories => '=Sheet1!$A$2:$A$6',
|
|
55
|
+
:values => '=Sheet1!$D$2:$D$6'
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# Add a chart title and some axis labels.
|
|
59
|
+
chart.set_title(:name => 'High-Low-Close')
|
|
60
|
+
chart.set_x_axis(:name => 'Date')
|
|
61
|
+
chart.set_y_axis(:name => 'Share price')
|
|
62
|
+
|
|
63
|
+
worksheet.insert_chart('E9', chart)
|
|
64
|
+
|
|
65
|
+
workbook.close
|
data/examples/colors.rb
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
################################################################################
|
|
5
|
+
#
|
|
6
|
+
# Demonstrates Excel::Writer::XLSX's named colors and the Excel color
|
|
7
|
+
# palette.
|
|
8
|
+
#
|
|
9
|
+
# The set_custom_color() Worksheet method can be used to override one of the
|
|
10
|
+
# built-in palette values with a more suitable colour. See the main docs.
|
|
11
|
+
#
|
|
12
|
+
# reverse('©'), March 2002, 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 'rubygems'
|
|
19
|
+
require 'write_xlsx'
|
|
20
|
+
|
|
21
|
+
workbook = WriteXLSX.new("colors.xlsx")
|
|
22
|
+
|
|
23
|
+
# Some common formats
|
|
24
|
+
center = workbook.add_format(:align => 'center')
|
|
25
|
+
heading = workbook.add_format(:align => 'center', :bold => 1)
|
|
26
|
+
|
|
27
|
+
######################################################################
|
|
28
|
+
#
|
|
29
|
+
# Demonstrate the named colors.
|
|
30
|
+
#
|
|
31
|
+
|
|
32
|
+
order = [
|
|
33
|
+
0x21,
|
|
34
|
+
0x0B,
|
|
35
|
+
0x35,
|
|
36
|
+
0x11,
|
|
37
|
+
0x16,
|
|
38
|
+
0x12,
|
|
39
|
+
0x0D,
|
|
40
|
+
0x10,
|
|
41
|
+
0x17,
|
|
42
|
+
0x09,
|
|
43
|
+
0x0C,
|
|
44
|
+
0x0F,
|
|
45
|
+
0x0E,
|
|
46
|
+
0x14,
|
|
47
|
+
0x08,
|
|
48
|
+
0x0A
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
colors = {
|
|
52
|
+
0x08 => 'black',
|
|
53
|
+
0x0C => 'blue',
|
|
54
|
+
0x10 => 'brown',
|
|
55
|
+
0x0F => 'cyan',
|
|
56
|
+
0x17 => 'gray',
|
|
57
|
+
0x11 => 'green',
|
|
58
|
+
0x0B => 'lime',
|
|
59
|
+
0x0E => 'magenta',
|
|
60
|
+
0x12 => 'navy',
|
|
61
|
+
0x35 => 'orange',
|
|
62
|
+
0x21 => 'pink',
|
|
63
|
+
0x14 => 'purple',
|
|
64
|
+
0x0A => 'red',
|
|
65
|
+
0x16 => 'silver',
|
|
66
|
+
0x09 => 'white',
|
|
67
|
+
0x0D => 'yellow',
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
worksheet1 = workbook.add_worksheet('Named colors')
|
|
71
|
+
|
|
72
|
+
worksheet1.set_column(0, 3, 15)
|
|
73
|
+
|
|
74
|
+
worksheet1.write(0, 0, "Index", heading)
|
|
75
|
+
worksheet1.write(0, 1, "Index", heading)
|
|
76
|
+
worksheet1.write(0, 2, "Name", heading)
|
|
77
|
+
worksheet1.write(0, 3, "Color", heading)
|
|
78
|
+
|
|
79
|
+
i = 1
|
|
80
|
+
|
|
81
|
+
# original was colors.each....
|
|
82
|
+
# order unmatch between perl and ruby (of cource, it's hash!)
|
|
83
|
+
# so i use order array to match perl's xls order.
|
|
84
|
+
#
|
|
85
|
+
order.each do |index|
|
|
86
|
+
format = workbook.add_format(
|
|
87
|
+
:fg_color => colors[index],
|
|
88
|
+
:pattern => 1,
|
|
89
|
+
:border => 1
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
worksheet1.write(i + 1, 0, index, center)
|
|
93
|
+
worksheet1.write(i + 1, 1, sprintf("0x%02X", index), center)
|
|
94
|
+
worksheet1.write(i + 1, 2, colors[index], center)
|
|
95
|
+
worksheet1.write(i + 1, 3, '', format)
|
|
96
|
+
i += 1
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
######################################################################
|
|
100
|
+
#
|
|
101
|
+
# Demonstrate the standard Excel colors in the range 8..63.
|
|
102
|
+
#
|
|
103
|
+
|
|
104
|
+
worksheet2 = workbook.add_worksheet('Standard colors')
|
|
105
|
+
|
|
106
|
+
worksheet2.set_column(0, 3, 15)
|
|
107
|
+
|
|
108
|
+
worksheet2.write(0, 0, "Index", heading)
|
|
109
|
+
worksheet2.write(0, 1, "Index", heading)
|
|
110
|
+
worksheet2.write(0, 2, "Color", heading)
|
|
111
|
+
worksheet2.write(0, 3, "Name", heading)
|
|
112
|
+
|
|
113
|
+
(8..63).each do |i|
|
|
114
|
+
format = workbook.add_format(
|
|
115
|
+
:fg_color => i,
|
|
116
|
+
:pattern => 1,
|
|
117
|
+
:border => 1
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
worksheet2.write((i - 7), 0, i, center)
|
|
121
|
+
worksheet2.write((i - 7), 1, sprintf("0x%02X", i), center)
|
|
122
|
+
worksheet2.write((i - 7), 2, '', format)
|
|
123
|
+
|
|
124
|
+
# Add the color names
|
|
125
|
+
if colors.has_key?(i)
|
|
126
|
+
worksheet2.write((i - 7), 3, colors[i], center)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
workbook.close
|