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,139 +1,138 @@
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
+ include Axlsx::OptionsParser
8
+ include Axlsx::SerializedAttributes
9
+ # Creates a new {Pane} object
10
+ # @option options [Symbol] active_pane Active Pane
11
+ # @option options [Symbol] state Split State
12
+ # @option options [Cell, String] top_left_cell Top Left Visible Cell
13
+ # @option options [Integer] x_split Horizontal Split Position
14
+ # @option options [Integer] y_split Vertical Split Position
15
+ def initialize(options = {})
16
+ # defaults
17
+ @active_pane = @state = @top_left_cell = nil
18
+ @x_split = @y_split = 0
19
+ parse_options options
20
+ end
21
+
22
+ serializable_attributes :active_pane, :state, :top_left_cell, :x_split, :y_split
23
+
24
+ # Active Pane
25
+ # The pane that is active.
26
+ # Options are
27
+ # * bottom_left: Bottom left pane, when both vertical and horizontal
28
+ # splits are applied. This value is also used when only
29
+ # a horizontal split has been applied, dividing the pane
30
+ # into upper and lower regions. In that case, this value
31
+ # specifies the bottom pane.
32
+ # * bottom_right: Bottom right pane, when both vertical and horizontal
33
+ # splits are applied.
34
+ # * top_left: Top left pane, when both vertical and horizontal splits
35
+ # are applied. This value is also used when only a horizontal
36
+ # split has been applied, dividing the pane into upper and lower
37
+ # regions. In that case, this value specifies the top pane.
38
+ # This value is also used when only a vertical split has
39
+ # been applied, dividing the pane into right and left
40
+ # regions. In that case, this value specifies the left pane
41
+ # * top_right: Top right pane, when both vertical and horizontal
42
+ # splits are applied. This value is also used when only
43
+ # a vertical split has been applied, dividing the pane
44
+ # into right and left regions. In that case, this value
45
+ # specifies the right pane.
46
+ # @see type
47
+ # @return [Symbol]
48
+ # default nil
49
+ attr_reader :active_pane
50
+
51
+ # Split State
52
+ # Indicates whether the pane has horizontal / vertical
53
+ # splits, and whether those splits are frozen.
54
+ # Options are
55
+ # * frozen: Panes are frozen, but were not split being frozen. In
56
+ # this state, when the panes are unfrozen again, a single
57
+ # pane results, with no split. In this state, the split
58
+ # bars are not adjustable.
59
+ # * frozen_split: Panes are frozen and were split before being frozen. In
60
+ # this state, when the panes are unfrozen again, the split
61
+ # remains, but is adjustable.
62
+ # * split: Panes are split, but not frozen. In this state, the split
63
+ # bars are adjustable by the user.
64
+ # @see type
65
+ # @return [Symbol]
66
+ # default nil
67
+ attr_reader :state
68
+
69
+ # Top Left Visible Cell
70
+ # Location of the top left visible cell in the bottom
71
+ # right pane (when in Left-To-Right mode).
72
+ # @see type
73
+ # @return [String]
74
+ # default nil
75
+ attr_reader :top_left_cell
76
+
77
+ # Horizontal Split Position
78
+ # Horizontal position of the split, in 1/20th of a point; 0 (zero)
79
+ # if none. If the pane is frozen, this value indicates the number
80
+ # of columns visible in the top pane.
81
+ # @see type
82
+ # @return [Integer]
83
+ # default 0
84
+ attr_reader :x_split
85
+
86
+ # Vertical Split Position
87
+ # Vertical position of the split, in 1/20th of a point; 0 (zero)
88
+ # if none. If the pane is frozen, this value indicates the number
89
+ # of rows visible in the left pane.
90
+ # @see type
91
+ # @return [Integer]
92
+ # default 0
93
+ attr_reader :y_split
94
+
95
+ # @see active_pane
96
+ def active_pane=(v)
97
+ Axlsx::validate_pane_type(v)
98
+ @active_pane = Axlsx::camel(v.to_s, false)
99
+ end
100
+
101
+ # @see state
102
+ def state=(v)
103
+ Axlsx::validate_split_state_type(v)
104
+ @state = Axlsx::camel(v.to_s, false)
105
+ end
106
+
107
+ # @see top_left_cell
108
+ def top_left_cell=(v)
109
+ cell = (v.class == Axlsx::Cell ? v.r_abs : v)
110
+ Axlsx::validate_string(cell)
111
+ @top_left_cell = cell
112
+ end
113
+
114
+ # @see x_split
115
+ def x_split=(v); Axlsx::validate_unsigned_int(v); @x_split = v end
116
+
117
+ # @see y_split
118
+ def y_split=(v); Axlsx::validate_unsigned_int(v); @y_split = v end
119
+
120
+ # Serializes the data validation
121
+ # @param [String] str
122
+ # @return [String]
123
+ def to_xml_string(str = '')
124
+ finalize
125
+ serialized_tag 'pane', str
126
+ end
127
+
128
+ private
129
+
130
+ def finalize
131
+ if @state == 'frozen' && @top_left_cell.nil?
132
+ row = @y_split || 0
133
+ column = @x_split || 0
134
+ @top_left_cell = "#{('A'..'ZZ').to_a[column]}#{row + 1}"
135
+ end
136
+ end
137
+ end
138
+ end