caxlsx 2.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 (305) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +9 -0
  3. data/.yardopts_guide +19 -0
  4. data/CHANGELOG.md +239 -0
  5. data/LICENSE +22 -0
  6. data/README.md +256 -0
  7. data/Rakefile +31 -0
  8. data/examples/2010_comments.rb +17 -0
  9. data/examples/anchor_swapping.rb +28 -0
  10. data/examples/auto_filter.rb +16 -0
  11. data/examples/basic_charts.rb +58 -0
  12. data/examples/chart_colors.rb +88 -0
  13. data/examples/colored_links.rb +59 -0
  14. data/examples/conditional_formatting/example_conditional_formatting.rb +74 -0
  15. data/examples/conditional_formatting/getting_barred.rb +37 -0
  16. data/examples/conditional_formatting/hitting_the_high_notes.rb +37 -0
  17. data/examples/conditional_formatting/scaled_colors.rb +39 -0
  18. data/examples/conditional_formatting/stop_and_go.rb +37 -0
  19. data/examples/data_validation.rb +50 -0
  20. data/examples/example.rb +777 -0
  21. data/examples/extractive.rb +45 -0
  22. data/examples/image1.jpeg +0 -0
  23. data/examples/ios_preview.rb +14 -0
  24. data/examples/page_setup.rb +11 -0
  25. data/examples/pivot_table.rb +39 -0
  26. data/examples/sheet_protection.rb +10 -0
  27. data/examples/skydrive/real_example.rb +63 -0
  28. data/examples/styles.rb +66 -0
  29. data/examples/underline.rb +13 -0
  30. data/examples/wrap_text.rb +21 -0
  31. data/lib/axlsx.rb +152 -0
  32. data/lib/axlsx/content_type/abstract_content_type.rb +32 -0
  33. data/lib/axlsx/content_type/content_type.rb +26 -0
  34. data/lib/axlsx/content_type/default.rb +25 -0
  35. data/lib/axlsx/content_type/override.rb +25 -0
  36. data/lib/axlsx/doc_props/app.rb +235 -0
  37. data/lib/axlsx/doc_props/core.rb +39 -0
  38. data/lib/axlsx/drawing/ax_data_source.rb +26 -0
  39. data/lib/axlsx/drawing/axes.rb +61 -0
  40. data/lib/axlsx/drawing/axis.rb +187 -0
  41. data/lib/axlsx/drawing/bar_3D_chart.rb +151 -0
  42. data/lib/axlsx/drawing/bar_series.rb +82 -0
  43. data/lib/axlsx/drawing/cat_axis.rb +85 -0
  44. data/lib/axlsx/drawing/chart.rb +232 -0
  45. data/lib/axlsx/drawing/d_lbls.rb +90 -0
  46. data/lib/axlsx/drawing/drawing.rb +162 -0
  47. data/lib/axlsx/drawing/graphic_frame.rb +54 -0
  48. data/lib/axlsx/drawing/hyperlink.rb +102 -0
  49. data/lib/axlsx/drawing/line_3D_chart.rb +68 -0
  50. data/lib/axlsx/drawing/line_chart.rb +99 -0
  51. data/lib/axlsx/drawing/line_series.rb +81 -0
  52. data/lib/axlsx/drawing/marker.rb +84 -0
  53. data/lib/axlsx/drawing/num_data.rb +52 -0
  54. data/lib/axlsx/drawing/num_data_source.rb +62 -0
  55. data/lib/axlsx/drawing/num_val.rb +32 -0
  56. data/lib/axlsx/drawing/one_cell_anchor.rb +98 -0
  57. data/lib/axlsx/drawing/pic.rb +205 -0
  58. data/lib/axlsx/drawing/picture_locking.rb +44 -0
  59. data/lib/axlsx/drawing/pie_3D_chart.rb +48 -0
  60. data/lib/axlsx/drawing/pie_series.rb +74 -0
  61. data/lib/axlsx/drawing/scaling.rb +60 -0
  62. data/lib/axlsx/drawing/scatter_chart.rb +74 -0
  63. data/lib/axlsx/drawing/scatter_series.rb +65 -0
  64. data/lib/axlsx/drawing/ser_axis.rb +45 -0
  65. data/lib/axlsx/drawing/series.rb +69 -0
  66. data/lib/axlsx/drawing/series_title.rb +23 -0
  67. data/lib/axlsx/drawing/str_data.rb +42 -0
  68. data/lib/axlsx/drawing/str_val.rb +32 -0
  69. data/lib/axlsx/drawing/title.rb +78 -0
  70. data/lib/axlsx/drawing/two_cell_anchor.rb +92 -0
  71. data/lib/axlsx/drawing/val_axis.rb +37 -0
  72. data/lib/axlsx/drawing/view_3D.rb +115 -0
  73. data/lib/axlsx/drawing/vml_drawing.rb +42 -0
  74. data/lib/axlsx/drawing/vml_shape.rb +66 -0
  75. data/lib/axlsx/package.rb +352 -0
  76. data/lib/axlsx/rels/relationship.rb +129 -0
  77. data/lib/axlsx/rels/relationships.rb +29 -0
  78. data/lib/axlsx/stylesheet/border.rb +71 -0
  79. data/lib/axlsx/stylesheet/border_pr.rb +71 -0
  80. data/lib/axlsx/stylesheet/cell_alignment.rb +134 -0
  81. data/lib/axlsx/stylesheet/cell_protection.rb +43 -0
  82. data/lib/axlsx/stylesheet/cell_style.rb +74 -0
  83. data/lib/axlsx/stylesheet/color.rb +78 -0
  84. data/lib/axlsx/stylesheet/dxf.rb +79 -0
  85. data/lib/axlsx/stylesheet/fill.rb +35 -0
  86. data/lib/axlsx/stylesheet/font.rb +148 -0
  87. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -0
  88. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -0
  89. data/lib/axlsx/stylesheet/num_fmt.rb +79 -0
  90. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -0
  91. data/lib/axlsx/stylesheet/styles.rb +420 -0
  92. data/lib/axlsx/stylesheet/table_style.rb +54 -0
  93. data/lib/axlsx/stylesheet/table_style_element.rb +79 -0
  94. data/lib/axlsx/stylesheet/table_styles.rb +46 -0
  95. data/lib/axlsx/stylesheet/xf.rb +147 -0
  96. data/lib/axlsx/util/accessors.rb +64 -0
  97. data/lib/axlsx/util/constants.rb +392 -0
  98. data/lib/axlsx/util/options_parser.rb +15 -0
  99. data/lib/axlsx/util/parser.rb +44 -0
  100. data/lib/axlsx/util/serialized_attributes.rb +79 -0
  101. data/lib/axlsx/util/simple_typed_list.rb +203 -0
  102. data/lib/axlsx/util/storage.rb +146 -0
  103. data/lib/axlsx/util/validators.rb +300 -0
  104. data/lib/axlsx/version.rb +5 -0
  105. data/lib/axlsx/workbook/defined_name.rb +129 -0
  106. data/lib/axlsx/workbook/defined_names.rb +21 -0
  107. data/lib/axlsx/workbook/shared_strings_table.rb +77 -0
  108. data/lib/axlsx/workbook/workbook.rb +354 -0
  109. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -0
  110. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -0
  111. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +246 -0
  112. data/lib/axlsx/workbook/worksheet/break.rb +37 -0
  113. data/lib/axlsx/workbook/worksheet/cell.rb +416 -0
  114. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +144 -0
  115. data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
  116. data/lib/axlsx/workbook/worksheet/cfvos.rb +15 -0
  117. data/lib/axlsx/workbook/worksheet/col.rb +144 -0
  118. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -0
  119. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -0
  120. data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
  121. data/lib/axlsx/workbook/worksheet/comment.rb +92 -0
  122. data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
  123. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -0
  124. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -0
  125. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
  126. data/lib/axlsx/workbook/worksheet/data_bar.rb +131 -0
  127. data/lib/axlsx/workbook/worksheet/data_validation.rb +244 -0
  128. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
  129. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -0
  130. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -0
  131. data/lib/axlsx/workbook/worksheet/header_footer.rb +54 -0
  132. data/lib/axlsx/workbook/worksheet/icon_set.rb +83 -0
  133. data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
  134. data/lib/axlsx/workbook/worksheet/page_margins.rb +99 -0
  135. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -0
  136. data/lib/axlsx/workbook/worksheet/page_setup.rb +242 -0
  137. data/lib/axlsx/workbook/worksheet/pane.rb +141 -0
  138. data/lib/axlsx/workbook/worksheet/pivot_table.rb +273 -0
  139. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -0
  140. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -0
  141. data/lib/axlsx/workbook/worksheet/print_options.rb +41 -0
  142. data/lib/axlsx/workbook/worksheet/protected_range.rb +49 -0
  143. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
  144. data/lib/axlsx/workbook/worksheet/row.rb +172 -0
  145. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
  146. data/lib/axlsx/workbook/worksheet/selection.rb +103 -0
  147. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -0
  148. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
  149. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +60 -0
  150. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +69 -0
  151. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +120 -0
  152. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -0
  153. data/lib/axlsx/workbook/worksheet/table.rb +102 -0
  154. data/lib/axlsx/workbook/worksheet/table_style_info.rb +51 -0
  155. data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
  156. data/lib/axlsx/workbook/worksheet/worksheet.rb +769 -0
  157. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -0
  158. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -0
  159. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -0
  160. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -0
  161. data/lib/schema/dc.xsd +118 -0
  162. data/lib/schema/dcmitype.xsd +52 -0
  163. data/lib/schema/dcterms.xsd +331 -0
  164. data/lib/schema/dml-chart.xsd +1499 -0
  165. data/lib/schema/dml-chartDrawing.xsd +146 -0
  166. data/lib/schema/dml-compatibility.xsd +14 -0
  167. data/lib/schema/dml-diagram.xsd +1091 -0
  168. data/lib/schema/dml-lockedCanvas.xsd +11 -0
  169. data/lib/schema/dml-main.xsd +3048 -0
  170. data/lib/schema/dml-picture.xsd +23 -0
  171. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -0
  172. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -0
  173. data/lib/schema/opc-contentTypes.xsd +42 -0
  174. data/lib/schema/opc-coreProperties.xsd +54 -0
  175. data/lib/schema/opc-digSig.xsd +49 -0
  176. data/lib/schema/opc-relationships.xsd +33 -0
  177. data/lib/schema/pml.xsd +1676 -0
  178. data/lib/schema/shared-additionalCharacteristics.xsd +28 -0
  179. data/lib/schema/shared-bibliography.xsd +144 -0
  180. data/lib/schema/shared-commonSimpleTypes.xsd +166 -0
  181. data/lib/schema/shared-customXmlDataProperties.xsd +25 -0
  182. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -0
  183. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -0
  184. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -0
  185. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -0
  186. data/lib/schema/shared-math.xsd +582 -0
  187. data/lib/schema/shared-relationshipReference.xsd +25 -0
  188. data/lib/schema/sml.xsd +4434 -0
  189. data/lib/schema/vml-main.xsd +569 -0
  190. data/lib/schema/vml-officeDrawing.xsd +509 -0
  191. data/lib/schema/vml-presentationDrawing.xsd +12 -0
  192. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -0
  193. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -0
  194. data/lib/schema/wml.xsd +3644 -0
  195. data/lib/schema/xml.xsd +116 -0
  196. data/test/benchmark.rb +72 -0
  197. data/test/content_type/tc_content_type.rb +76 -0
  198. data/test/content_type/tc_default.rb +16 -0
  199. data/test/content_type/tc_override.rb +14 -0
  200. data/test/doc_props/tc_app.rb +43 -0
  201. data/test/doc_props/tc_core.rb +42 -0
  202. data/test/drawing/tc_axes.rb +8 -0
  203. data/test/drawing/tc_axis.rb +85 -0
  204. data/test/drawing/tc_bar_3D_chart.rb +71 -0
  205. data/test/drawing/tc_bar_series.rb +37 -0
  206. data/test/drawing/tc_cat_axis.rb +31 -0
  207. data/test/drawing/tc_cat_axis_data.rb +27 -0
  208. data/test/drawing/tc_chart.rb +110 -0
  209. data/test/drawing/tc_d_lbls.rb +57 -0
  210. data/test/drawing/tc_data_source.rb +17 -0
  211. data/test/drawing/tc_drawing.rb +80 -0
  212. data/test/drawing/tc_graphic_frame.rb +27 -0
  213. data/test/drawing/tc_hyperlink.rb +64 -0
  214. data/test/drawing/tc_line_3d_chart.rb +47 -0
  215. data/test/drawing/tc_line_chart.rb +39 -0
  216. data/test/drawing/tc_line_series.rb +30 -0
  217. data/test/drawing/tc_marker.rb +44 -0
  218. data/test/drawing/tc_named_axis_data.rb +27 -0
  219. data/test/drawing/tc_num_data.rb +31 -0
  220. data/test/drawing/tc_num_val.rb +29 -0
  221. data/test/drawing/tc_one_cell_anchor.rb +66 -0
  222. data/test/drawing/tc_pic.rb +107 -0
  223. data/test/drawing/tc_picture_locking.rb +72 -0
  224. data/test/drawing/tc_pie_3D_chart.rb +28 -0
  225. data/test/drawing/tc_pie_series.rb +32 -0
  226. data/test/drawing/tc_scaling.rb +36 -0
  227. data/test/drawing/tc_scatter_chart.rb +48 -0
  228. data/test/drawing/tc_scatter_series.rb +21 -0
  229. data/test/drawing/tc_ser_axis.rb +31 -0
  230. data/test/drawing/tc_series.rb +23 -0
  231. data/test/drawing/tc_series_title.rb +33 -0
  232. data/test/drawing/tc_str_data.rb +18 -0
  233. data/test/drawing/tc_str_val.rb +21 -0
  234. data/test/drawing/tc_title.rb +49 -0
  235. data/test/drawing/tc_two_cell_anchor.rb +36 -0
  236. data/test/drawing/tc_val_axis.rb +24 -0
  237. data/test/drawing/tc_view_3D.rb +54 -0
  238. data/test/drawing/tc_vml_drawing.rb +25 -0
  239. data/test/drawing/tc_vml_shape.rb +106 -0
  240. data/test/profile.rb +24 -0
  241. data/test/rels/tc_relationship.rb +44 -0
  242. data/test/rels/tc_relationships.rb +37 -0
  243. data/test/stylesheet/tc_border.rb +37 -0
  244. data/test/stylesheet/tc_border_pr.rb +32 -0
  245. data/test/stylesheet/tc_cell_alignment.rb +81 -0
  246. data/test/stylesheet/tc_cell_protection.rb +29 -0
  247. data/test/stylesheet/tc_cell_style.rb +57 -0
  248. data/test/stylesheet/tc_color.rb +43 -0
  249. data/test/stylesheet/tc_dxf.rb +81 -0
  250. data/test/stylesheet/tc_fill.rb +18 -0
  251. data/test/stylesheet/tc_font.rb +121 -0
  252. data/test/stylesheet/tc_gradient_fill.rb +72 -0
  253. data/test/stylesheet/tc_gradient_stop.rb +31 -0
  254. data/test/stylesheet/tc_num_fmt.rb +30 -0
  255. data/test/stylesheet/tc_pattern_fill.rb +43 -0
  256. data/test/stylesheet/tc_styles.rb +235 -0
  257. data/test/stylesheet/tc_table_style.rb +44 -0
  258. data/test/stylesheet/tc_table_style_element.rb +45 -0
  259. data/test/stylesheet/tc_table_styles.rb +29 -0
  260. data/test/stylesheet/tc_xf.rb +120 -0
  261. data/test/tc_axlsx.rb +72 -0
  262. data/test/tc_helper.rb +10 -0
  263. data/test/tc_package.rb +227 -0
  264. data/test/util/tc_serialized_attributes.rb +19 -0
  265. data/test/util/tc_simple_typed_list.rb +78 -0
  266. data/test/util/tc_validators.rb +186 -0
  267. data/test/workbook/tc_defined_name.rb +41 -0
  268. data/test/workbook/tc_shared_strings_table.rb +44 -0
  269. data/test/workbook/tc_workbook.rb +125 -0
  270. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -0
  271. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -0
  272. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -0
  273. data/test/workbook/worksheet/tc_break.rb +49 -0
  274. data/test/workbook/worksheet/tc_cell.rb +319 -0
  275. data/test/workbook/worksheet/tc_cfvo.rb +31 -0
  276. data/test/workbook/worksheet/tc_col.rb +78 -0
  277. data/test/workbook/worksheet/tc_color_scale.rb +58 -0
  278. data/test/workbook/worksheet/tc_comment.rb +72 -0
  279. data/test/workbook/worksheet/tc_comments.rb +57 -0
  280. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -0
  281. data/test/workbook/worksheet/tc_data_bar.rb +46 -0
  282. data/test/workbook/worksheet/tc_data_validation.rb +265 -0
  283. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -0
  284. data/test/workbook/worksheet/tc_header_footer.rb +151 -0
  285. data/test/workbook/worksheet/tc_icon_set.rb +45 -0
  286. data/test/workbook/worksheet/tc_page_margins.rb +97 -0
  287. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -0
  288. data/test/workbook/worksheet/tc_page_setup.rb +143 -0
  289. data/test/workbook/worksheet/tc_pane.rb +54 -0
  290. data/test/workbook/worksheet/tc_pivot_table.rb +120 -0
  291. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +54 -0
  292. data/test/workbook/worksheet/tc_print_options.rb +72 -0
  293. data/test/workbook/worksheet/tc_protected_range.rb +17 -0
  294. data/test/workbook/worksheet/tc_row.rb +117 -0
  295. data/test/workbook/worksheet/tc_selection.rb +55 -0
  296. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -0
  297. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -0
  298. data/test/workbook/worksheet/tc_sheet_pr.rb +27 -0
  299. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
  300. data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
  301. data/test/workbook/worksheet/tc_table.rb +68 -0
  302. data/test/workbook/worksheet/tc_table_style_info.rb +53 -0
  303. data/test/workbook/worksheet/tc_worksheet.rb +538 -0
  304. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
  305. metadata +546 -0
