caxlsx 3.2.0 → 3.4.0

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 (301) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +394 -354
  5. data/LICENSE +21 -21
  6. data/README.md +184 -168
  7. data/Rakefile +28 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +29 -32
  10. data/lib/axlsx/content_type/content_type.rb +22 -26
  11. data/lib/axlsx/content_type/default.rb +21 -25
  12. data/lib/axlsx/content_type/override.rb +21 -25
  13. data/lib/axlsx/doc_props/app.rb +230 -235
  14. data/lib/axlsx/doc_props/core.rb +34 -39
  15. data/lib/axlsx/drawing/area_chart.rb +96 -99
  16. data/lib/axlsx/drawing/area_series.rb +107 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +21 -26
  18. data/lib/axlsx/drawing/axes.rb +60 -61
  19. data/lib/axlsx/drawing/axis.rb +185 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +145 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +135 -138
  22. data/lib/axlsx/drawing/bar_series.rb +91 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +56 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +60 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +80 -85
  26. data/lib/axlsx/drawing/chart.rb +294 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +92 -90
  28. data/lib/axlsx/drawing/drawing.rb +163 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +51 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +97 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +64 -68
  32. data/lib/axlsx/drawing/line_chart.rb +96 -99
  33. data/lib/axlsx/drawing/line_series.rb +107 -110
  34. data/lib/axlsx/drawing/marker.rb +80 -84
  35. data/lib/axlsx/drawing/num_data.rb +47 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +58 -62
  37. data/lib/axlsx/drawing/num_val.rb +31 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +97 -99
  39. data/lib/axlsx/drawing/pic.rb +244 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +39 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +42 -47
  42. data/lib/axlsx/drawing/pie_series.rb +69 -74
  43. data/lib/axlsx/drawing/scaling.rb +57 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +71 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +126 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +41 -45
  47. data/lib/axlsx/drawing/series.rb +67 -69
  48. data/lib/axlsx/drawing/series_title.rb +23 -25
  49. data/lib/axlsx/drawing/str_data.rb +37 -42
  50. data/lib/axlsx/drawing/str_val.rb +31 -34
  51. data/lib/axlsx/drawing/title.rb +104 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +95 -97
  53. data/lib/axlsx/drawing/val_axis.rb +34 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +39 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +63 -66
  57. data/lib/axlsx/package.rb +397 -388
  58. data/lib/axlsx/rels/relationship.rb +127 -130
  59. data/lib/axlsx/rels/relationships.rb +29 -32
  60. data/lib/axlsx/stylesheet/border.rb +70 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +69 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +124 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +38 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +68 -72
  65. data/lib/axlsx/stylesheet/color.rb +77 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +75 -79
  67. data/lib/axlsx/stylesheet/fill.rb +31 -35
  68. data/lib/axlsx/stylesheet/font.rb +157 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +101 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +36 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +83 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +71 -73
  73. data/lib/axlsx/stylesheet/styles.rb +543 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +51 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +74 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +42 -46
  77. data/lib/axlsx/stylesheet/xf.rb +144 -147
  78. data/lib/axlsx/util/accessors.rb +62 -64
  79. data/lib/axlsx/util/constants.rb +414 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +24 -11
  81. data/lib/axlsx/util/options_parser.rb +15 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +88 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +180 -179
  84. data/lib/axlsx/util/storage.rb +142 -146
  85. data/lib/axlsx/util/validators.rb +315 -312
  86. data/lib/axlsx/util/zip_command.rb +71 -73
  87. data/lib/axlsx/version.rb +4 -5
  88. data/lib/axlsx/workbook/defined_name.rb +129 -128
  89. data/lib/axlsx/workbook/defined_names.rb +20 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +74 -77
  91. data/lib/axlsx/workbook/workbook.rb +430 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +75 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +20 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +78 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +243 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +79 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +32 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +552 -506
  100. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  101. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  102. data/lib/axlsx/workbook/worksheet/cfvos.rb +16 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +142 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +34 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +108 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +90 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +78 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +81 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +216 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +23 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +127 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +266 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +25 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +28 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +65 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +51 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +80 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +32 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +42 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +237 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +138 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +332 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +63 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +23 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +38 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +53 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +266 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +173 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +32 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +99 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +28 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +18 -18
  139. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  140. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +117 -118
  141. data/lib/axlsx/workbook/worksheet/sheet_view.rb +206 -213
  142. data/lib/axlsx/workbook/worksheet/table.rb +100 -102
  143. data/lib/axlsx/workbook/worksheet/table_style_info.rb +48 -49
  144. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  145. data/lib/axlsx/workbook/worksheet/worksheet.rb +857 -786
  146. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +59 -58
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +73 -74
  149. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  150. data/lib/axlsx.rb +218 -185
  151. data/lib/caxlsx.rb +1 -2
  152. data/lib/schema/dc.xsd +118 -118
  153. data/lib/schema/dcmitype.xsd +51 -51
  154. data/lib/schema/dcterms.xsd +331 -331
  155. data/lib/schema/dml-chartDrawing.xsd +146 -146
  156. data/lib/schema/dml-compatibility.xsd +14 -14
  157. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  158. data/lib/schema/dml-main.xsd +3048 -3048
  159. data/lib/schema/dml-picture.xsd +23 -23
  160. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  161. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  162. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  163. data/lib/schema/shared-bibliography.xsd +144 -144
  164. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  165. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  166. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  167. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  168. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  169. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  170. data/lib/schema/shared-relationshipReference.xsd +25 -25
  171. data/lib/schema/vml-main.xsd +569 -569
  172. data/lib/schema/vml-officeDrawing.xsd +509 -509
  173. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  174. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  175. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  176. data/lib/schema/xml.xsd +116 -116
  177. metadata +5 -252
  178. data/test/benchmark.rb +0 -72
  179. data/test/content_type/tc_content_type.rb +0 -76
  180. data/test/content_type/tc_default.rb +0 -16
  181. data/test/content_type/tc_override.rb +0 -14
  182. data/test/doc_props/tc_app.rb +0 -43
  183. data/test/doc_props/tc_core.rb +0 -42
  184. data/test/drawing/tc_area_chart.rb +0 -39
  185. data/test/drawing/tc_area_series.rb +0 -71
  186. data/test/drawing/tc_axes.rb +0 -8
  187. data/test/drawing/tc_axis.rb +0 -112
  188. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  189. data/test/drawing/tc_bar_chart.rb +0 -86
  190. data/test/drawing/tc_bar_series.rb +0 -46
  191. data/test/drawing/tc_bubble_chart.rb +0 -44
  192. data/test/drawing/tc_bubble_series.rb +0 -21
  193. data/test/drawing/tc_cat_axis.rb +0 -31
  194. data/test/drawing/tc_cat_axis_data.rb +0 -27
  195. data/test/drawing/tc_chart.rb +0 -123
  196. data/test/drawing/tc_d_lbls.rb +0 -57
  197. data/test/drawing/tc_data_source.rb +0 -23
  198. data/test/drawing/tc_drawing.rb +0 -80
  199. data/test/drawing/tc_graphic_frame.rb +0 -27
  200. data/test/drawing/tc_hyperlink.rb +0 -64
  201. data/test/drawing/tc_line_3d_chart.rb +0 -47
  202. data/test/drawing/tc_line_chart.rb +0 -39
  203. data/test/drawing/tc_line_series.rb +0 -71
  204. data/test/drawing/tc_marker.rb +0 -44
  205. data/test/drawing/tc_named_axis_data.rb +0 -27
  206. data/test/drawing/tc_num_data.rb +0 -31
  207. data/test/drawing/tc_num_val.rb +0 -29
  208. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  209. data/test/drawing/tc_pic.rb +0 -103
  210. data/test/drawing/tc_picture_locking.rb +0 -72
  211. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  212. data/test/drawing/tc_pie_series.rb +0 -33
  213. data/test/drawing/tc_scaling.rb +0 -36
  214. data/test/drawing/tc_scatter_chart.rb +0 -48
  215. data/test/drawing/tc_scatter_series.rb +0 -74
  216. data/test/drawing/tc_ser_axis.rb +0 -31
  217. data/test/drawing/tc_series.rb +0 -23
  218. data/test/drawing/tc_series_title.rb +0 -54
  219. data/test/drawing/tc_str_data.rb +0 -18
  220. data/test/drawing/tc_str_val.rb +0 -30
  221. data/test/drawing/tc_title.rb +0 -70
  222. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  223. data/test/drawing/tc_val_axis.rb +0 -24
  224. data/test/drawing/tc_view_3D.rb +0 -54
  225. data/test/drawing/tc_vml_drawing.rb +0 -25
  226. data/test/drawing/tc_vml_shape.rb +0 -106
  227. data/test/fixtures/image1.gif +0 -0
  228. data/test/fixtures/image1.jpeg +0 -0
  229. data/test/fixtures/image1.jpg +0 -0
  230. data/test/fixtures/image1.png +0 -0
  231. data/test/fixtures/image1_fake.jpg +0 -0
  232. data/test/profile.rb +0 -24
  233. data/test/rels/tc_relationship.rb +0 -52
  234. data/test/rels/tc_relationships.rb +0 -37
  235. data/test/stylesheet/tc_border.rb +0 -37
  236. data/test/stylesheet/tc_border_pr.rb +0 -32
  237. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  238. data/test/stylesheet/tc_cell_protection.rb +0 -29
  239. data/test/stylesheet/tc_cell_style.rb +0 -57
  240. data/test/stylesheet/tc_color.rb +0 -43
  241. data/test/stylesheet/tc_dxf.rb +0 -81
  242. data/test/stylesheet/tc_fill.rb +0 -18
  243. data/test/stylesheet/tc_font.rb +0 -133
  244. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  245. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  246. data/test/stylesheet/tc_num_fmt.rb +0 -30
  247. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  248. data/test/stylesheet/tc_styles.rb +0 -309
  249. data/test/stylesheet/tc_table_style.rb +0 -44
  250. data/test/stylesheet/tc_table_style_element.rb +0 -45
  251. data/test/stylesheet/tc_table_styles.rb +0 -29
  252. data/test/stylesheet/tc_xf.rb +0 -120
  253. data/test/tc_axlsx.rb +0 -109
  254. data/test/tc_helper.rb +0 -10
  255. data/test/tc_package.rb +0 -317
  256. data/test/util/tc_mime_type_utils.rb +0 -13
  257. data/test/util/tc_serialized_attributes.rb +0 -19
  258. data/test/util/tc_simple_typed_list.rb +0 -77
  259. data/test/util/tc_validators.rb +0 -210
  260. data/test/workbook/tc_defined_name.rb +0 -49
  261. data/test/workbook/tc_shared_strings_table.rb +0 -59
  262. data/test/workbook/tc_workbook.rb +0 -165
  263. data/test/workbook/tc_workbook_view.rb +0 -50
  264. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  265. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  266. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  267. data/test/workbook/worksheet/tc_break.rb +0 -49
  268. data/test/workbook/worksheet/tc_cell.rb +0 -465
  269. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  270. data/test/workbook/worksheet/tc_col.rb +0 -93
  271. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  272. data/test/workbook/worksheet/tc_comment.rb +0 -72
  273. data/test/workbook/worksheet/tc_comments.rb +0 -57
  274. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  275. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  276. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  277. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  278. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  279. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  280. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  281. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  282. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  283. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  284. data/test/workbook/worksheet/tc_pane.rb +0 -54
  285. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  286. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  287. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  288. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  289. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  290. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  291. data/test/workbook/worksheet/tc_row.rb +0 -160
  292. data/test/workbook/worksheet/tc_selection.rb +0 -55
  293. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  294. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  295. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  296. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  297. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  298. data/test/workbook/worksheet/tc_table.rb +0 -77
  299. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  300. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  301. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,66 +1,63 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # Table
