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,260 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/workbook'
|
|
4
|
+
require 'write_xlsx/worksheet'
|
|
5
|
+
require 'stringio'
|
|
6
|
+
|
|
7
|
+
class TestWriteAutofilter < Test::Unit::TestCase
|
|
8
|
+
def setup
|
|
9
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_write_auto_filter_with_no_filter
|
|
13
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
14
|
+
worksheet.autofilter('A1:D51')
|
|
15
|
+
worksheet.__send__('write_auto_filter')
|
|
16
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
17
|
+
expected = '<autoFilter ref="A1:D51" />'
|
|
18
|
+
assert_equal(expected, result)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_write_auto_filter_with_filter_x_East
|
|
22
|
+
filter = 'x == East'
|
|
23
|
+
|
|
24
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
25
|
+
worksheet.autofilter('A1:D51')
|
|
26
|
+
worksheet.filter_column('A', filter)
|
|
27
|
+
worksheet.__send__('write_auto_filter')
|
|
28
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
29
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><filters><filter val="East" /></filters></filterColumn></autoFilter>'
|
|
30
|
+
assert_equal(expected, result)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_write_auto_filter_with_filter_x_East_or_x_North
|
|
34
|
+
filter = 'x == East or x == North'
|
|
35
|
+
|
|
36
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
37
|
+
worksheet.autofilter('A1:D51')
|
|
38
|
+
worksheet.filter_column('A', filter)
|
|
39
|
+
worksheet.__send__('write_auto_filter')
|
|
40
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
41
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><filters><filter val="East" /><filter val="North" /></filters></filterColumn></autoFilter>'
|
|
42
|
+
assert_equal(expected, result)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_write_auto_filter_with_filter_x_East_and_x_North
|
|
46
|
+
filter = 'x == East and x == North'
|
|
47
|
+
|
|
48
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
49
|
+
worksheet.autofilter('A1:D51')
|
|
50
|
+
worksheet.filter_column('A', filter)
|
|
51
|
+
worksheet.__send__('write_auto_filter')
|
|
52
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
53
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters and="1"><customFilter val="East" /><customFilter val="North" /></customFilters></filterColumn></autoFilter>'
|
|
54
|
+
assert_equal(expected, result)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_write_auto_filter_with_filter_x_ne_East
|
|
58
|
+
filter = 'x != East'
|
|
59
|
+
|
|
60
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
61
|
+
worksheet.autofilter('A1:D51')
|
|
62
|
+
worksheet.filter_column('A', filter)
|
|
63
|
+
worksheet.__send__('write_auto_filter')
|
|
64
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
65
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters><customFilter operator="notEqual" val="East" /></customFilters></filterColumn></autoFilter>'
|
|
66
|
+
assert_equal(expected, result)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_write_auto_filter_with_filter_start_with_S
|
|
70
|
+
filter = 'x == S*'
|
|
71
|
+
|
|
72
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
73
|
+
worksheet.autofilter('A1:D51')
|
|
74
|
+
worksheet.filter_column('A', filter)
|
|
75
|
+
worksheet.__send__('write_auto_filter')
|
|
76
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
77
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters><customFilter val="S*" /></customFilters></filterColumn></autoFilter>'
|
|
78
|
+
assert_equal(expected, result)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def test_write_auto_filter_with_filter_not_start_with_S
|
|
82
|
+
filter = 'x != S*'
|
|
83
|
+
|
|
84
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
85
|
+
worksheet.autofilter('A1:D51')
|
|
86
|
+
worksheet.filter_column('A', filter)
|
|
87
|
+
worksheet.__send__('write_auto_filter')
|
|
88
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
89
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters><customFilter operator="notEqual" val="S*" /></customFilters></filterColumn></autoFilter>'
|
|
90
|
+
assert_equal(expected, result)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def test_write_auto_filter_with_filter_end_with_h
|
|
94
|
+
filter = 'x == *h'
|
|
95
|
+
|
|
96
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
97
|
+
worksheet.autofilter('A1:D51')
|
|
98
|
+
worksheet.filter_column('A', filter)
|
|
99
|
+
worksheet.__send__('write_auto_filter')
|
|
100
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
101
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters><customFilter val="*h" /></customFilters></filterColumn></autoFilter>'
|
|
102
|
+
assert_equal(expected, result)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def test_write_auto_filter_with_filter_not_end_with_h
|
|
106
|
+
filter = 'x != *h'
|
|
107
|
+
|
|
108
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
109
|
+
worksheet.autofilter('A1:D51')
|
|
110
|
+
worksheet.filter_column('A', filter)
|
|
111
|
+
worksheet.__send__('write_auto_filter')
|
|
112
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
113
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters><customFilter operator="notEqual" val="*h" /></customFilters></filterColumn></autoFilter>'
|
|
114
|
+
assert_equal(expected, result)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def test_write_auto_filter_with_filter_contains_o
|
|
118
|
+
filter = 'x =~ *o*'
|
|
119
|
+
|
|
120
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
121
|
+
worksheet.autofilter('A1:D51')
|
|
122
|
+
worksheet.filter_column('A', filter)
|
|
123
|
+
worksheet.__send__('write_auto_filter')
|
|
124
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
125
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters><customFilter val="*o*" /></customFilters></filterColumn></autoFilter>'
|
|
126
|
+
assert_equal(expected, result)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def test_write_auto_filter_with_filter_not_contains_r
|
|
130
|
+
filter = 'x !~ *r*'
|
|
131
|
+
|
|
132
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
133
|
+
worksheet.autofilter('A1:D51')
|
|
134
|
+
worksheet.filter_column('A', filter)
|
|
135
|
+
worksheet.__send__('write_auto_filter')
|
|
136
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
137
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><customFilters><customFilter operator="notEqual" val="*r*" /></customFilters></filterColumn></autoFilter>'
|
|
138
|
+
assert_equal(expected, result)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def test_write_auto_filter_with_filter_x_1000
|
|
142
|
+
filter = 'x == 1000'
|
|
143
|
+
|
|
144
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
145
|
+
worksheet.autofilter('A1:D51')
|
|
146
|
+
worksheet.filter_column('C', filter)
|
|
147
|
+
worksheet.__send__('write_auto_filter')
|
|
148
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
149
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="2"><filters><filter val="1000" /></filters></filterColumn></autoFilter>'
|
|
150
|
+
assert_equal(expected, result)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def test_write_auto_filter_with_filter_x_ne_2000
|
|
154
|
+
filter = 'x != 2000'
|
|
155
|
+
|
|
156
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
157
|
+
worksheet.autofilter('A1:D51')
|
|
158
|
+
worksheet.filter_column('C', filter)
|
|
159
|
+
worksheet.__send__('write_auto_filter')
|
|
160
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
161
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="2"><customFilters><customFilter operator="notEqual" val="2000" /></customFilters></filterColumn></autoFilter>'
|
|
162
|
+
assert_equal(expected, result)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def test_write_auto_filter_with_filter_x_gt_3000
|
|
166
|
+
filter = 'x > 3000'
|
|
167
|
+
|
|
168
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
169
|
+
worksheet.autofilter('A1:D51')
|
|
170
|
+
worksheet.filter_column('C', filter)
|
|
171
|
+
worksheet.__send__('write_auto_filter')
|
|
172
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
173
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="2"><customFilters><customFilter operator="greaterThan" val="3000" /></customFilters></filterColumn></autoFilter>'
|
|
174
|
+
assert_equal(expected, result)
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
def test_write_auto_filter_with_filter_x_ge_4000
|
|
178
|
+
filter = 'x >= 4000'
|
|
179
|
+
|
|
180
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
181
|
+
worksheet.autofilter('A1:D51')
|
|
182
|
+
worksheet.filter_column('C', filter)
|
|
183
|
+
worksheet.__send__('write_auto_filter')
|
|
184
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
185
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="2"><customFilters><customFilter operator="greaterThanOrEqual" val="4000" /></customFilters></filterColumn></autoFilter>'
|
|
186
|
+
assert_equal(expected, result)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
def test_write_auto_filter_with_filter_x_lt_5000
|
|
190
|
+
filter = 'x < 5000'
|
|
191
|
+
|
|
192
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
193
|
+
worksheet.autofilter('A1:D51')
|
|
194
|
+
worksheet.filter_column('C', filter)
|
|
195
|
+
worksheet.__send__('write_auto_filter')
|
|
196
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
197
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="2"><customFilters><customFilter operator="lessThan" val="5000" /></customFilters></filterColumn></autoFilter>'
|
|
198
|
+
assert_equal(expected, result)
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
def test_write_auto_filter_with_filter_x_le_6000
|
|
202
|
+
filter = 'x <= 6000'
|
|
203
|
+
|
|
204
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
205
|
+
worksheet.autofilter('A1:D51')
|
|
206
|
+
worksheet.filter_column('C', filter)
|
|
207
|
+
worksheet.__send__('write_auto_filter')
|
|
208
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
209
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="2"><customFilters><customFilter operator="lessThanOrEqual" val="6000" /></customFilters></filterColumn></autoFilter>'
|
|
210
|
+
assert_equal(expected, result)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def test_write_auto_filter_with_filter_1000_le_x_and_x_le_2000
|
|
214
|
+
filter = 'x >= 1000 and x <= 2000'
|
|
215
|
+
|
|
216
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
217
|
+
worksheet.autofilter('A1:D51')
|
|
218
|
+
worksheet.filter_column('C', filter)
|
|
219
|
+
worksheet.__send__('write_auto_filter')
|
|
220
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
221
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="2"><customFilters and="1"><customFilter operator="greaterThanOrEqual" val="1000" /><customFilter operator="lessThanOrEqual" val="2000" /></customFilters></filterColumn></autoFilter>'
|
|
222
|
+
assert_equal(expected, result)
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
def test_write_auto_filter_with_filter_matches_East
|
|
226
|
+
matches = ['East']
|
|
227
|
+
|
|
228
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
229
|
+
worksheet.autofilter('A1:D51')
|
|
230
|
+
worksheet.filter_column_list('A', matches)
|
|
231
|
+
worksheet.__send__('write_auto_filter')
|
|
232
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
233
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><filters><filter val="East" /></filters></filterColumn></autoFilter>'
|
|
234
|
+
assert_equal(expected, result)
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def test_write_auto_filter_with_filter_matches_East_and_North
|
|
238
|
+
matches = ['East', 'North']
|
|
239
|
+
|
|
240
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
241
|
+
worksheet.autofilter('A1:D51')
|
|
242
|
+
worksheet.filter_column_list('A', matches)
|
|
243
|
+
worksheet.__send__('write_auto_filter')
|
|
244
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
245
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="0"><filters><filter val="East" /><filter val="North" /></filters></filterColumn></autoFilter>'
|
|
246
|
+
assert_equal(expected, result)
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
def test_write_auto_filter_with_filter_matches_four_values
|
|
250
|
+
matches = %w(February January July June)
|
|
251
|
+
|
|
252
|
+
worksheet = @workbook.add_worksheet('Sheet1')
|
|
253
|
+
worksheet.autofilter('A1:D51')
|
|
254
|
+
worksheet.filter_column_list('D', matches)
|
|
255
|
+
worksheet.__send__('write_auto_filter')
|
|
256
|
+
result = worksheet.instance_variable_get(:@writer).string
|
|
257
|
+
expected = '<autoFilter ref="A1:D51"><filterColumn colId="3"><filters><filter val="February" /><filter val="January" /><filter val="July" /><filter val="June" /></filters></filterColumn></autoFilter>'
|
|
258
|
+
assert_equal(expected, result)
|
|
259
|
+
end
|
|
260
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWriteBrk < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
@worksheet = @workbook.add_worksheet('')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_write_brk
|
|
13
|
+
@worksheet.__send__('write_brk', 1, 16383)
|
|
14
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
15
|
+
expected = '<brk id="1" max="16383" man="1" />'
|
|
16
|
+
assert_equal(expected, result)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWriteCell < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
@worksheet = @workbook.add_worksheet('')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_write_cell_0_0_n_1
|
|
13
|
+
@worksheet.__send__('write_cell', 0, 0, [ 'n', 1 ])
|
|
14
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
15
|
+
expected = '<c r="A1"><v>1</v></c>'
|
|
16
|
+
assert_equal(expected, result)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_write_cell_3_1_s_0
|
|
20
|
+
@worksheet.__send__('write_cell', 3, 1, [ 's', 0 ])
|
|
21
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
22
|
+
expected = '<c r="B4" t="s"><v>0</v></c>'
|
|
23
|
+
assert_equal(expected, result)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_write_cell_1_2_f_formula_nil_0
|
|
27
|
+
format = nil
|
|
28
|
+
@worksheet.__send__('write_cell', 1, 2, [ 'f', 'A3+A5', format, 0 ])
|
|
29
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
30
|
+
expected = '<c r="C2"><f>A3+A5</f><v>0</v></c>'
|
|
31
|
+
assert_equal(expected, result)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_write_cell_1_2_f_formula
|
|
35
|
+
format = nil
|
|
36
|
+
@worksheet.__send__('write_cell', 1, 2, [ 'f', 'A3+A5'])
|
|
37
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
38
|
+
expected = '<c r="C2"><f>A3+A5</f><v>0</v></c>'
|
|
39
|
+
assert_equal(expected, result)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def test_write_cell_0_0_a_formula_nil_a1_9500
|
|
43
|
+
format = nil
|
|
44
|
+
@worksheet.__send__('write_cell', 0, 0, [ 'a', 'SUM(B1:C1*B2:C2)', format, 'A1', 9500 ])
|
|
45
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
46
|
+
expected = '<c r="A1"><f t="array" ref="A1">SUM(B1:C1*B2:C2)</f><v>9500</v></c>'
|
|
47
|
+
assert_equal(expected, result)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx/workbook'
|
|
4
|
+
require 'write_xlsx/worksheet'
|
|
5
|
+
require 'stringio'
|
|
6
|
+
|
|
7
|
+
class TestWriteCellValue < Test::Unit::TestCase
|
|
8
|
+
def setup
|
|
9
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
10
|
+
@worksheet = @workbook.add_worksheet('')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_write_cell_value
|
|
14
|
+
@worksheet.__send__('write_cell_value', 1)
|
|
15
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
16
|
+
expected = '<v>1</v>'
|
|
17
|
+
assert_equal(expected, result)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_write_cell_value_without_parameter
|
|
21
|
+
@worksheet.__send__('write_cell_value')
|
|
22
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
23
|
+
expected = '<v></v>'
|
|
24
|
+
assert_equal(expected, result)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_write_cell_value_with_null_string
|
|
28
|
+
@worksheet.__send__('write_cell_value', '')
|
|
29
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
30
|
+
expected = '<v></v>'
|
|
31
|
+
assert_equal(expected, result)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWriteColBreaks < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
@worksheet = @workbook.add_worksheet('')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_write_col_breaks_1
|
|
13
|
+
@worksheet.instance_variable_get(:@print_style).vbreaks = [1]
|
|
14
|
+
@worksheet.__send__('write_col_breaks')
|
|
15
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
16
|
+
expected = '<colBreaks count="1" manualBreakCount="1"><brk id="1" max="1048575" man="1" /></colBreaks>'
|
|
17
|
+
assert_equal(expected, result)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_write_col_breaks_8_3_1_0
|
|
21
|
+
@worksheet.instance_variable_get(:@print_style).vbreaks = [8, 3, 1, 0]
|
|
22
|
+
@worksheet.__send__('write_col_breaks')
|
|
23
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
24
|
+
expected = '<colBreaks count="3" manualBreakCount="3"><brk id="1" max="1048575" man="1" /><brk id="3" max="1048575" man="1" /><brk id="8" max="1048575" man="1" /></colBreaks>'
|
|
25
|
+
assert_equal(expected, result)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
require 'helper'
|
|
3
|
+
require 'write_xlsx'
|
|
4
|
+
require 'stringio'
|
|
5
|
+
|
|
6
|
+
class TestWriteColInfo < Test::Unit::TestCase
|
|
7
|
+
def setup
|
|
8
|
+
@workbook = WriteXLSX.new(StringIO.new)
|
|
9
|
+
@worksheet = @workbook.add_worksheet('')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_write_col_info_1_3_5_nil_false_0_0
|
|
13
|
+
min = 1
|
|
14
|
+
max = 3
|
|
15
|
+
width = 5
|
|
16
|
+
format = nil
|
|
17
|
+
hidden = 0
|
|
18
|
+
level = 0
|
|
19
|
+
collapsed = 0
|
|
20
|
+
@worksheet.__send__('write_col_info', min, max, width, format, hidden)
|
|
21
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
22
|
+
expected = '<col min="2" max="4" width="5.7109375" customWidth="1" />'
|
|
23
|
+
assert_equal(expected, result)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_write_col_info_5_5_8_nil_true_0_0
|
|
27
|
+
min = 5
|
|
28
|
+
max = 5
|
|
29
|
+
width = 8
|
|
30
|
+
format = nil
|
|
31
|
+
hidden = true
|
|
32
|
+
level = 0
|
|
33
|
+
collapsed = 0
|
|
34
|
+
@worksheet.__send__('write_col_info', min, max, width, format, hidden)
|
|
35
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
36
|
+
expected = '<col min="6" max="6" width="8.7109375" hidden="1" customWidth="1" />'
|
|
37
|
+
assert_equal(expected, result)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_write_col_info_7_7_nil_1_false_0_0
|
|
41
|
+
min = 7
|
|
42
|
+
max = 7
|
|
43
|
+
width = nil
|
|
44
|
+
format = Writexlsx::Format.new({}, {}, :xf_index => 1)
|
|
45
|
+
hidden = false
|
|
46
|
+
level = 0
|
|
47
|
+
collapsed = 0
|
|
48
|
+
@worksheet.__send__('write_col_info', min, max, width, format, hidden)
|
|
49
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
50
|
+
expected = '<col min="8" max="8" width="9.140625" style="1" />'
|
|
51
|
+
assert_equal(expected, result)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_write_col_info_8_8_843_1_false_0_0
|
|
55
|
+
min = 8
|
|
56
|
+
max = 8
|
|
57
|
+
width = 8.43
|
|
58
|
+
format = Writexlsx::Format.new({}, {}, :xf_index => 1)
|
|
59
|
+
hidden = false
|
|
60
|
+
level = 0
|
|
61
|
+
collapsed = 0
|
|
62
|
+
@worksheet.__send__('write_col_info', min, max, width, format, hidden)
|
|
63
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
64
|
+
expected = '<col min="9" max="9" width="9.140625" style="1" />'
|
|
65
|
+
assert_equal(expected, result)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_write_col_info_9_9_2_nil_false_0_0
|
|
69
|
+
min = 9
|
|
70
|
+
max = 9
|
|
71
|
+
width = 2
|
|
72
|
+
format = nil
|
|
73
|
+
hidden = false
|
|
74
|
+
level = 0
|
|
75
|
+
collapsed = 0
|
|
76
|
+
@worksheet.__send__('write_col_info', min, max, width, format, hidden)
|
|
77
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
78
|
+
expected = '<col min="10" max="10" width="2.7109375" customWidth="1" />'
|
|
79
|
+
assert_equal(expected, result)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def test_write_col_info_11_1_nil_nil_true_0_0
|
|
83
|
+
min = 11
|
|
84
|
+
max = 11
|
|
85
|
+
width = nil
|
|
86
|
+
format = nil
|
|
87
|
+
hidden = true
|
|
88
|
+
level = 0
|
|
89
|
+
collapsed = 0
|
|
90
|
+
@worksheet.__send__('write_col_info', min, max, width, format, hidden)
|
|
91
|
+
result = @worksheet.instance_variable_get(:@writer).string
|
|
92
|
+
expected = '<col min="12" max="12" width="0" hidden="1" customWidth="1" />'
|
|
93
|
+
assert_equal(expected, result)
|
|
94
|
+
end
|
|
95
|
+
end
|