@@ -0,0 +1,54 @@
1
+ require 'tc_helper.rb'
2
+
3
+ class TestPivotTableCacheDefinition < Test::Unit::TestCase
4
+ def setup
5
+ p = Axlsx::Package.new
6
+ @ws = p.workbook.add_worksheet
7
+ 5.times do
8
+ @ws << ["aa","aa","aa","aa"]
9
+ end
10
+ @pivot_table = @ws.add_pivot_table('G5:G6', 'A1:D5')
11
+ @cache_definition = @pivot_table.cache_definition
12
+ end
13
+
14
+ def test_initialization
15
+ assert(@cache_definition.is_a?(Axlsx::PivotTableCacheDefinition), "must create a pivot table cache definition")
16
+ assert_equal(@pivot_table, @cache_definition.pivot_table, 'refers back to its pivot table')
17
+ end
18
+
19
+ def test_pn
20
+ assert_equal('pivotCache/pivotCacheDefinition1.xml', @cache_definition.pn)
21
+ end
22
+
23
+ def test_rId
24
+ assert_equal @pivot_table.relationships.for(@cache_definition).Id, @cache_definition.rId
25
+ end
26
+
27
+ def test_index
28
+ assert_equal(0, @cache_definition.index)
29
+ end
30
+
31
+ def test_cache_id
32
+ assert_equal(1, @cache_definition.cache_id)
33
+ end
34
+
35
+ def test_data_sheet
36
+ data_sheet = @ws.clone
37
+ data_sheet.name = "Pivot Table Data Source"
38
+ @pivot_table.data_sheet = data_sheet
39
+
40
+ assert(@cache_definition.to_xml_string.include?(data_sheet.name), "must set the data source correctly")
41
+ end
42
+
43
+ def test_to_xml_string
44
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD))
45
+ doc = Nokogiri::XML(@cache_definition.to_xml_string)
46
+ errors = []
47
+ schema.validate(doc).each do |error|
48
+ errors.push error
49
+ puts error.message
50
+ end
51
+ assert(errors.empty?, "error free validation")
52
+ end
53
+
54
+ end
@@ -0,0 +1,72 @@
1
+ require 'tc_helper.rb'
2
+
3
+ class TestPrintOptions < Test::Unit::TestCase
4
+
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ ws = p.workbook.add_worksheet :name => "hmmm"
8
+ @po = ws.print_options
9
+ end
10
+
11
+ def test_initialize
12
+ assert_equal(false, @po.grid_lines)
13
+ assert_equal(false, @po.headings)
14
+ assert_equal(false, @po.horizontal_centered)
15
+ assert_equal(false, @po.vertical_centered)
16
+ end
17
+
18
+ def test_initialize_with_options
19
+ optioned = Axlsx::PrintOptions.new(:grid_lines => true, :headings => true, :horizontal_centered => true, :vertical_centered => true)
20
+ assert_equal(true, optioned.grid_lines)
21
+ assert_equal(true, optioned.headings)
22
+ assert_equal(true, optioned.horizontal_centered)
23
+ assert_equal(true, optioned.vertical_centered)
24
+ end
25
+
26
+ def test_set_all_values
27
+ @po.set(:grid_lines => true, :headings => true, :horizontal_centered => true, :vertical_centered => true)
28
+ assert_equal(true, @po.grid_lines)
29
+ assert_equal(true, @po.headings)
30
+ assert_equal(true, @po.horizontal_centered)
31
+ assert_equal(true, @po.vertical_centered)
32
+ end
33
+
34
+ def test_set_some_values
35
+ @po.set(:grid_lines => true, :headings => true)
36
+ assert_equal(true, @po.grid_lines)
37
+ assert_equal(true, @po.headings)
38
+ assert_equal(false, @po.horizontal_centered)
39
+ assert_equal(false, @po.vertical_centered)
40
+ end
41
+
42
+ def test_to_xml
43
+ @po.set(:grid_lines => true, :headings => true, :horizontal_centered => true, :vertical_centered => true)
44
+ doc = Nokogiri::XML.parse(@po.to_xml_string)
45
+ assert_equal(1, doc.xpath(".//printOptions[@gridLines='true'][@headings='true'][@horizontalCentered='true'][@verticalCentered='true']").size)
46
+ end
47
+
48
+ def test_grid_lines
49
+ assert_raise(ArgumentError) { @po.grid_lines = 99 }
50
+ assert_nothing_raised { @po.grid_lines = true }
51
+ assert_equal(@po.grid_lines, true)
52
+ end
53
+
54
+ def test_headings
55
+ assert_raise(ArgumentError) { @po.headings = 99 }
56
+ assert_nothing_raised { @po.headings = true }
57
+ assert_equal(@po.headings, true)
58
+ end
59
+
60
+ def test_horizontal_centered
61
+ assert_raise(ArgumentError) { @po.horizontal_centered = 99 }
62
+ assert_nothing_raised { @po.horizontal_centered = true }
63
+ assert_equal(@po.horizontal_centered, true)
64
+ end
65
+
66
+ def test_vertical_centered
67
+ assert_raise(ArgumentError) { @po.vertical_centered = 99 }
68
+ assert_nothing_raised { @po.vertical_centered = true }
69
+ assert_equal(@po.vertical_centered, true)
70
+ end
71
+
72
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: UTF-8
2
+ require 'tc_helper.rb'
3
+ class TestProtectedRange < Test::Unit::TestCase
4
+ def setup
5
+ @p = Axlsx::Package.new
6
+ @ws = @p.workbook.add_worksheet { |sheet| sheet.add_row [1,2,3,4,5,6,7,8,9] }
7
+ end
8
+
9
+ def test_initialize_options
10
+ assert_nothing_raised {Axlsx::ProtectedRange.new(:sqref => 'A1:B1', :name => "only bob")}
11
+ end
12
+
13
+ def test_range
14
+ r = @ws.protect_range('A1:B1')
15
+ assert_equal('A1:B1', r.sqref)
16
+ end
17
+ end
@@ -0,0 +1,117 @@
1
+ require 'tc_helper.rb'
2
+
3
+ class TestRow < Test::Unit::TestCase
4
+
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
8
+ @row = @ws.add_row
9
+ end
10
+
11
+ def test_initialize
12
+ assert(@row.cells.empty?, "no cells by default")
13
+ assert_equal(@row.worksheet, @ws, "has a reference to the worksheet")
14
+ assert_nil(@row.height, "height defaults to nil")
15
+ assert(!@row.custom_height, "no custom height by default")
16
+ end
17
+
18
+ def test_initialize_with_fixed_height
19
+ row = @ws.add_row([1,2,3,4,5], :height=>40)
20
+ assert_equal(40, row.height)
21
+ assert(row.custom_height)
22
+ end
23
+
24
+ def test_style
25
+ r = @ws.add_row([1,2,3,4,5])
26
+ r.style=1
27
+ r.cells.each { |c| assert_equal(c.style,1) }
28
+ end
29
+
30
+
31
+ def test_index
32
+ assert_equal(@row.index, @row.worksheet.rows.index(@row))
33
+ end
34
+
35
+ def test_add_cell
36
+ c = @row.add_cell(1)
37
+ assert_equal(@row.cells.last, c)
38
+ end
39
+
40
+ def test_add_cell_autowidth_info
41
+ cell = @row.add_cell("this is the cell of cells")
42
+ width = cell.send(:autowidth)
43
+ assert_equal(@ws.column_info.last.width, width)
44
+ end
45
+
46
+ def test_array_to_cells
47
+ r = @ws.add_row [1,2,3], :style=>1, :types=>[:integer, :string, :float]
48
+ assert_equal(r.cells.size, 3)
49
+ r.cells.each do |c|
50
+ assert_equal(c.style, 1)
51
+ end
52
+ r = @ws.add_row [1,2,3], :style=>[1]
53
+ assert_equal(r.cells.first.style, 1, "only apply style to cells with at the same index of of the style array")
54
+ assert_equal(r.cells.last.style, 0, "only apply style to cells with at the same index of of the style array")
55
+
56
+ end
57
+
58
+ def test_custom_height
59
+ @row.height = 20
60
+ assert(@row.custom_height)
61
+ end
62
+
63
+ def test_height
64
+ assert_raise(ArgumentError) { @row.height = -3 }
65
+ assert_nothing_raised { @row.height = 15 }
66
+ assert_equal(15, @row.height)
67
+ end
68
+
69
+
70
+ def test_ph
71
+ assert_raise(ArgumentError) { @row.ph = -3 }
72
+ assert_nothing_raised { @row.ph = true }
73
+ assert_equal(true, @row.ph)
74
+ end
75
+
76
+ def test_hidden
77
+ assert_raise(ArgumentError) { @row.hidden = -3 }
78
+ assert_nothing_raised { @row.hidden = true }
79
+ assert_equal(true, @row.hidden)
80
+ end
81
+
82
+ def test_collapsed
83
+ assert_raise(ArgumentError) { @row.collapsed = -3 }
84
+ assert_nothing_raised { @row.collapsed = true }
85
+ assert_equal(true, @row.collapsed)
86
+ end
87
+
88
+ def test_outlineLevel
89
+ assert_raise(ArgumentError) { @row.outlineLevel = -3 }
90
+ assert_nothing_raised { @row.outlineLevel = 2 }
91
+ assert_equal(2, @row.outlineLevel)
92
+ end
93
+
94
+ def test_to_xml_without_custom_height
95
+ doc = Nokogiri::XML.parse(@row.to_xml_string(0))
96
+ assert_equal(0, doc.xpath(".//row[@ht]").size)
97
+ assert_equal(0, doc.xpath(".//row[@customHeight]").size)
98
+ end
99
+
100
+ def test_to_xml_string
101
+ @row.height = 20
102
+ @row.s = 1
103
+ @row.outlineLevel = 2
104
+ @row.collapsed = true
105
+ @row.hidden = true
106
+ r_s_xml = Nokogiri::XML(@row.to_xml_string(0, ''))
107
+ assert_equal(r_s_xml.xpath(".//row[@r=1]").size, 1)
108
+ end
109
+
110
+ def test_to_xml_string_with_custom_height
111
+ @row.add_cell 1
112
+ @row.height = 20
113
+ r_s_xml = Nokogiri::XML(@row.to_xml_string(0, ''))
114
+ assert_equal(r_s_xml.xpath(".//row[@r=1][@ht=20][@customHeight='true']").size, 1)
115
+ end
116
+
117
+ end
@@ -0,0 +1,55 @@
1
+ # encoding: UTF-8
2
+ require 'tc_helper.rb'
3
+
4
+ class TestSelection < Test::Unit::TestCase
5
+ def setup
6
+ @options = { :active_cell => 'A2', :active_cell_id => 1, :pane => :top_left, :sqref => 'A2' }
7
+ @selection = Axlsx::Selection.new(@options)
8
+ end
9
+
10
+ def test_active_cell
11
+ assert_raise(ArgumentError) { @selection.active_cell = :active_cell }
12
+ assert_nothing_raised { @selection.active_cell = "F5" }
13
+ assert_equal(@selection.active_cell, "F5")
14
+ end
15
+
16
+ def test_active_cell_id
17
+ assert_raise(ArgumentError) { @selection.active_cell_id = "foo" }
18
+ assert_nothing_raised { @selection.active_cell_id = 11 }
19
+ assert_equal(@selection.active_cell_id, 11)
20
+ end
21
+
22
+ def test_pane
23
+ assert_raise(ArgumentError) { @selection.pane = "foo´" }
24
+ assert_nothing_raised { @selection.pane = :bottom_right }
25
+ assert_equal(@selection.pane, "bottomRight")
26
+ end
27
+
28
+ def test_sqref
29
+ assert_raise(ArgumentError) { @selection.sqref = :sqref }
30
+ assert_nothing_raised { @selection.sqref = "G32" }
31
+ assert_equal(@selection.sqref, "G32")
32
+ end
33
+
34
+ def test_to_xml
35
+ p = Axlsx::Package.new
36
+ @ws = p.workbook.add_worksheet :name => "sheetview"
37
+ @ws.sheet_view do |vs|
38
+ vs.add_selection(:top_left, { :active_cell => 'B2', :sqref => 'B2' })
39
+ vs.add_selection(:top_right, { :active_cell => 'I10', :sqref => 'I10' })
40
+ vs.add_selection(:bottom_left, { :active_cell => 'E55', :sqref => 'E55' })
41
+ vs.add_selection(:bottom_right, { :active_cell => 'I57', :sqref => 'I57' })
42
+ end
43
+
44
+ doc = Nokogiri::XML.parse(@ws.to_xml_string)
45
+
46
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']").size)
47
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='B2'][@pane='topLeft'][@activeCell='B2']")
48
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']").size)
49
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I10'][@pane='topRight'][@activeCell='I10']")
50
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']").size)
51
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='E55'][@pane='bottomLeft'][@activeCell='E55']")
52
+ assert_equal(1, doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']").size)
53
+ assert doc.xpath("//xmlns:worksheet/xmlns:sheetViews/xmlns:sheetView/xmlns:selection[@sqref='I57'][@pane='bottomRight'][@activeCell='I57']")
54
+ end
55
+ end
@@ -0,0 +1,18 @@
1
+ require 'tc_helper'
2
+
3
+ class TestSheetCalcPr < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @sheet_calc_pr = Axlsx::SheetCalcPr.new(:full_calc_on_load => false)
7
+ end
8
+
9
+ def test_full_calc_on_load
10
+ assert_equal false, @sheet_calc_pr.full_calc_on_load
11
+ assert Axlsx::SheetCalcPr.new.full_calc_on_load
12
+ end
13
+
14
+ def test_to_xml_string
15
+ doc = Nokogiri::XML(@sheet_calc_pr.to_xml_string)
16
+ assert_equal 1, doc.xpath('//sheetCalcPr[@fullCalcOnLoad="false"]').size
17
+ end
18
+ end
@@ -0,0 +1,88 @@
1
+ require 'tc_helper.rb'
2
+
3
+ class TestSheetFormatPr < Test::Unit::TestCase
4
+
5
+ def setup
6
+ @options = {
7
+ :base_col_width => 5,
8
+ :default_col_width => 7.2,
9
+ :default_row_height => 5.2,
10
+ :custom_height => true,
11
+ :zero_height => false,
12
+ :thick_top => true,
13
+ :thick_bottom => true,
14
+ :outline_level_row => 0,
15
+ :outline_level_col => 0
16
+ }
17
+ @sheet_format_pr = Axlsx::SheetFormatPr.new(@options)
18
+ end
19
+
20
+ def test_default_initialization
21
+ sheet_format_pr = Axlsx::SheetFormatPr.new
22
+ assert_equal 8, sheet_format_pr.base_col_width
23
+ assert_equal 18, sheet_format_pr.default_row_height
24
+ end
25
+
26
+ def test_initialization_with_options
27
+ @options.each do |key, value|
28
+ assert_equal value, @sheet_format_pr.instance_variable_get("@#{key}")
29
+ end
30
+ end
31
+
32
+ def test_base_col_width
33
+ assert_raise(ArgumentError) { @sheet_format_pr.base_col_width = :foo }
34
+ assert_nothing_raised { @sheet_format_pr.base_col_width = 1 }
35
+ end
36
+
37
+ def test_outline_level_row
38
+ assert_raise(ArgumentError) { @sheet_format_pr.outline_level_row = :foo }
39
+ assert_nothing_raised { @sheet_format_pr.outline_level_row = 1 }
40
+ end
41
+
42
+ def test_outline_level_col
43
+ assert_raise(ArgumentError) { @sheet_format_pr.outline_level_col = :foo }
44
+ assert_nothing_raised { @sheet_format_pr.outline_level_col = 1 }
45
+ end
46
+
47
+ def test_default_row_height
48
+ assert_raise(ArgumentError) { @sheet_format_pr.default_row_height = :foo }
49
+ assert_nothing_raised { @sheet_format_pr.default_row_height= 1.0 }
50
+ end
51
+
52
+ def test_default_col_width
53
+ assert_raise(ArgumentError) { @sheet_format_pr.default_col_width= :foo }
54
+ assert_nothing_raised { @sheet_format_pr.default_col_width = 1.0 }
55
+ end
56
+
57
+ def test_custom_height
58
+ assert_raise(ArgumentError) { @sheet_format_pr.custom_height= :foo }
59
+ assert_nothing_raised { @sheet_format_pr.custom_height = true }
60
+ end
61
+
62
+ def test_zero_height
63
+ assert_raise(ArgumentError) { @sheet_format_pr.zero_height= :foo }
64
+ assert_nothing_raised { @sheet_format_pr.zero_height = true }
65
+ end
66
+ def test_thick_top
67
+ assert_raise(ArgumentError) { @sheet_format_pr.thick_top= :foo }
68
+ assert_nothing_raised { @sheet_format_pr.thick_top = true }
69
+ end
70
+ def test_thick_bottom
71
+ assert_raise(ArgumentError) { @sheet_format_pr.thick_bottom= :foo }
72
+ assert_nothing_raised { @sheet_format_pr.thick_bottom = true }
73
+ end
74
+
75
+ def test_to_xml_string
76
+ doc = Nokogiri::XML(@sheet_format_pr.to_xml_string)
77
+ assert doc.xpath("sheetFormatPr[@thickBottom='true']")
78
+ assert doc.xpath("sheetFormatPr[@baseColWidth=5]")
79
+ assert doc.xpath("sheetFormatPr[@default_col_width=7.2]")
80
+ assert doc.xpath("sheetFormatPr[@default_row_height=5.2]")
81
+ assert doc.xpath("sheetFormatPr[@custom_height='true']")
82
+ assert doc.xpath("sheetFormatPr[@zero_height='false']")
83
+ assert doc.xpath("sheetFormatPr[@thick_top='true']")
84
+ assert doc.xpath("sheetFormatPr[@outline_level_row=0]")
85
+ assert doc.xpath("sheetFormatPr[@outline_level_col=0]")
86
+ end
87
+
88
+ end
@@ -0,0 +1,27 @@
1
+ require 'tc_helper.rb'
2
+
3
+
4
+ class TestSheetPr < Test::Unit::TestCase
5
+
6
+ def setup
7
+ worksheet = Axlsx::Package.new.workbook.add_worksheet
8
+ @options = {
9
+ :sync_horizontal => false,
10
+ :sync_vertical => false,
11
+ :transtion_evaluation => true,
12
+ :transition_entry => true,
13
+ :published => false,
14
+ :filter_mode => true,
15
+ :enable_format_conditions_calculation => false,
16
+ :code_name => '007',
17
+ :sync_ref => 'foo'
18
+ }
19
+ @sheet_pr = Axlsx::SheetPr.new(worksheet, @options)
20
+ end
21
+
22
+ def test_initialization
23
+ @options.each do |key, value|
24
+ assert_equal value, @sheet_pr.send(key)
25
+ end
26
+ end
27
+ end