write_xlsx 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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