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,18 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteSheetFormatPr < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_sheet_format_pr
13
+ @worksheet.__send__('write_sheet_format_pr')
14
+ result = @worksheet.instance_variable_get(:@writer).string
15
+ expected = '<sheetFormatPr defaultRowHeight="15" />'
16
+ assert_equal(expected, result)
17
+ end
18
+ end
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteSheetPr < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_sheet_pr_fit_page
13
+ @worksheet.instance_variable_get(:@print_style).fit_page = true
14
+ @worksheet.__send__('write_sheet_pr')
15
+ result = @worksheet.instance_variable_get(:@writer).string
16
+ expected = '<sheetPr><pageSetUpPr fitToPage="1" /></sheetPr>'
17
+ assert_equal(expected, result)
18
+ end
19
+
20
+ def test_write_sheet_pr_tab_color
21
+ @worksheet.set_tab_color('red')
22
+ @worksheet.__send__('write_sheet_pr')
23
+ result = @worksheet.instance_variable_get(:@writer).string
24
+ expected = '<sheetPr><tabColor rgb="FFFF0000" /></sheetPr>'
25
+ assert_equal(expected, result)
26
+ end
27
+
28
+ def test_write_sheet_pr_fit_page_and_tab_color
29
+ @worksheet.instance_variable_get(:@print_style).fit_page = true
30
+ @worksheet.set_tab_color('red')
31
+ @worksheet.__send__('write_sheet_pr')
32
+ result = @worksheet.instance_variable_get(:@writer).string
33
+ expected = '<sheetPr><tabColor rgb="FFFF0000" /><pageSetUpPr fitToPage="1" /></sheetPr>'
34
+ assert_equal(expected, result)
35
+ end
36
+ end
@@ -0,0 +1,174 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteSheetProtection < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_sheet_protection_without_password
13
+ @worksheet.protect
14
+ @worksheet.__send__('write_sheet_protection')
15
+ result = @worksheet.instance_variable_get(:@writer).string
16
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" />'
17
+ assert_equal(expected, result)
18
+ end
19
+
20
+ def test_write_sheet_protection_with_password
21
+ @worksheet.protect('password')
22
+ @worksheet.__send__('write_sheet_protection')
23
+ result = @worksheet.instance_variable_get(:@writer).string
24
+ expected = '<sheetProtection password="83AF" sheet="1" objects="1" scenarios="1" />'
25
+ assert_equal(expected, result)
26
+ end
27
+
28
+ def test_write_sheet_protection_with_select_locked_cells
29
+ @worksheet.protect('', :select_locked_cells => false)
30
+ @worksheet.__send__('write_sheet_protection')
31
+ result = @worksheet.instance_variable_get(:@writer).string
32
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" selectLockedCells="1" />'
33
+ assert_equal(expected, result)
34
+ end
35
+
36
+ def test_write_sheet_protection_with_format_cells
37
+ @worksheet.protect('', :format_cells => true)
38
+ @worksheet.__send__('write_sheet_protection')
39
+ result = @worksheet.instance_variable_get(:@writer).string
40
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" formatCells="0" />'
41
+ assert_equal(expected, result)
42
+ end
43
+
44
+ def test_write_sheet_protection_with_format_columns
45
+ @worksheet.protect('', :format_columns => true)
46
+ @worksheet.__send__('write_sheet_protection')
47
+ result = @worksheet.instance_variable_get(:@writer).string
48
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" formatColumns="0" />'
49
+ assert_equal(expected, result)
50
+ end
51
+
52
+ def test_write_sheet_protection_with_format_rows
53
+ @worksheet.protect('', :format_rows => true)
54
+ @worksheet.__send__('write_sheet_protection')
55
+ result = @worksheet.instance_variable_get(:@writer).string
56
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" formatRows="0" />'
57
+ assert_equal(expected, result)
58
+ end
59
+
60
+ def test_write_sheet_protection_with_insert_columns
61
+ @worksheet.protect('', :insert_columns => true)
62
+ @worksheet.__send__('write_sheet_protection')
63
+ result = @worksheet.instance_variable_get(:@writer).string
64
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" insertColumns="0" />'
65
+ assert_equal(expected, result)
66
+ end
67
+
68
+ def test_write_sheet_protection_with_insert_rows
69
+ @worksheet.protect('', :insert_rows => true)
70
+ @worksheet.__send__('write_sheet_protection')
71
+ result = @worksheet.instance_variable_get(:@writer).string
72
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" insertRows="0" />'
73
+ assert_equal(expected, result)
74
+ end
75
+
76
+ def test_write_sheet_protection_with_insert_hyperlinks
77
+ @worksheet.protect('', :insert_hyperlinks => true)
78
+ @worksheet.__send__('write_sheet_protection')
79
+ result = @worksheet.instance_variable_get(:@writer).string
80
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" insertHyperlinks="0" />'
81
+ assert_equal(expected, result)
82
+ end
83
+
84
+ def test_write_sheet_protection_with_delete_columns
85
+ @worksheet.protect('', :delete_columns => true)
86
+ @worksheet.__send__('write_sheet_protection')
87
+ result = @worksheet.instance_variable_get(:@writer).string
88
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" deleteColumns="0" />'
89
+ assert_equal(expected, result)
90
+ end
91
+
92
+ def test_write_sheet_protection_with_delete_rows
93
+ @worksheet.protect('', :delete_rows => true)
94
+ @worksheet.__send__('write_sheet_protection')
95
+ result = @worksheet.instance_variable_get(:@writer).string
96
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" deleteRows="0" />'
97
+ assert_equal(expected, result)
98
+ end
99
+
100
+ def test_write_sheet_protection_with_sort
101
+ @worksheet.protect('', :sort => true)
102
+ @worksheet.__send__('write_sheet_protection')
103
+ result = @worksheet.instance_variable_get(:@writer).string
104
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" sort="0" />'
105
+ assert_equal(expected, result)
106
+ end
107
+
108
+ def test_write_sheet_protection_with_autofilter
109
+ @worksheet.protect('', :autofilter => true)
110
+ @worksheet.__send__('write_sheet_protection')
111
+ result = @worksheet.instance_variable_get(:@writer).string
112
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" autoFilter="0" />'
113
+ assert_equal(expected, result)
114
+ end
115
+
116
+ def test_write_sheet_protection_with_pivot_table
117
+ @worksheet.protect('', :pivot_tables => true)
118
+ @worksheet.__send__('write_sheet_protection')
119
+ result = @worksheet.instance_variable_get(:@writer).string
120
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" pivotTables="0" />'
121
+ assert_equal(expected, result)
122
+ end
123
+
124
+ def test_write_sheet_protection_with_objects
125
+ @worksheet.protect('', :objects => true)
126
+ @worksheet.__send__('write_sheet_protection')
127
+ result = @worksheet.instance_variable_get(:@writer).string
128
+ expected = '<sheetProtection sheet="1" scenarios="1" />'
129
+ assert_equal(expected, result)
130
+ end
131
+
132
+ def test_write_sheet_protection_with_scenarios
133
+ @worksheet.protect('', :scenarios => true)
134
+ @worksheet.__send__('write_sheet_protection')
135
+ result = @worksheet.instance_variable_get(:@writer).string
136
+ expected = '<sheetProtection sheet="1" objects="1" />'
137
+ assert_equal(expected, result)
138
+ end
139
+
140
+ def test_write_sheet_protection_with_format_cells_and_select_locked_cells_and_select_unlocked_cells
141
+ @worksheet.protect('', :format_cells => true,
142
+ :select_locked_cells => false, :select_unlocked_cells => false)
143
+ @worksheet.__send__('write_sheet_protection')
144
+ result = @worksheet.instance_variable_get(:@writer).string
145
+ expected = '<sheetProtection sheet="1" objects="1" scenarios="1" formatCells="0" selectLockedCells="1" selectUnlockedCells="1" />'
146
+ assert_equal(expected, result)
147
+ end
148
+
149
+ def test_write_sheet_protection_with_all
150
+ password = 'drowssap'
151
+ options = {
152
+ :objects => true,
153
+ :scenarios => true,
154
+ :format_cells => true,
155
+ :format_columns => true,
156
+ :format_rows => true,
157
+ :insert_columns => true,
158
+ :insert_rows => true,
159
+ :insert_hyperlinks => true,
160
+ :delete_columns => true,
161
+ :delete_rows => true,
162
+ :select_locked_cells => false,
163
+ :sort => true,
164
+ :autofilter => true,
165
+ :pivot_tables => true,
166
+ :select_unlocked_cells => false
167
+ }
168
+ @worksheet.protect(password, options)
169
+ @worksheet.__send__('write_sheet_protection')
170
+ result = @worksheet.instance_variable_get(:@writer).string
171
+ expected = '<sheetProtection password="996B" sheet="1" formatCells="0" formatColumns="0" formatRows="0" insertColumns="0" insertRows="0" insertHyperlinks="0" deleteColumns="0" deleteRows="0" selectLockedCells="1" sort="0" autoFilter="0" pivotTables="0" selectUnlockedCells="1" />'
172
+ assert_equal(expected, result)
173
+ end
174
+ end
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteSheetView < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_sheet_view_tab_not_selected
13
+ @worksheet.__send__('write_sheet_view')
14
+ result = @worksheet.instance_variable_get(:@writer).string
15
+ expected = '<sheetView workbookViewId="0" />'
16
+ assert_equal(expected, result)
17
+ end
18
+
19
+ def test_write_sheet_view_tab_selected
20
+ @worksheet.select
21
+ @worksheet.__send__('write_sheet_view')
22
+ result = @worksheet.instance_variable_get(:@writer).string
23
+ expected = '<sheetView tabSelected="1" workbookViewId="0" />'
24
+ assert_equal(expected, result)
25
+ end
26
+
27
+ def test_write_sheet_view_tab_selected_and_hide_gridlines
28
+ @worksheet.select
29
+ @worksheet.hide_gridlines
30
+ @worksheet.__send__('write_sheet_view')
31
+ result = @worksheet.instance_variable_get(:@writer).string
32
+ expected = '<sheetView tabSelected="1" workbookViewId="0" />'
33
+ assert_equal(expected, result)
34
+ end
35
+
36
+ def test_write_sheet_view_tab_selected_and_hide_gridlines_true
37
+ @worksheet.select
38
+ @worksheet.hide_gridlines(true)
39
+ @worksheet.__send__('write_sheet_view')
40
+ result = @worksheet.instance_variable_get(:@writer).string
41
+ expected = '<sheetView tabSelected="1" workbookViewId="0" />'
42
+ assert_equal(expected, result)
43
+ end
44
+
45
+ def test_write_sheet_view_tab_selected_and_hide_gridlines_false
46
+ @worksheet.select
47
+ @worksheet.hide_gridlines(false)
48
+ @worksheet.__send__('write_sheet_view')
49
+ result = @worksheet.instance_variable_get(:@writer).string
50
+ expected = '<sheetView tabSelected="1" workbookViewId="0" />'
51
+ assert_equal(expected, result)
52
+ end
53
+
54
+ def test_write_sheet_view_tab_selected_and_hide_gridlines_another
55
+ @worksheet.select
56
+ @worksheet.hide_gridlines(2)
57
+ @worksheet.__send__('write_sheet_view')
58
+ result = @worksheet.instance_variable_get(:@writer).string
59
+ expected = '<sheetView showGridLines="0" tabSelected="1" workbookViewId="0" />'
60
+ assert_equal(expected, result)
61
+ end
62
+ end
@@ -0,0 +1,64 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteSheetView1 < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_sheet_views
13
+ @worksheet.select
14
+ @worksheet.__send__('write_sheet_views')
15
+ result = @worksheet.instance_variable_get(:@writer).string
16
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0" /></sheetViews>'
17
+ assert_equal(expected, result)
18
+ end
19
+
20
+ def test_write_sheet_views_and_zoom_100
21
+ @worksheet.select
22
+ @worksheet.set_zoom(100)
23
+ @worksheet.__send__('write_sheet_views')
24
+ result = @worksheet.instance_variable_get(:@writer).string
25
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0" /></sheetViews>'
26
+ assert_equal(expected, result)
27
+ end
28
+
29
+ def test_write_sheet_views_and_zoom_200
30
+ @worksheet.select
31
+ @worksheet.set_zoom(200)
32
+ @worksheet.__send__('write_sheet_views')
33
+ result = @worksheet.instance_variable_get(:@writer).string
34
+ expected = '<sheetViews><sheetView tabSelected="1" zoomScale="200" zoomScaleNormal="200" workbookViewId="0" /></sheetViews>'
35
+ assert_equal(expected, result)
36
+ end
37
+
38
+ def test_write_sheet_views_right_to_left
39
+ @worksheet.select
40
+ @worksheet.right_to_left
41
+ @worksheet.__send__('write_sheet_views')
42
+ result = @worksheet.instance_variable_get(:@writer).string
43
+ expected = '<sheetViews><sheetView rightToLeft="1" tabSelected="1" workbookViewId="0" /></sheetViews>'
44
+ assert_equal(expected, result)
45
+ end
46
+
47
+ def test_write_sheet_views_hide_zero
48
+ @worksheet.select
49
+ @worksheet.hide_zero
50
+ @worksheet.__send__('write_sheet_views')
51
+ result = @worksheet.instance_variable_get(:@writer).string
52
+ expected = '<sheetViews><sheetView showZeros="0" tabSelected="1" workbookViewId="0" /></sheetViews>'
53
+ assert_equal(expected, result)
54
+ end
55
+
56
+ def test_write_sheet_views_set_page_view
57
+ @worksheet.select
58
+ @worksheet.set_page_view
59
+ @worksheet.__send__('write_sheet_views')
60
+ result = @worksheet.instance_variable_get(:@writer).string
61
+ expected = '<sheetViews><sheetView tabSelected="1" view="pageLayout" workbookViewId="0" /></sheetViews>'
62
+ assert_equal(expected, result)
63
+ end
64
+ end
@@ -0,0 +1,56 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteSheetView2 < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_sheet_views_freeze_panes_1
13
+ @worksheet.select
14
+ @worksheet.freeze_panes(1)
15
+ @worksheet.__send__('write_sheet_views')
16
+ result = @worksheet.instance_variable_get(:@writer).string
17
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen" /><selection pane="bottomLeft" /></sheetView></sheetViews>'
18
+ assert_equal(expected, result)
19
+ end
20
+
21
+ def test_write_sheet_views_freeze_panes_0_1
22
+ @worksheet.select
23
+ @worksheet.freeze_panes(0, 1)
24
+ @worksheet.__send__('write_sheet_views')
25
+ result = @worksheet.instance_variable_get(:@writer).string
26
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="1" topLeftCell="B1" activePane="topRight" state="frozen" /><selection pane="topRight" /></sheetView></sheetViews>'
27
+ assert_equal(expected, result)
28
+ end
29
+
30
+ def test_write_sheet_views_freeze_panes_1_1
31
+ @worksheet.select
32
+ @worksheet.freeze_panes(1, 1)
33
+ @worksheet.__send__('write_sheet_views')
34
+ result = @worksheet.instance_variable_get(:@writer).string
35
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="1" ySplit="1" topLeftCell="B2" activePane="bottomRight" state="frozen" /><selection pane="topRight" activeCell="B1" sqref="B1" /><selection pane="bottomLeft" activeCell="A2" sqref="A2" /><selection pane="bottomRight" /></sheetView></sheetViews>'
36
+ assert_equal(expected, result)
37
+ end
38
+
39
+ def test_write_sheet_views_freeze_panes_G4
40
+ @worksheet.select
41
+ @worksheet.freeze_panes('G4')
42
+ @worksheet.__send__('write_sheet_views')
43
+ result = @worksheet.instance_variable_get(:@writer).string
44
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="6" ySplit="3" topLeftCell="G4" activePane="bottomRight" state="frozen" /><selection pane="topRight" activeCell="G1" sqref="G1" /><selection pane="bottomLeft" activeCell="A4" sqref="A4" /><selection pane="bottomRight" /></sheetView></sheetViews>'
45
+ assert_equal(expected, result)
46
+ end
47
+
48
+ def test_write_sheet_views_freeze_panes_3_6_3_6_1
49
+ @worksheet.select
50
+ @worksheet.freeze_panes(3, 6, 3, 6, 1)
51
+ @worksheet.__send__('write_sheet_views')
52
+ result = @worksheet.instance_variable_get(:@writer).string
53
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="6" ySplit="3" topLeftCell="G4" activePane="bottomRight" state="frozenSplit" /><selection pane="topRight" activeCell="G1" sqref="G1" /><selection pane="bottomLeft" activeCell="A4" sqref="A4" /><selection pane="bottomRight" /></sheetView></sheetViews>';
54
+ assert_equal(expected, result)
55
+ end
56
+ end
@@ -0,0 +1,83 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteSheetView3 < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_sheet_views_split_panes_15
13
+ @worksheet.select
14
+ @worksheet.split_panes(15)
15
+ @worksheet.__send__('write_sheet_views')
16
+ result = @worksheet.instance_variable_get(:@writer).string
17
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane ySplit="600" topLeftCell="A2" /><selection pane="bottomLeft" activeCell="A2" sqref="A2" /></sheetView></sheetViews>'
18
+ assert_equal(expected, result)
19
+ end
20
+
21
+ def test_write_sheet_views_split_panes_30
22
+ @worksheet.select
23
+ @worksheet.split_panes(30)
24
+ @worksheet.__send__('write_sheet_views')
25
+ result = @worksheet.instance_variable_get(:@writer).string
26
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane ySplit="900" topLeftCell="A3" /><selection pane="bottomLeft" activeCell="A3" sqref="A3" /></sheetView></sheetViews>'
27
+ assert_equal(expected, result)
28
+ end
29
+
30
+ def test_write_sheet_views_split_panes_105
31
+ @worksheet.select
32
+ @worksheet.split_panes(105)
33
+ @worksheet.__send__('write_sheet_views')
34
+ result = @worksheet.instance_variable_get(:@writer).string
35
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane ySplit="2400" topLeftCell="A8" /><selection pane="bottomLeft" activeCell="A8" sqref="A8" /></sheetView></sheetViews>'
36
+ assert_equal(expected, result)
37
+ end
38
+
39
+ def test_write_sheet_views_split_panes_0_843
40
+ @worksheet.select
41
+ @worksheet.split_panes(0, 8.43)
42
+ @worksheet.__send__('write_sheet_views')
43
+ result = @worksheet.instance_variable_get(:@writer).string
44
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="1350" topLeftCell="B1" /><selection pane="topRight" activeCell="B1" sqref="B1" /></sheetView></sheetViews>'
45
+ assert_equal(expected, result)
46
+ end
47
+
48
+ def test_write_sheet_views_split_panes_0_1757
49
+ @worksheet.select
50
+ @worksheet.split_panes(0, 17.57)
51
+ @worksheet.__send__('write_sheet_views')
52
+ result = @worksheet.instance_variable_get(:@writer).string
53
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="2310" topLeftCell="C1" /><selection pane="topRight" activeCell="C1" sqref="C1" /></sheetView></sheetViews>'
54
+ assert_equal(expected, result)
55
+ end
56
+
57
+ def test_write_sheet_views_split_panes_0_45
58
+ @worksheet.select
59
+ @worksheet.split_panes(0, 45)
60
+ @worksheet.__send__('write_sheet_views')
61
+ result = @worksheet.instance_variable_get(:@writer).string
62
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="5190" topLeftCell="F1" /><selection pane="topRight" activeCell="F1" sqref="F1" /></sheetView></sheetViews>'
63
+ assert_equal(expected, result)
64
+ end
65
+
66
+ def test_write_sheet_views_split_panes_15_843
67
+ @worksheet.select
68
+ @worksheet.split_panes(15, 8.43)
69
+ @worksheet.__send__('write_sheet_views')
70
+ result = @worksheet.instance_variable_get(:@writer).string
71
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="1350" ySplit="600" topLeftCell="B2" /><selection pane="topRight" activeCell="B1" sqref="B1" /><selection pane="bottomLeft" activeCell="A2" sqref="A2" /><selection pane="bottomRight" activeCell="B2" sqref="B2" /></sheetView></sheetViews>'
72
+ assert_equal(expected, result)
73
+ end
74
+
75
+ def test_write_sheet_views_split_panes_45_5414
76
+ @worksheet.select
77
+ @worksheet.split_panes(45, 54.14)
78
+ @worksheet.__send__('write_sheet_views')
79
+ result = @worksheet.instance_variable_get(:@writer).string
80
+ expected = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"><pane xSplit="6150" ySplit="1200" topLeftCell="G4" /><selection pane="topRight" activeCell="G1" sqref="G1" /><selection pane="bottomLeft" activeCell="A4" sqref="A4" /><selection pane="bottomRight" activeCell="G4" sqref="G4" /></sheetView></sheetViews>'
81
+ assert_equal(expected, result)
82
+ end
83
+ end