caxlsx 3.2.0 → 3.3.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 (300) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +385 -354
  5. data/LICENSE +21 -21
  6. data/README.md +165 -168
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +299 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +91 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +107 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +398 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +535 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +416 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +425 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +76 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +532 -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 +18 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +267 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +335 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  139. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  140. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  141. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  142. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  143. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  144. data/lib/axlsx/workbook/worksheet/worksheet.rb +829 -786
  145. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  149. data/lib/axlsx.rb +204 -185
  150. data/lib/caxlsx.rb +2 -2
  151. data/lib/schema/dc.xsd +118 -118
  152. data/lib/schema/dcmitype.xsd +51 -51
  153. data/lib/schema/dcterms.xsd +331 -331
  154. data/lib/schema/dml-chartDrawing.xsd +146 -146
  155. data/lib/schema/dml-compatibility.xsd +14 -14
  156. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  157. data/lib/schema/dml-main.xsd +3048 -3048
  158. data/lib/schema/dml-picture.xsd +23 -23
  159. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  160. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  161. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  162. data/lib/schema/shared-bibliography.xsd +144 -144
  163. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  164. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  165. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  166. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  167. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  168. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  169. data/lib/schema/shared-relationshipReference.xsd +25 -25
  170. data/lib/schema/vml-main.xsd +569 -569
  171. data/lib/schema/vml-officeDrawing.xsd +509 -509
  172. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  173. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  174. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  175. data/lib/schema/xml.xsd +116 -116
  176. metadata +5 -252
  177. data/test/benchmark.rb +0 -72
  178. data/test/content_type/tc_content_type.rb +0 -76
  179. data/test/content_type/tc_default.rb +0 -16
  180. data/test/content_type/tc_override.rb +0 -14
  181. data/test/doc_props/tc_app.rb +0 -43
  182. data/test/doc_props/tc_core.rb +0 -42
  183. data/test/drawing/tc_area_chart.rb +0 -39
  184. data/test/drawing/tc_area_series.rb +0 -71
  185. data/test/drawing/tc_axes.rb +0 -8
  186. data/test/drawing/tc_axis.rb +0 -112
  187. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  188. data/test/drawing/tc_bar_chart.rb +0 -86
  189. data/test/drawing/tc_bar_series.rb +0 -46
  190. data/test/drawing/tc_bubble_chart.rb +0 -44
  191. data/test/drawing/tc_bubble_series.rb +0 -21
  192. data/test/drawing/tc_cat_axis.rb +0 -31
  193. data/test/drawing/tc_cat_axis_data.rb +0 -27
  194. data/test/drawing/tc_chart.rb +0 -123
  195. data/test/drawing/tc_d_lbls.rb +0 -57
  196. data/test/drawing/tc_data_source.rb +0 -23
  197. data/test/drawing/tc_drawing.rb +0 -80
  198. data/test/drawing/tc_graphic_frame.rb +0 -27
  199. data/test/drawing/tc_hyperlink.rb +0 -64
  200. data/test/drawing/tc_line_3d_chart.rb +0 -47
  201. data/test/drawing/tc_line_chart.rb +0 -39
  202. data/test/drawing/tc_line_series.rb +0 -71
  203. data/test/drawing/tc_marker.rb +0 -44
  204. data/test/drawing/tc_named_axis_data.rb +0 -27
  205. data/test/drawing/tc_num_data.rb +0 -31
  206. data/test/drawing/tc_num_val.rb +0 -29
  207. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  208. data/test/drawing/tc_pic.rb +0 -103
  209. data/test/drawing/tc_picture_locking.rb +0 -72
  210. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  211. data/test/drawing/tc_pie_series.rb +0 -33
  212. data/test/drawing/tc_scaling.rb +0 -36
  213. data/test/drawing/tc_scatter_chart.rb +0 -48
  214. data/test/drawing/tc_scatter_series.rb +0 -74
  215. data/test/drawing/tc_ser_axis.rb +0 -31
  216. data/test/drawing/tc_series.rb +0 -23
  217. data/test/drawing/tc_series_title.rb +0 -54
  218. data/test/drawing/tc_str_data.rb +0 -18
  219. data/test/drawing/tc_str_val.rb +0 -30
  220. data/test/drawing/tc_title.rb +0 -70
  221. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  222. data/test/drawing/tc_val_axis.rb +0 -24
  223. data/test/drawing/tc_view_3D.rb +0 -54
  224. data/test/drawing/tc_vml_drawing.rb +0 -25
  225. data/test/drawing/tc_vml_shape.rb +0 -106
  226. data/test/fixtures/image1.gif +0 -0
  227. data/test/fixtures/image1.jpeg +0 -0
  228. data/test/fixtures/image1.jpg +0 -0
  229. data/test/fixtures/image1.png +0 -0
  230. data/test/fixtures/image1_fake.jpg +0 -0
  231. data/test/profile.rb +0 -24
  232. data/test/rels/tc_relationship.rb +0 -52
  233. data/test/rels/tc_relationships.rb +0 -37
  234. data/test/stylesheet/tc_border.rb +0 -37
  235. data/test/stylesheet/tc_border_pr.rb +0 -32
  236. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  237. data/test/stylesheet/tc_cell_protection.rb +0 -29
  238. data/test/stylesheet/tc_cell_style.rb +0 -57
  239. data/test/stylesheet/tc_color.rb +0 -43
  240. data/test/stylesheet/tc_dxf.rb +0 -81
  241. data/test/stylesheet/tc_fill.rb +0 -18
  242. data/test/stylesheet/tc_font.rb +0 -133
  243. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  244. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  245. data/test/stylesheet/tc_num_fmt.rb +0 -30
  246. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  247. data/test/stylesheet/tc_styles.rb +0 -309
  248. data/test/stylesheet/tc_table_style.rb +0 -44
  249. data/test/stylesheet/tc_table_style_element.rb +0 -45
  250. data/test/stylesheet/tc_table_styles.rb +0 -29
  251. data/test/stylesheet/tc_xf.rb +0 -120
  252. data/test/tc_axlsx.rb +0 -109
  253. data/test/tc_helper.rb +0 -10
  254. data/test/tc_package.rb +0 -317
  255. data/test/util/tc_mime_type_utils.rb +0 -13
  256. data/test/util/tc_serialized_attributes.rb +0 -19
  257. data/test/util/tc_simple_typed_list.rb +0 -77
  258. data/test/util/tc_validators.rb +0 -210
  259. data/test/workbook/tc_defined_name.rb +0 -49
  260. data/test/workbook/tc_shared_strings_table.rb +0 -59
  261. data/test/workbook/tc_workbook.rb +0 -165
  262. data/test/workbook/tc_workbook_view.rb +0 -50
  263. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  264. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  265. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  266. data/test/workbook/worksheet/tc_break.rb +0 -49
  267. data/test/workbook/worksheet/tc_cell.rb +0 -465
  268. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  269. data/test/workbook/worksheet/tc_col.rb +0 -93
  270. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  271. data/test/workbook/worksheet/tc_comment.rb +0 -72
  272. data/test/workbook/worksheet/tc_comments.rb +0 -57
  273. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  274. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  275. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  276. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  277. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  278. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  279. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  280. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  281. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  282. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  283. data/test/workbook/worksheet/tc_pane.rb +0 -54
  284. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  285. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  286. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  287. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  288. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  289. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  290. data/test/workbook/worksheet/tc_row.rb +0 -160
  291. data/test/workbook/worksheet/tc_selection.rb +0 -55
  292. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  293. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  294. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  295. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  296. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  297. data/test/workbook/worksheet/tc_table.rb +0 -77
  298. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  299. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  300. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,139 +1,139 @@
