write_xlsx 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. data/.document +5 -0
  2. data/.gitattributes +1 -0
  3. data/Gemfile +12 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +82 -0
  6. data/Rakefile +78 -0
  7. data/VERSION +1 -0
  8. data/examples/a_simple.rb +45 -0
  9. data/examples/array_formula.rb +33 -0
  10. data/examples/autofilter.rb +235 -0
  11. data/examples/chart_area.rb +59 -0
  12. data/examples/chart_bar.rb +59 -0
  13. data/examples/chart_column.rb +58 -0
  14. data/examples/chart_line.rb +59 -0
  15. data/examples/chart_pie.rb +49 -0
  16. data/examples/chart_scatter.rb +59 -0
  17. data/examples/chart_stock.rb +65 -0
  18. data/examples/colors.rb +130 -0
  19. data/examples/comments1.rb +12 -0
  20. data/examples/comments2.rb +335 -0
  21. data/examples/conditional_format.rb +67 -0
  22. data/examples/data_validate.rb +279 -0
  23. data/examples/defined_name.rb +28 -0
  24. data/examples/demo.rb +104 -0
  25. data/examples/diag_border.rb +26 -0
  26. data/examples/headers.rb +119 -0
  27. data/examples/hide_sheet.rb +30 -0
  28. data/examples/hyperlink1.rb +58 -0
  29. data/examples/indent.rb +28 -0
  30. data/examples/merge1.rb +38 -0
  31. data/examples/merge2.rb +48 -0
  32. data/examples/merge3.rb +43 -0
  33. data/examples/merge4.rb +82 -0
  34. data/examples/merge5.rb +70 -0
  35. data/examples/merge6.rb +48 -0
  36. data/examples/outline.rb +252 -0
  37. data/examples/properties.rb +33 -0
  38. data/examples/protection.rb +34 -0
  39. data/examples/rich_strings.rb +42 -0
  40. data/examples/right_to_left.rb +24 -0
  41. data/examples/tab_colors.rb +26 -0
  42. data/lib/write_xlsx.rb +77 -0
  43. data/lib/write_xlsx/chart.rb +3027 -0
  44. data/lib/write_xlsx/chart/area.rb +52 -0
  45. data/lib/write_xlsx/chart/bar.rb +126 -0
  46. data/lib/write_xlsx/chart/column.rb +132 -0
  47. data/lib/write_xlsx/chart/line.rb +51 -0
  48. data/lib/write_xlsx/chart/pie.rb +210 -0
  49. data/lib/write_xlsx/chart/scatter.rb +252 -0
  50. data/lib/write_xlsx/chart/stock.rb +134 -0
  51. data/lib/write_xlsx/chartsheet.rb +173 -0
  52. data/lib/write_xlsx/colors.rb +65 -0
  53. data/lib/write_xlsx/compatibility.rb +71 -0
  54. data/lib/write_xlsx/drawing.rb +547 -0
  55. data/lib/write_xlsx/format.rb +683 -0
  56. data/lib/write_xlsx/package/app.rb +218 -0
  57. data/lib/write_xlsx/package/comments.rb +221 -0
  58. data/lib/write_xlsx/package/content_types.rb +189 -0
  59. data/lib/write_xlsx/package/core.rb +196 -0
  60. data/lib/write_xlsx/package/packager.rb +510 -0
  61. data/lib/write_xlsx/package/relationships.rb +98 -0
  62. data/lib/write_xlsx/package/shared_strings.rb +96 -0
  63. data/lib/write_xlsx/package/styles.rb +705 -0
  64. data/lib/write_xlsx/package/theme.rb +45 -0
  65. data/lib/write_xlsx/package/vml.rb +386 -0
  66. data/lib/write_xlsx/package/xml_writer_simple.rb +90 -0
  67. data/lib/write_xlsx/utility.rb +113 -0
  68. data/lib/write_xlsx/workbook.rb +1488 -0
  69. data/lib/write_xlsx/worksheet.rb +6578 -0
  70. data/lib/write_xlsx/zip_file_utils.rb +98 -0
  71. data/test/chart/test_add_series.rb +113 -0
  72. data/test/chart/test_process_names.rb +27 -0
  73. data/test/chart/test_write_auto.rb +15 -0
  74. data/test/chart/test_write_ax_id.rb +15 -0
  75. data/test/chart/test_write_ax_pos.rb +15 -0
  76. data/test/chart/test_write_chart_space.rb +15 -0
  77. data/test/chart/test_write_cross_ax.rb +15 -0
  78. data/test/chart/test_write_crosses.rb +15 -0
  79. data/test/chart/test_write_format_code.rb +15 -0
  80. data/test/chart/test_write_idx.rb +15 -0
  81. data/test/chart/test_write_label_align.rb +15 -0
  82. data/test/chart/test_write_label_offset.rb +15 -0
  83. data/test/chart/test_write_lang.rb +15 -0
  84. data/test/chart/test_write_layout.rb +15 -0
  85. data/test/chart/test_write_legend.rb +16 -0
  86. data/test/chart/test_write_legend_pos.rb +15 -0
  87. data/test/chart/test_write_major_gridlines.rb +15 -0
  88. data/test/chart/test_write_marker.rb +17 -0
  89. data/test/chart/test_write_marker_size.rb +15 -0
  90. data/test/chart/test_write_marker_value.rb +16 -0
  91. data/test/chart/test_write_num_cache.rb +16 -0
  92. data/test/chart/test_write_num_fmt.rb +16 -0
  93. data/test/chart/test_write_number_format.rb +15 -0
  94. data/test/chart/test_write_order.rb +15 -0
  95. data/test/chart/test_write_orientation.rb +15 -0
  96. data/test/chart/test_write_page_margins.rb +15 -0
  97. data/test/chart/test_write_page_setup.rb +15 -0
  98. data/test/chart/test_write_plot_vis_only.rb +15 -0
  99. data/test/chart/test_write_pt.rb +16 -0
  100. data/test/chart/test_write_pt_count.rb +16 -0
  101. data/test/chart/test_write_series_formula.rb +16 -0
  102. data/test/chart/test_write_style.rb +41 -0
  103. data/test/chart/test_write_symbol.rb +16 -0
  104. data/test/chart/test_write_tick_lbl_pos.rb +16 -0
  105. data/test/chart/test_write_v.rb +16 -0
  106. data/test/drawing/test_drawing_chart_01.rb +50 -0
  107. data/test/drawing/test_drawing_image_01.rb +59 -0
  108. data/test/helper.rb +90 -0
  109. data/test/package/app/test_app01.rb +44 -0
  110. data/test/package/app/test_app02.rb +46 -0
  111. data/test/package/app/test_app03.rb +53 -0
  112. data/test/package/comments/test_comments01.rb +36 -0
  113. data/test/package/comments/test_write_text_t.rb +44 -0
  114. data/test/package/content_types/test_content_types.rb +35 -0
  115. data/test/package/content_types/test_write_default.rb +13 -0
  116. data/test/package/content_types/test_write_override.rb +13 -0
  117. data/test/package/core/test_core01.rb +28 -0
  118. data/test/package/core/test_core02.rb +42 -0
  119. data/test/package/relationships/test_relationships.rb +28 -0
  120. data/test/package/relationships/test_sheet_rels.rb +22 -0
  121. data/test/package/shared_strings/test_shared_strings01.rb +30 -0
  122. data/test/package/shared_strings/test_shared_strings02.rb +30 -0
  123. data/test/package/shared_strings/test_write_si.rb +13 -0
  124. data/test/package/shared_strings/test_write_sst.rb +15 -0
  125. data/test/package/styles/test_styles_01.rb +69 -0
  126. data/test/package/styles/test_styles_02.rb +104 -0
  127. data/test/package/styles/test_styles_03.rb +90 -0
  128. data/test/package/styles/test_styles_04.rb +216 -0
  129. data/test/package/styles/test_styles_05.rb +150 -0
  130. data/test/package/styles/test_styles_06.rb +104 -0
  131. data/test/package/styles/test_styles_07.rb +104 -0
  132. data/test/package/styles/test_styles_08.rb +109 -0
  133. data/test/package/styles/test_styles_09.rb +95 -0
  134. data/test/package/vml/test_vml_01.rb +42 -0
  135. data/test/package/vml/test_write_anchor.rb +14 -0
  136. data/test/package/vml/test_write_auto_fill.rb +14 -0
  137. data/test/package/vml/test_write_column.rb +14 -0
  138. data/test/package/vml/test_write_div.rb +14 -0
  139. data/test/package/vml/test_write_fill.rb +14 -0
  140. data/test/package/vml/test_write_idmap.rb +14 -0
  141. data/test/package/vml/test_write_move_with_cells.rb +14 -0
  142. data/test/package/vml/test_write_path.rb +22 -0
  143. data/test/package/vml/test_write_row.rb +14 -0
  144. data/test/package/vml/test_write_shadow.rb +14 -0
  145. data/test/package/vml/test_write_shapelayout.rb +14 -0
  146. data/test/package/vml/test_write_shapetype.rb +14 -0
  147. data/test/package/vml/test_write_size_with_cells.rb +14 -0
  148. data/test/package/vml/test_write_stroke.rb +14 -0
  149. data/test/package/vml/test_write_textbox.rb +14 -0
  150. data/test/perl_output/a_simple.xlsx +0 -0
  151. data/test/perl_output/array_formula.xlsx +0 -0
  152. data/test/perl_output/autofilter.xlsx +0 -0
  153. data/test/perl_output/chart_area.xlsx +0 -0
  154. data/test/perl_output/chart_bar.xlsx +0 -0
  155. data/test/perl_output/chart_column.xlsx +0 -0
  156. data/test/perl_output/chart_line.xlsx +0 -0
  157. data/test/perl_output/chart_pie.xlsx +0 -0
  158. data/test/perl_output/chart_scatter.xlsx +0 -0
  159. data/test/perl_output/chart_stock.xlsx +0 -0
  160. data/test/perl_output/comments1.xlsx +0 -0
  161. data/test/perl_output/comments2.xlsx +0 -0
  162. data/test/perl_output/conditional_format.xlsx +0 -0
  163. data/test/perl_output/data_validate.xlsx +0 -0
  164. data/test/perl_output/defined_name.xlsx +0 -0
  165. data/test/perl_output/demo.xlsx +0 -0
  166. data/test/perl_output/diag_border.xlsx +0 -0
  167. data/test/perl_output/fit_to_pages.xlsx +0 -0
  168. data/test/perl_output/headers.xlsx +0 -0
  169. data/test/perl_output/hide_sheet.xlsx +0 -0
  170. data/test/perl_output/hyperlink.xlsx +0 -0
  171. data/test/perl_output/indent.xlsx +0 -0
  172. data/test/perl_output/merge1.xlsx +0 -0
  173. data/test/perl_output/merge2.xlsx +0 -0
  174. data/test/perl_output/merge3.xlsx +0 -0
  175. data/test/perl_output/merge4.xlsx +0 -0
  176. data/test/perl_output/merge5.xlsx +0 -0
  177. data/test/perl_output/merge6.xlsx +0 -0
  178. data/test/perl_output/outline.xlsx +0 -0
  179. data/test/perl_output/print_scale.xlsx +0 -0
  180. data/test/perl_output/properties.xlsx +0 -0
  181. data/test/perl_output/protection.xlsx +0 -0
  182. data/test/perl_output/rich_strings.xlsx +0 -0
  183. data/test/perl_output/right_to_left.xlsx +0 -0
  184. data/test/perl_output/tab_colors.xlsx +0 -0
  185. data/test/test_delete_files.rb +37 -0
  186. data/test/test_example_match.rb +2281 -0
  187. data/test/test_xml_writer_simple.rb +63 -0
  188. data/test/workbook/test_get_chart_range.rb +59 -0
  189. data/test/workbook/test_sort_defined_names.rb +77 -0
  190. data/test/workbook/test_workbook_01.rb +29 -0
  191. data/test/workbook/test_workbook_02.rb +31 -0
  192. data/test/workbook/test_workbook_03.rb +31 -0
  193. data/test/workbook/test_workbook_new.rb +18 -0
  194. data/test/workbook/test_write_defined_name.rb +17 -0
  195. data/test/workbook/test_write_defined_names.rb +41 -0
  196. data/test/worksheet/test_calculate_spans.rb +58 -0
  197. data/test/worksheet/test_convert_date_time_01.rb +439 -0
  198. data/test/worksheet/test_convert_date_time_02.rb +478 -0
  199. data/test/worksheet/test_convert_date_time_03.rb +435 -0
  200. data/test/worksheet/test_extract_filter_tokens.rb +109 -0
  201. data/test/worksheet/test_parse_filter_expression.rb +143 -0
  202. data/test/worksheet/test_position_object.rb +50 -0
  203. data/test/worksheet/test_repeat_formula.rb +55 -0
  204. data/test/worksheet/test_worksheet_01.rb +32 -0
  205. data/test/worksheet/test_worksheet_02.rb +38 -0
  206. data/test/worksheet/test_worksheet_03.rb +44 -0
  207. data/test/worksheet/test_worksheet_04.rb +45 -0
  208. data/test/worksheet/test_write_array_formula_01.rb +99 -0
  209. data/test/worksheet/test_write_autofilter.rb +260 -0
  210. data/test/worksheet/test_write_brk.rb +18 -0
  211. data/test/worksheet/test_write_cell.rb +49 -0
  212. data/test/worksheet/test_write_cell_value.rb +33 -0
  213. data/test/worksheet/test_write_col_breaks.rb +27 -0
  214. data/test/worksheet/test_write_col_info.rb +95 -0
  215. data/test/worksheet/test_write_conditional_formatting.rb +72 -0
  216. data/test/worksheet/test_write_custom_filter.rb +18 -0
  217. data/test/worksheet/test_write_custom_filters.rb +25 -0
  218. data/test/worksheet/test_write_data_validation_01.rb +113 -0
  219. data/test/worksheet/test_write_data_validation_02.rb +528 -0
  220. data/test/worksheet/test_write_dimension.rb +94 -0
  221. data/test/worksheet/test_write_ext.rb +18 -0
  222. data/test/worksheet/test_write_ext_lst.rb +18 -0
  223. data/test/worksheet/test_write_filter.rb +18 -0
  224. data/test/worksheet/test_write_filter_column.rb +18 -0
  225. data/test/worksheet/test_write_filters.rb +32 -0
  226. data/test/worksheet/test_write_header_footer.rb +53 -0
  227. data/test/worksheet/test_write_hyperlink.rb +39 -0
  228. data/test/worksheet/test_write_hyperlinks.rb +27 -0
  229. data/test/worksheet/test_write_legacy_drawing.rb +19 -0
  230. data/test/worksheet/test_write_merge_cell.rb +18 -0
  231. data/test/worksheet/test_write_merge_cells.rb +192 -0
  232. data/test/worksheet/test_write_methods.rb +353 -0
  233. data/test/worksheet/test_write_mx_plv.rb +19 -0
  234. data/test/worksheet/test_write_page_margins.rb +98 -0
  235. data/test/worksheet/test_write_page_set_up_pr.rb +19 -0
  236. data/test/worksheet/test_write_page_setup.rb +54 -0
  237. data/test/worksheet/test_write_pane.rb +123 -0
  238. data/test/worksheet/test_write_phonetic_pr.rb +19 -0
  239. data/test/worksheet/test_write_print_options.rb +77 -0
  240. data/test/worksheet/test_write_row_breaks.rb +27 -0
  241. data/test/worksheet/test_write_row_element.rb +69 -0
  242. data/test/worksheet/test_write_selection.rb +18 -0
  243. data/test/worksheet/test_write_sheet_calc_pr.rb +18 -0
  244. data/test/worksheet/test_write_sheet_data.rb +18 -0
  245. data/test/worksheet/test_write_sheet_format_pr.rb +18 -0
  246. data/test/worksheet/test_write_sheet_pr.rb +36 -0
  247. data/test/worksheet/test_write_sheet_protection.rb +174 -0
  248. data/test/worksheet/test_write_sheet_view.rb +62 -0
  249. data/test/worksheet/test_write_sheet_view1.rb +64 -0
  250. data/test/worksheet/test_write_sheet_view2.rb +56 -0
  251. data/test/worksheet/test_write_sheet_view3.rb +83 -0
  252. data/test/worksheet/test_write_sheet_view4.rb +83 -0
  253. data/test/worksheet/test_write_sheet_view5.rb +74 -0
  254. data/test/worksheet/test_write_sheet_view6.rb +51 -0
  255. data/test/worksheet/test_write_sheet_view7.rb +71 -0
  256. data/test/worksheet/test_write_sheet_view8.rb +51 -0
  257. data/test/worksheet/test_write_sheet_view9.rb +51 -0
  258. data/test/worksheet/test_write_tab_color.rb +23 -0
  259. data/test/worksheet/test_write_worksheet.rb +19 -0
  260. data/write_xlsx.gemspec +308 -0
  261. metadata +363 -0
@@ -0,0 +1,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