4
- # @note Worksheet#add_pivot_table is the recommended way to create tables for your worksheets.
5
- # @see README for examples
6
- class PivotTableCacheDefinition
7
-
8
- include Axlsx::OptionsParser
9
-
10
- # Creates a new PivotTable object
11
- # @param [String] pivot_table The pivot table this cache definition is in
12
- def initialize(pivot_table)
13
- @pivot_table = pivot_table
14
- end
15
-
16
- # # The reference to the pivot table data
17
- # # @return [PivotTable]
18
- attr_reader :pivot_table
19
-
20
- # The index of this chart in the workbooks charts collection
21
- # @return [Integer]
22
- def index
23
- pivot_table.sheet.workbook.pivot_tables.index(pivot_table)
24
- end
25
-
26
- # The part name for this table
27
- # @return [String]
28
- def pn
29
- "#{PIVOT_TABLE_CACHE_DEFINITION_PN % (index+1)}"
30
- end
31
-
32
- # The identifier for this cache
33
- # @return [Integer]
34
- def cache_id
35
- index + 1
36
- end
37
-
38
- # The relationship id for this pivot table cache definition.
39
- # @see Relationship#Id
40
- # @return [String]
41
- def rId
42
- pivot_table.relationships.for(self).Id
43
- end
44
-
45
- # Serializes the object
46
- # @param [String] str
47
- # @return [String]
48
- def to_xml_string(str = '')
49
- str << '<?xml version="1.0" encoding="UTF-8"?>'
50
- str << ('<pivotCacheDefinition xmlns="' << XML_NS << '" xmlns:r="' << XML_NS_R << '" invalid="1" refreshOnLoad="1" recordCount="0">')
51
- str << '<cacheSource type="worksheet">'
52
- str << ( '<worksheetSource ref="' << pivot_table.range << '" sheet="' << pivot_table.data_sheet.name << '"/>')
53
- str << '</cacheSource>'
54
- str << ( '<cacheFields count="' << pivot_table.header_cells_count.to_s << '">')
55
- pivot_table.header_cells.each do |cell|
56
- str << ( '<cacheField name="' << cell.clean_value << '" numFmtId="0">')
57
- str << '<sharedItems count="0">'
58
- str << '</sharedItems>'
59
- str << '</cacheField>'
60
- end
61
- str << '</cacheFields>'
62
- str << '</pivotCacheDefinition>'
63
- end
64
-
65
- end
66
- end
1
+ module Axlsx
2
+ # Table
3
+ # @note Worksheet#add_pivot_table is the recommended way to create tables for your worksheets.
4
+ # @see README for examples
5
+ class PivotTableCacheDefinition
6
+ include Axlsx::OptionsParser
7
+
8
+ # Creates a new PivotTable object
9
+ # @param [String] pivot_table The pivot table this cache definition is in
10
+ def initialize(pivot_table)
11
+ @pivot_table = pivot_table
12
+ end
13
+
14
+ # # The reference to the pivot table data
15
+ # # @return [PivotTable]
16
+ attr_reader :pivot_table
17
+
18
+ # The index of this chart in the workbooks charts collection
19
+ # @return [Integer]
20
+ def index
21
+ pivot_table.sheet.workbook.pivot_tables.index(pivot_table)
22
+ end
23
+
24
+ # The part name for this table
25
+ # @return [String]
26
+ def pn
27
+ "#{PIVOT_TABLE_CACHE_DEFINITION_PN % (index + 1)}"
28
+ end
29
+
30
+ # The identifier for this cache
31
+ # @return [Integer]
32
+ def cache_id
33
+ index + 1
34
+ end
35
+
36
+ # The relationship id for this pivot table cache definition.
37
+ # @see Relationship#Id
38
+ # @return [String]
39
+ def rId
40
+ pivot_table.relationships.for(self).Id
41
+ end
42
+
43
+ # Serializes the object
44
+ # @param [String] str
45
+ # @return [String]
46
+ def to_xml_string(str = '')
47
+ str << '<?xml version="1.0" encoding="UTF-8"?>'
48
+ str << ('<pivotCacheDefinition xmlns="' << XML_NS << '" xmlns:r="' << XML_NS_R << '" invalid="1" refreshOnLoad="1" recordCount="0">')
49
+ str << '<cacheSource type="worksheet">'
50
+ str << ('<worksheetSource ref="' << pivot_table.range << '" sheet="' << pivot_table.data_sheet.name << '"/>')
51
+ str << '</cacheSource>'
52
+ str << ('<cacheFields count="' << pivot_table.header_cells_count.to_s << '">')
53
+ pivot_table.header_cells.each do |cell|
54
+ str << ('<cacheField name="' << cell.clean_value << '" numFmtId="0">')
55
+ str << '<sharedItems count="0">'
56
+ str << '</sharedItems>'
57
+ str << '</cacheField>'
58
+ end
59
+ str << '</cacheFields>'
60
+ str << '</pivotCacheDefinition>'
61
+ end
62
+ end
63
+ end
@@ -1,24 +1,23 @@
1
- module Axlsx
2
-
3
- # A simple, self serializing class for storing pivot tables
4
- class PivotTables < SimpleTypedList
5
-
6
- # creates a new Tables object
7
- def initialize(worksheet)
8
- raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet)
9
- super PivotTable
10
- @worksheet = worksheet
11
- end
12
-
13
- # The worksheet that owns this collection of pivot tables
14
- # @return [Worksheet]
15
- attr_reader :worksheet
16
-
17
- # returns the relationships required by this collection
18
- def relationships
19
- return [] if empty?
20
- map{ |pivot_table| Relationship.new(pivot_table, PIVOT_TABLE_R, "../#{pivot_table.pn}") }
21
- end
22
- end
23
-
24
- end
1
+ module Axlsx
2
+ # A simple, self serializing class for storing pivot tables
3
+ class PivotTables < SimpleTypedList
4
+ # creates a new Tables object
5
+ def initialize(worksheet)
6
+ raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet)
7
+
8
+ super PivotTable
9
+ @worksheet = worksheet
10
+ end
11
+
12
+ # The worksheet that owns this collection of pivot tables
13
+ # @return [Worksheet]
14
+ attr_reader :worksheet
15
+
16
+ # returns the relationships required by this collection
17
+ def relationships
18
+ return [] if empty?
19
+
20
+ map { |pivot_table| Relationship.new(pivot_table, PIVOT_TABLE_R, "../#{pivot_table.pn}") }
21
+ end
22
+ end
23
+ end
@@ -1,39 +1,38 @@
1
- module Axlsx
2
- # Options for printing a worksheet. All options are boolean and false by default.
3
- #
4
- # @note The recommended way to manage print options is via Worksheet#print_options
5
- # @see Worksheet#print_options
6
- # @see Worksheet#initialize
7
- class PrintOptions
8
-
9
- include Axlsx::OptionsParser
10
- include Axlsx::SerializedAttributes
11
- include Axlsx::Accessors
12
- # Creates a new PrintOptions object
13
- # @option options [Boolean] grid_lines Whether grid lines should be printed
14
- # @option options [Boolean] headings Whether row and column headings should be printed
15
- # @option options [Boolean] horizontal_centered Whether the content should be centered horizontally
16
- # @option options [Boolean] vertical_centered Whether the content should be centered vertically
17
- def initialize(options = {})
18
- @grid_lines = @headings = @horizontal_centered = @vertical_centered = false
19
- set(options)
20
- end
21
-
22
- serializable_attributes :grid_lines, :headings, :horizontal_centered, :vertical_centered
23
- boolean_attr_accessor :grid_lines, :headings, :horizontal_centered, :vertical_centered
24
-
25
- # Set some or all options at once.
26
- # @param [Hash] options The options to set (possible keys are :grid_lines, :headings, :horizontal_centered, and :vertical_centered).
27
- def set(options)
28
- parse_options options
29
- end
30
-
31
- # Serializes the page options element.
32
- # @note As all attributes default to "false" according to the xml schema definition, the generated xml includes only those attributes that are set to true.
33
- # @param [String] str
34
- # @return [String]
35
- def to_xml_string(str = '')
36
- serialized_tag 'printOptions', str
37
- end
38
- end
39
- end
1
+ module Axlsx
2
+ # Options for printing a worksheet. All options are boolean and false by default.
3
+ #
4
+ # @note The recommended way to manage print options is via Worksheet#print_options
5
+ # @see Worksheet#print_options
6
+ # @see Worksheet#initialize
7
+ class PrintOptions
8
+ include Axlsx::OptionsParser
9
+ include Axlsx::SerializedAttributes
10
+ include Axlsx::Accessors
11
+ # Creates a new PrintOptions object
12
+ # @option options [Boolean] grid_lines Whether grid lines should be printed
13
+ # @option options [Boolean] headings Whether row and column headings should be printed
14
+ # @option options [Boolean] horizontal_centered Whether the content should be centered horizontally
15
+ # @option options [Boolean] vertical_centered Whether the content should be centered vertically
16
+ def initialize(options = {})
17
+ @grid_lines = @headings = @horizontal_centered = @vertical_centered = false
18
+ set(options)
19
+ end
20
+
21
+ serializable_attributes :grid_lines, :headings, :horizontal_centered, :vertical_centered
22
+ boolean_attr_accessor :grid_lines, :headings, :horizontal_centered, :vertical_centered
23
+
24
+ # Set some or all options at once.
25
+ # @param [Hash] options The options to set (possible keys are :grid_lines, :headings, :horizontal_centered, and :vertical_centered).
26
+ def set(options)
27
+ parse_options options
28
+ end
29
+
30
+ # Serializes the page options element.
31
+ # @note As all attributes default to "false" according to the xml schema definition, the generated xml includes only those attributes that are set to true.
32
+ # @param [String] str
33
+ # @return [String]
34
+ def to_xml_string(str = '')
35
+ serialized_tag 'printOptions', str
36
+ end
37
+ end
38
+ end
@@ -1,47 +1,46 @@
1
- module Axlsx
2
- # The Protected Range class represents a set of cells in the worksheet
3
- # @note the recommended way to manage protected ranges with via Worksheet#protect_range
4
- # @see Worksheet#protect_range
5
- class ProtectedRange
6
-
7
- include Axlsx::OptionsParser
8
- include Axlsx::SerializedAttributes
9
-
10
- # Initializes a new protected range object
11
- # @option [String] sqref The cell range reference to protect. This can be an absolute or a relateve range however, it only applies to the current sheet.
12
- # @option [String] name An optional name for the protected name.
13
- def initialize(options={})
14
- parse_options options
15
- yield self if block_given?
16
- end
17
-
18
- serializable_attributes :sqref, :name
19
- # The reference for the protected range
20
- # @return [String]
21
- attr_reader :sqref
22
-
23
- # The name of the protected range
24
- # @return [String]
25
- attr_reader :name
26
-
27
- # @see sqref
28
- def sqref=(v)
29
- Axlsx.validate_string(v)
30
- @sqref = v
31
- end
32
-
33
- # @see name
34
- def name=(v)
35
- Axlsx.validate_string(v)
36
- @name = v
37
- end
38
-
39
- # serializes the proteted range
40
- # @param [String] str if this string object is provided we append
41
- # our output to that object. Use this - it helps limit the number of
42
- # objects created during serialization
43
- def to_xml_string(str="")
44
- serialized_tag 'protectedRange', str
45
- end
46
- end
47
- end
1
+ module Axlsx
2
+ # The Protected Range class represents a set of cells in the worksheet
3
+ # @note the recommended way to manage protected ranges with via Worksheet#protect_range
4
+ # @see Worksheet#protect_range
5
+ class ProtectedRange
6
+ include Axlsx::OptionsParser
7
+ include Axlsx::SerializedAttributes
8
+
9
+ # Initializes a new protected range object
10
+ # @option [String] sqref The cell range reference to protect. This can be an absolute or a relateve range however, it only applies to the current sheet.
11
+ # @option [String] name An optional name for the protected name.
12
+ def initialize(options = {})
13
+ parse_options options
14
+ yield self if block_given?
15
+ end
16
+
17
+ serializable_attributes :sqref, :name
18
+ # The reference for the protected range
19
+ # @return [String]
20
+ attr_reader :sqref
21
+
22
+ # The name of the protected range
23
+ # @return [String]
24
+ attr_reader :name
25
+
26
+ # @see sqref
27
+ def sqref=(v)
28
+ Axlsx.validate_string(v)
29
+ @sqref = v
30
+ end
31
+
32
+ # @see name
33
+ def name=(v)
34
+ Axlsx.validate_string(v)
35
+ @name = v
36
+ end
37
+
38
+ # serializes the proteted range
39
+ # @param [String] str if this string object is provided we append
40
+ # our output to that object. Use this - it helps limit the number of
41
+ # objects created during serialization
42
+ def to_xml_string(str = "")
43
+ serialized_tag 'protectedRange', str
44
+ end
45
+ end
46
+ end
@@ -1,37 +1,37 @@
1
- module Axlsx
2
-
3
- # A self serializing collection of ranges that should be protected in
4
- # the worksheet
5
- class ProtectedRanges < SimpleTypedList
6
-
7
- attr_reader :worksheet
8
-
9
- def initialize(worksheet)
10
- raise ArgumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
11
- super ProtectedRange
12
- @worksheet = worksheet
13
- end
14
-
15
- # Adds a protected range
16
- # @param [Array|String] cells A string range reference or array of cells that will be protected
17
- def add_range(cells)
18
- sqref = if cells.is_a?(String)
19
- cells
20
- elsif cells.is_a?(SimpleTypedList) || cells.is_a?(Array)
21
- Axlsx::cell_range(cells, false)
22
- end
23
- self << ProtectedRange.new(:sqref => sqref, :name => "Range#{size}")
24
- last
25
- end
26
-
27
- # Serializes the protected ranges
28
- # @param [String] str
29
- # @return [String]
30
- def to_xml_string(str = '')
31
- return if empty?
32
- str << '<protectedRanges>'
33
- each { |range| range.to_xml_string(str) }
34
- str << '</protectedRanges>'
35
- end
36
- end
37
- end
1
+ module Axlsx
2
+ # A self serializing collection of ranges that should be protected in
3
+ # the worksheet
4
+ class ProtectedRanges < SimpleTypedList
5
+ attr_reader :worksheet
6
+
7
+ def initialize(worksheet)
8
+ raise ArgumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
9
+
10
+ super ProtectedRange
11
+ @worksheet = worksheet
12
+ end
13
+
14
+ # Adds a protected range
15
+ # @param [Array|String] cells A string range reference or array of cells that will be protected
16
+ def add_range(cells)
17
+ sqref = if cells.is_a?(String)
18
+ cells
19
+ elsif cells.is_a?(SimpleTypedList) || cells.is_a?(Array)
20
+ Axlsx::cell_range(cells, false)
21
+ end
22
+ self << ProtectedRange.new(:sqref => sqref, :name => "Range#{size}")
23
+ last
24
+ end
25
+
26
+ # Serializes the protected ranges
27
+ # @param [String] str
28
+ # @return [String]
29
+ def to_xml_string(str = '')
30
+ return if empty?
31
+
32
+ str << '<protectedRanges>'
33
+ each { |range| range.to_xml_string(str) }
34
+ str << '</protectedRanges>'
35
+ end
36
+ end
37
+ end
@@ -1,55 +1,53 @@
1
- module Axlsx
2
-
3
- # A simple, self serializing class for storing TextRuns
4
- class RichText < SimpleTypedList
5
-
6
- # creates a new RichText collection
7
- # @param [String] text -optional The text to use in creating the first RichTextRun
8
- # @param [Object] options -optional The options to use in creating the first RichTextRun
9
- # @yield [RichText] self
10
- def initialize(text = nil, options={})
11
- super(RichTextRun)
12
- add_run(text, options) unless text.nil?
13
- yield self if block_given?
14
- end
15
-
16
- # The cell that owns this RichText collection
17
- attr_reader :cell
18
-
19
- # Assign the cell for this RichText collection
20
- # @param [Cell] cell The cell which all RichTextRuns in the collection will belong to
21
- def cell=(cell)
22
- @cell = cell
23
- each { |run| run.cell = cell }
24
- end
25
-
26
- # Calculates the longest autowidth of the RichTextRuns in this collection
27
- # @return [Number]
28
- def autowidth
29
- widtharray = [0] # Are arrays the best way of solving this problem?
30
- each { |run| run.autowidth(widtharray) }
31
- widtharray.max
32
- end
33
-
34
- # Creates and adds a RichTextRun to this collectino
35
- # @param [String] text The text to use in creating a new RichTextRun
36
- # @param [Object] options The options to use in creating the new RichTextRun
37
- def add_run(text, options={})
38
- self << RichTextRun.new(text, options)
39
- end
40
-
41
- # The RichTextRuns we own
42
- # @return [RichText]
43
- def runs
44
- self
45
- end
46
-
47
- # renders the RichTextRuns in this collection
48
- # @param [String] str
49
- # @return [String]
50
- def to_xml_string(str='')
51
- each{ |run| run.to_xml_string(str) }
52
- str
53
- end
54
- end
55
- end
1
+ module Axlsx
2
+ # A simple, self serializing class for storing TextRuns
3
+ class RichText < SimpleTypedList
4
+ # creates a new RichText collection
5
+ # @param [String] text -optional The text to use in creating the first RichTextRun
6
+ # @param [Object] options -optional The options to use in creating the first RichTextRun
7
+ # @yield [RichText] self
8
+ def initialize(text = nil, options = {})
9
+ super(RichTextRun)
10
+ add_run(text, options) unless text.nil?
11
+ yield self if block_given?
12
+ end
13
+
14
+ # The cell that owns this RichText collection
15
+ attr_reader :cell
16
+
17
+ # Assign the cell for this RichText collection
18
+ # @param [Cell] cell The cell which all RichTextRuns in the collection will belong to
19
+ def cell=(cell)
20
+ @cell = cell
21
+ each { |run| run.cell = cell }
22
+ end
23
+
24
+ # Calculates the longest autowidth of the RichTextRuns in this collection
25
+ # @return [Number]
26
+ def autowidth
27
+ widtharray = [0] # Are arrays the best way of solving this problem?
28
+ each { |run| run.autowidth(widtharray) }
29
+ widtharray.max
30
+ end
31
+
32
+ # Creates and adds a RichTextRun to this collectino
33
+ # @param [String] text The text to use in creating a new RichTextRun
34
+ # @param [Object] options The options to use in creating the new RichTextRun
35
+ def add_run(text, options = {})
36
+ self << RichTextRun.new(text, options)
37
+ end
38
+
39
+ # The RichTextRuns we own
40
+ # @return [RichText]
41
+ def runs
42
+ self
43
+ end
44
+
45
+ # renders the RichTextRuns in this collection
46
+ # @param [String] str
47
+ # @return [String]
48
+ def to_xml_string(str = '')
49
+ each { |run| run.to_xml_string(str) }
50
+ str
51
+ end
52
+ end
53
+ end