1
- module Axlsx
2
- # Pane options for a worksheet.
3
- #
4
- # @note The recommended way to manage the pane options is via SheetView#pane
5
- # @see SheetView#pane
6
- class Pane
7
-
8
- include Axlsx::OptionsParser
9
- include Axlsx::SerializedAttributes
10
- # Creates a new {Pane} object
11
- # @option options [Symbol] active_pane Active Pane
12
- # @option options [Symbol] state Split State
13
- # @option options [Cell, String] top_left_cell Top Left Visible Cell
14
- # @option options [Integer] x_split Horizontal Split Position
15
- # @option options [Integer] y_split Vertical Split Position
16
- def initialize(options={})
17
- #defaults
18
- @active_pane = @state = @top_left_cell = nil
19
- @x_split = @y_split = 0
20
- parse_options options
21
- end
22
-
23
- serializable_attributes :active_pane, :state, :top_left_cell, :x_split, :y_split
24
-
25
- # Active Pane
26
- # The pane that is active.
27
- # Options are
28
- # * bottom_left: Bottom left pane, when both vertical and horizontal
29
- # splits are applied. This value is also used when only
30
- # a horizontal split has been applied, dividing the pane
31
- # into upper and lower regions. In that case, this value
32
- # specifies the bottom pane.
33
- # * bottom_right: Bottom right pane, when both vertical and horizontal
34
- # splits are applied.
35
- # * top_left: Top left pane, when both vertical and horizontal splits
36
- # are applied. This value is also used when only a horizontal
37
- # split has been applied, dividing the pane into upper and lower
38
- # regions. In that case, this value specifies the top pane.
39
- # This value is also used when only a vertical split has
40
- # been applied, dividing the pane into right and left
41
- # regions. In that case, this value specifies the left pane
42
- # * top_right: Top right pane, when both vertical and horizontal
43
- # splits are applied. This value is also used when only
44
- # a vertical split has been applied, dividing the pane
45
- # into right and left regions. In that case, this value
46
- # specifies the right pane.
47
- # @see type
48
- # @return [Symbol]
49
- # default nil
50
- attr_reader :active_pane
51
-
52
-
53
- # Split State
54
- # Indicates whether the pane has horizontal / vertical
55
- # splits, and whether those splits are frozen.
56
- # Options are
57
- # * frozen: Panes are frozen, but were not split being frozen. In
58
- # this state, when the panes are unfrozen again, a single
59
- # pane results, with no split. In this state, the split
60
- # bars are not adjustable.
61
- # * frozen_split: Panes are frozen and were split before being frozen. In
62
- # this state, when the panes are unfrozen again, the split
63
- # remains, but is adjustable.
64
- # * split: Panes are split, but not frozen. In this state, the split
65
- # bars are adjustable by the user.
66
- # @see type
67
- # @return [Symbol]
68
- # default nil
69
- attr_reader :state
70
-
71
- # Top Left Visible Cell
72
- # Location of the top left visible cell in the bottom
73
- # right pane (when in Left-To-Right mode).
74
- # @see type
75
- # @return [String]
76
- # default nil
77
- attr_reader :top_left_cell
78
-
79
- # Horizontal Split Position
80
- # Horizontal position of the split, in 1/20th of a point; 0 (zero)
81
- # if none. If the pane is frozen, this value indicates the number
82
- # of columns visible in the top pane.
83
- # @see type
84
- # @return [Integer]
85
- # default 0
86
- attr_reader :x_split
87
-
88
- # Vertical Split Position
89
- # Vertical position of the split, in 1/20th of a point; 0 (zero)
90
- # if none. If the pane is frozen, this value indicates the number
91
- # of rows visible in the left pane.
92
- # @see type
93
- # @return [Integer]
94
- # default 0
95
- attr_reader :y_split
96
-
97
- # @see active_pane
98
- def active_pane=(v)
99
- Axlsx::validate_pane_type(v)
100
- @active_pane = Axlsx::camel(v.to_s, false)
101
- end
102
-
103
- # @see state
104
- def state=(v)
105
- Axlsx::validate_split_state_type(v)
106
- @state = Axlsx::camel(v.to_s, false)
107
- end
108
-
109
- # @see top_left_cell
110
- def top_left_cell=(v)
111
- cell = (v.class == Axlsx::Cell ? v.r_abs : v)
112
- Axlsx::validate_string(cell)
113
- @top_left_cell = cell
114
- end
115
-
116
- # @see x_split
117
- def x_split=(v); Axlsx::validate_unsigned_int(v); @x_split = v end
118
-
119
- # @see y_split
120
- def y_split=(v); Axlsx::validate_unsigned_int(v); @y_split = v end
121
-
122
- # Serializes the data validation
123
- # @param [String] str
124
- # @return [String]
125
- def to_xml_string(str = '')
126
- finalize
127
- serialized_tag 'pane', str
128
- end
129
- private
130
-
131
- def finalize
132
- if @state == 'frozen' && @top_left_cell.nil?
133
- row = @y_split || 0
134
- column = @x_split || 0
135
- @top_left_cell = "#{('A'..'ZZ').to_a[column]}#{row+1}"
136
- end
137
- end
138
- end
139
- end
1
+ module Axlsx
2
+ # Pane options for a worksheet.
3
+ #
4
+ # @note The recommended way to manage the pane options is via SheetView#pane
5
+ # @see SheetView#pane
6
+ class Pane
7
+
8
+ include Axlsx::OptionsParser
9
+ include Axlsx::SerializedAttributes
10
+ # Creates a new {Pane} object
11
+ # @option options [Symbol] active_pane Active Pane
12
+ # @option options [Symbol] state Split State
13
+ # @option options [Cell, String] top_left_cell Top Left Visible Cell
14
+ # @option options [Integer] x_split Horizontal Split Position
15
+ # @option options [Integer] y_split Vertical Split Position
16
+ def initialize(options={})
17
+ #defaults
18
+ @active_pane = @state = @top_left_cell = nil
19
+ @x_split = @y_split = 0
20
+ parse_options options
21
+ end
22
+
23
+ serializable_attributes :active_pane, :state, :top_left_cell, :x_split, :y_split
24
+
25
+ # Active Pane
26
+ # The pane that is active.
27
+ # Options are
28
+ # * bottom_left: Bottom left pane, when both vertical and horizontal
29
+ # splits are applied. This value is also used when only
30
+ # a horizontal split has been applied, dividing the pane
31
+ # into upper and lower regions. In that case, this value
32
+ # specifies the bottom pane.
33
+ # * bottom_right: Bottom right pane, when both vertical and horizontal
34
+ # splits are applied.
35
+ # * top_left: Top left pane, when both vertical and horizontal splits
36
+ # are applied. This value is also used when only a horizontal
37
+ # split has been applied, dividing the pane into upper and lower
38
+ # regions. In that case, this value specifies the top pane.
39
+ # This value is also used when only a vertical split has
40
+ # been applied, dividing the pane into right and left
41
+ # regions. In that case, this value specifies the left pane
42
+ # * top_right: Top right pane, when both vertical and horizontal
43
+ # splits are applied. This value is also used when only
44
+ # a vertical split has been applied, dividing the pane
45
+ # into right and left regions. In that case, this value
46
+ # specifies the right pane.
47
+ # @see type
48
+ # @return [Symbol]
49
+ # default nil
50
+ attr_reader :active_pane
51
+
52
+
53
+ # Split State
54
+ # Indicates whether the pane has horizontal / vertical
55
+ # splits, and whether those splits are frozen.
56
+ # Options are
57
+ # * frozen: Panes are frozen, but were not split being frozen. In
58
+ # this state, when the panes are unfrozen again, a single
59
+ # pane results, with no split. In this state, the split
60
+ # bars are not adjustable.
61
+ # * frozen_split: Panes are frozen and were split before being frozen. In
62
+ # this state, when the panes are unfrozen again, the split
63
+ # remains, but is adjustable.
64
+ # * split: Panes are split, but not frozen. In this state, the split
65
+ # bars are adjustable by the user.
66
+ # @see type
67
+ # @return [Symbol]
68
+ # default nil
69
+ attr_reader :state
70
+
71
+ # Top Left Visible Cell
72
+ # Location of the top left visible cell in the bottom
73
+ # right pane (when in Left-To-Right mode).
74
+ # @see type
75
+ # @return [String]
76
+ # default nil
77
+ attr_reader :top_left_cell
78
+
79
+ # Horizontal Split Position
80
+ # Horizontal position of the split, in 1/20th of a point; 0 (zero)
81
+ # if none. If the pane is frozen, this value indicates the number
82
+ # of columns visible in the top pane.
83
+ # @see type
84
+ # @return [Integer]
85
+ # default 0
86
+ attr_reader :x_split
87
+
88
+ # Vertical Split Position
89
+ # Vertical position of the split, in 1/20th of a point; 0 (zero)
90
+ # if none. If the pane is frozen, this value indicates the number
91
+ # of rows visible in the left pane.
92
+ # @see type
93
+ # @return [Integer]
94
+ # default 0
95
+ attr_reader :y_split
96
+
97
+ # @see active_pane
98
+ def active_pane=(v)
99
+ Axlsx::validate_pane_type(v)
100
+ @active_pane = Axlsx::camel(v.to_s, false)
101
+ end
102
+
103
+ # @see state
104
+ def state=(v)
105
+ Axlsx::validate_split_state_type(v)
106
+ @state = Axlsx::camel(v.to_s, false)
107
+ end
108
+
109
+ # @see top_left_cell
110
+ def top_left_cell=(v)
111
+ cell = (v.class == Axlsx::Cell ? v.r_abs : v)
112
+ Axlsx::validate_string(cell)
113
+ @top_left_cell = cell
114
+ end
115
+
116
+ # @see x_split
117
+ def x_split=(v); Axlsx::validate_unsigned_int(v); @x_split = v end
118
+
119
+ # @see y_split
120
+ def y_split=(v); Axlsx::validate_unsigned_int(v); @y_split = v end
121
+
122
+ # Serializes the data validation
123
+ # @param [String] str
124
+ # @return [String]
125
+ def to_xml_string(str = '')
126
+ finalize
127
+ serialized_tag 'pane', str
128
+ end
129
+ private
130
+
131
+ def finalize
132
+ if @state == 'frozen' && @top_left_cell.nil?
133
+ row = @y_split || 0
134
+ column = @x_split || 0
135
+ @top_left_cell = "#{('A'..'ZZ').to_a[column]}#{row+1}"
136
+ end
137
+ end
138
+ end
139
+ end