caxlsx 3.0.4 → 3.2.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 (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -334
  5. data/LICENSE +21 -21
  6. data/README.md +168 -170
  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 -151
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -143
  22. data/lib/axlsx/drawing/bar_series.rb +97 -80
  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 +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -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 -98
  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 +97 -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 +388 -363
  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 -71
  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 +494 -420
  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 +410 -401
  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 +395 -370
  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/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -162
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -170
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -71
  186. data/test/drawing/tc_bar_chart.rb +86 -71
  187. data/test/drawing/tc_bar_series.rb +46 -37
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -12
  247. data/test/tc_package.rb +317 -264
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -139
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -67
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +11 -11
@@ -1,213 +1,213 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # View options for a worksheet.
4
- #
5
- # @note The recommended way to manage the sheet view is via Worksheet#sheet_view
6
- # @see Worksheet#sheet_view
7
- class SheetView
8
-
9
- include Axlsx::OptionsParser
10
- include Axlsx::Accessors
11
- include Axlsx::SerializedAttributes
12
-
13
- # Creates a new {SheetView} object
14
- # @option options [Integer] color_id Color Id
15
- # @option options [Boolean] default_grid_color Default Grid Color
16
- # @option options [Boolean] right_to_left Right To Left
17
- # @option options [Boolean] show_formulas Show Formulas
18
- # @option options [Boolean] show_grid_lines Show Grid Lines
19
- # @option options [Boolean] show_outline_symbols Show Outline Symbols
20
- # @option options [Boolean] show_row_col_headers Show Headers
21
- # @option options [Boolean] show_ruler Show Ruler
22
- # @option options [Boolean] show_white_space Show White Space
23
- # @option options [Boolean] show_zeros Show Zero Values
24
- # @option options [Boolean] tab_selected Sheet Tab Selected
25
- # @option options [String, Cell] top_left_cell Top Left Visible Cell
26
- # @option options [Symbol] view View Type
27
- # @option options [Boolean] window_protection Window Protection
28
- # @option options [Integer] workbook_view_id Workbook View Index
29
- # @option options [Integer] zoom_scale
30
- # @option options [Integer] zoom_scale_normal Zoom Scale Normal View
31
- # @option options [Integer] zoom_scale_page_layout_view Zoom Scale Page Layout View
32
- # @option options [Integer] zoom_scale_sheet_layout_view Zoom Scale Page Break Preview
33
- def initialize(options={})
34
- #defaults
35
- @color_id = @top_left_cell = @pane = nil
36
- @right_to_left = @show_formulas = @show_outline_symbols = @show_white_space = @tab_selected = @window_protection = false
37
- @default_grid_color = @show_grid_lines = @show_row_col_headers = @show_ruler = @show_zeros = true
38
- @zoom_scale = 100
39
- @zoom_scale_normal = @zoom_scale_page_layout_view = @zoom_scale_sheet_layout_view = @workbook_view_id = 0
40
- @selections = {}
41
- parse_options options
42
- end
43
-
44
- boolean_attr_accessor :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
45
- :show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols
46
-
47
- serializable_attributes :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
48
- :show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols,
49
- :zoom_scale_sheet_layout_view, :zoom_scale_page_layout_view, :zoom_scale_normal, :workbook_view_id,
50
- :view, :top_left_cell, :color_id, :zoom_scale
51
-
52
-
53
- # instance values that must be serialized as their own elements - e.g. not attributes.
54
- CHILD_ELEMENTS = [ :pane, :selections ]
55
-
56
- # The pane object for the sheet view
57
- # @return [Pane]
58
- # @see [Pane]
59
- def pane
60
- @pane ||= Pane.new
61
- yield @pane if block_given?
62
- @pane
63
- end
64
-
65
- # A hash of selection objects keyed by pane type associated with this sheet view.
66
- # @return [Hash]
67
- attr_reader :selections
68
-
69
- #
70
- # Color Id
71
- # Index to the color value for row/column
72
- # text headings and gridlines. This is an
73
- # 'index color value' (ICV) rather than
74
- # rgb value.
75
- # @see type
76
- # @return [Integer]
77
- # default nil
78
- attr_reader :color_id
79
-
80
- # Top Left Visible Cell
81
- # Location of the top left visible cell Location
82
- # of the top left visible cell in the bottom right
83
- # pane (when in Left-to-Right mode).
84
- # @see type
85
- # @return [String]
86
- # default nil
87
- attr_reader :top_left_cell
88
-
89
-
90
- # View Type
91
- # Indicates the view type.
92
- # Options are
93
- # * normal: Normal view
94
- # * page_break_preview: Page break preview
95
- # * page_layout: Page Layout View
96
- # @see type
97
- # @return [Symbol]
98
- # default :normal
99
- attr_reader :view
100
-
101
- # Workbook View Index
102
- # Zero-based index of this workbook view, pointing
103
- # to a workbookView element in the bookViews collection.
104
- # @see type
105
- # @return [Integer]
106
- # default 0
107
- attr_reader :workbook_view_id
108
-
109
- # Zoom Scale
110
- # Window zoom magnification for current view
111
- # representing percent values. This attribute
112
- # is restricted to values ranging from 10 to 400.
113
- # Horizontal & Vertical scale together.
114
- # Current view can be Normal, Page Layout, or
115
- # Page Break Preview.
116
- # @see type
117
- # @return [Integer]
118
- # default 100
119
- attr_reader :zoom_scale
120
-
121
-
122
- # Zoom Scale Normal View
123
- # Zoom magnification to use when in normal view,
124
- # representing percent values. This attribute is
125
- # restricted to values ranging from 10 to 400.
126
- # Horizontal & Vertical scale together.
127
- # Applies for worksheets only; zero implies the
128
- # automatic setting.
129
- # @see type
130
- # @return [Integer]
131
- # default 0
132
- attr_reader :zoom_scale_normal
133
-
134
-
135
- # Zoom Scale Page Layout View
136
- # Zoom magnification to use when in page layout
137
- # view, representing percent values. This attribute
138
- # is restricted to values ranging from 10 to 400.
139
- # Horizontal & Vertical scale together.
140
- # Applies for worksheets only; zero implies
141
- # the automatic setting.
142
- # @see type
143
- # @return [Integer]
144
- # default 0
145
- attr_reader :zoom_scale_page_layout_view
146
-
147
-
148
- # Zoom Scale Page Break Preview
149
- # Zoom magnification to use when in page break
150
- # preview, representing percent values. This
151
- # attribute is restricted to values ranging
152
- # from 10 to 400. Horizontal & Vertical scale
153
- # together.
154
- # Applies for worksheet only; zero implies
155
- # the automatic setting.
156
- # @see type
157
- # @return [Integer]
158
- # default 0
159
- attr_reader :zoom_scale_sheet_layout_view
160
-
161
- # Adds a new selection
162
- # param [Symbol] pane
163
- # param [Hash] options
164
- # return [Selection]
165
- def add_selection(pane, options = {})
166
- @selections[pane] = Selection.new(options.merge(:pane => pane))
167
- end
168
-
169
- # @see color_id
170
- def color_id=(v); Axlsx::validate_unsigned_int(v); @color_id = v end
171
-
172
- # @see top_left_cell
173
- def top_left_cell=(v)
174
- cell = (v.class == Axlsx::Cell ? v.r_abs : v)
175
- Axlsx::validate_string(cell)
176
- @top_left_cell = cell
177
- end
178
-
179
- # @see view
180
- def view=(v); Axlsx::validate_sheet_view_type(v); @view = v end
181
-
182
- # @see workbook_view_id
183
- def workbook_view_id=(v); Axlsx::validate_unsigned_int(v); @workbook_view_id = v end
184
-
185
- # @see zoom_scale
186
- def zoom_scale=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale = v end
187
-
188
- # @see zoom_scale_normal
189
- def zoom_scale_normal=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_normal = v end
190
-
191
- # @see zoom_scale_page_layout_view
192
- def zoom_scale_page_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_page_layout_view = v end
193
-
194
- # @see zoom_scale_sheet_layout_view
195
- def zoom_scale_sheet_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_sheet_layout_view = v end
196
-
197
- # Serializes the data validation
198
- # @param [String] str
199
- # @return [String]
200
- def to_xml_string(str = '')
201
- str << '<sheetViews>'
202
- str << '<sheetView '
203
- serialized_attributes str
204
- str << '>'
205
- @pane.to_xml_string(str) if @pane
206
- @selections.each do |key, selection|
207
- selection.to_xml_string(str)
208
- end
209
- str << '</sheetView>'
210
- str << '</sheetViews>'
211
- end
212
- end
213
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # View options for a worksheet.
4
+ #
5
+ # @note The recommended way to manage the sheet view is via Worksheet#sheet_view
6
+ # @see Worksheet#sheet_view
7
+ class SheetView
8
+
9
+ include Axlsx::OptionsParser
10
+ include Axlsx::Accessors
11
+ include Axlsx::SerializedAttributes
12
+
13
+ # Creates a new {SheetView} object
14
+ # @option options [Integer] color_id Color Id
15
+ # @option options [Boolean] default_grid_color Default Grid Color
16
+ # @option options [Boolean] right_to_left Right To Left
17
+ # @option options [Boolean] show_formulas Show Formulas
18
+ # @option options [Boolean] show_grid_lines Show Grid Lines
19
+ # @option options [Boolean] show_outline_symbols Show Outline Symbols
20
+ # @option options [Boolean] show_row_col_headers Show Headers
21
+ # @option options [Boolean] show_ruler Show Ruler
22
+ # @option options [Boolean] show_white_space Show White Space
23
+ # @option options [Boolean] show_zeros Show Zero Values
24
+ # @option options [Boolean] tab_selected Sheet Tab Selected
25
+ # @option options [String, Cell] top_left_cell Top Left Visible Cell
26
+ # @option options [Symbol] view View Type
27
+ # @option options [Boolean] window_protection Window Protection
28
+ # @option options [Integer] workbook_view_id Workbook View Index
29
+ # @option options [Integer] zoom_scale
30
+ # @option options [Integer] zoom_scale_normal Zoom Scale Normal View
31
+ # @option options [Integer] zoom_scale_page_layout_view Zoom Scale Page Layout View
32
+ # @option options [Integer] zoom_scale_sheet_layout_view Zoom Scale Page Break Preview
33
+ def initialize(options={})
34
+ #defaults
35
+ @color_id = @top_left_cell = @pane = nil
36
+ @right_to_left = @show_formulas = @show_outline_symbols = @show_white_space = @tab_selected = @window_protection = false
37
+ @default_grid_color = @show_grid_lines = @show_row_col_headers = @show_ruler = @show_zeros = true
38
+ @zoom_scale = 100
39
+ @zoom_scale_normal = @zoom_scale_page_layout_view = @zoom_scale_sheet_layout_view = @workbook_view_id = 0
40
+ @selections = {}
41
+ parse_options options
42
+ end
43
+
44
+ boolean_attr_accessor :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
45
+ :show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols
46
+
47
+ serializable_attributes :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
48
+ :show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols,
49
+ :zoom_scale_sheet_layout_view, :zoom_scale_page_layout_view, :zoom_scale_normal, :workbook_view_id,
50
+ :view, :top_left_cell, :color_id, :zoom_scale
51
+
52
+
53
+ # instance values that must be serialized as their own elements - e.g. not attributes.
54
+ CHILD_ELEMENTS = [ :pane, :selections ]
55
+
56
+ # The pane object for the sheet view
57
+ # @return [Pane]
58
+ # @see [Pane]
59
+ def pane
60
+ @pane ||= Pane.new
61
+ yield @pane if block_given?
62
+ @pane
63
+ end
64
+
65
+ # A hash of selection objects keyed by pane type associated with this sheet view.
66
+ # @return [Hash]
67
+ attr_reader :selections
68
+
69
+ #
70
+ # Color Id
71
+ # Index to the color value for row/column
72
+ # text headings and gridlines. This is an
73
+ # 'index color value' (ICV) rather than
74
+ # rgb value.
75
+ # @see type
76
+ # @return [Integer]
77
+ # default nil
78
+ attr_reader :color_id
79
+
80
+ # Top Left Visible Cell
81
+ # Location of the top left visible cell Location
82
+ # of the top left visible cell in the bottom right
83
+ # pane (when in Left-to-Right mode).
84
+ # @see type
85
+ # @return [String]
86
+ # default nil
87
+ attr_reader :top_left_cell
88
+
89
+
90
+ # View Type
91
+ # Indicates the view type.
92
+ # Options are
93
+ # * normal: Normal view
94
+ # * page_break_preview: Page break preview
95
+ # * page_layout: Page Layout View
96
+ # @see type
97
+ # @return [Symbol]
98
+ # default :normal
99
+ attr_reader :view
100
+
101
+ # Workbook View Index
102
+ # Zero-based index of this workbook view, pointing
103
+ # to a workbookView element in the bookViews collection.
104
+ # @see type
105
+ # @return [Integer]
106
+ # default 0
107
+ attr_reader :workbook_view_id
108
+
109
+ # Zoom Scale
110
+ # Window zoom magnification for current view
111
+ # representing percent values. This attribute
112
+ # is restricted to values ranging from 10 to 400.
113
+ # Horizontal & Vertical scale together.
114
+ # Current view can be Normal, Page Layout, or
115
+ # Page Break Preview.
116
+ # @see type
117
+ # @return [Integer]
118
+ # default 100
119
+ attr_reader :zoom_scale
120
+
121
+
122
+ # Zoom Scale Normal View
123
+ # Zoom magnification to use when in normal view,
124
+ # representing percent values. This attribute is
125
+ # restricted to values ranging from 10 to 400.
126
+ # Horizontal & Vertical scale together.
127
+ # Applies for worksheets only; zero implies the
128
+ # automatic setting.
129
+ # @see type
130
+ # @return [Integer]
131
+ # default 0
132
+ attr_reader :zoom_scale_normal
133
+
134
+
135
+ # Zoom Scale Page Layout View
136
+ # Zoom magnification to use when in page layout
137
+ # view, representing percent values. This attribute
138
+ # is restricted to values ranging from 10 to 400.
139
+ # Horizontal & Vertical scale together.
140
+ # Applies for worksheets only; zero implies
141
+ # the automatic setting.
142
+ # @see type
143
+ # @return [Integer]
144
+ # default 0
145
+ attr_reader :zoom_scale_page_layout_view
146
+
147
+
148
+ # Zoom Scale Page Break Preview
149
+ # Zoom magnification to use when in page break
150
+ # preview, representing percent values. This
151
+ # attribute is restricted to values ranging
152
+ # from 10 to 400. Horizontal & Vertical scale
153
+ # together.
154
+ # Applies for worksheet only; zero implies
155
+ # the automatic setting.
156
+ # @see type
157
+ # @return [Integer]
158
+ # default 0
159
+ attr_reader :zoom_scale_sheet_layout_view
160
+
161
+ # Adds a new selection
162
+ # param [Symbol] pane
163
+ # param [Hash] options
164
+ # return [Selection]
165
+ def add_selection(pane, options = {})
166
+ @selections[pane] = Selection.new(options.merge(:pane => pane))
167
+ end
168
+
169
+ # @see color_id
170
+ def color_id=(v); Axlsx::validate_unsigned_int(v); @color_id = v end
171
+
172
+ # @see top_left_cell
173
+ def top_left_cell=(v)
174
+ cell = (v.class == Axlsx::Cell ? v.r_abs : v)
175
+ Axlsx::validate_string(cell)
176
+ @top_left_cell = cell
177
+ end
178
+
179
+ # @see view
180
+ def view=(v); Axlsx::validate_sheet_view_type(v); @view = v end
181
+
182
+ # @see workbook_view_id
183
+ def workbook_view_id=(v); Axlsx::validate_unsigned_int(v); @workbook_view_id = v end
184
+
185
+ # @see zoom_scale
186
+ def zoom_scale=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale = v end
187
+
188
+ # @see zoom_scale_normal
189
+ def zoom_scale_normal=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_normal = v end
190
+
191
+ # @see zoom_scale_page_layout_view
192
+ def zoom_scale_page_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_page_layout_view = v end
193
+
194
+ # @see zoom_scale_sheet_layout_view
195
+ def zoom_scale_sheet_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_sheet_layout_view = v end
196
+
197
+ # Serializes the data validation
198
+ # @param [String] str
199
+ # @return [String]
200
+ def to_xml_string(str = '')
201
+ str << '<sheetViews>'
202
+ str << '<sheetView '
203
+ serialized_attributes str
204
+ str << '>'
205
+ @pane.to_xml_string(str) if @pane
206
+ @selections.each do |key, selection|
207
+ selection.to_xml_string(str)
208
+ end
209
+ str << '</sheetView>'
210
+ str << '</sheetViews>'
211
+ end
212
+ end
213
+ end
@@ -1,102 +1,102 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # Table
4
- # @note Worksheet#add_table is the recommended way to create tables for your worksheets.
5
- # @see README for examples
6
- class Table
7
-
8
- include Axlsx::OptionsParser
9
-
10
- # Creates a new Table object
11
- # @param [String] ref The reference to the table data like 'A1:G24'.
12
- # @param [Worksheet] sheet The sheet containing the table data.
13
- # @option options [Cell, String] name
14
- # @option options [TableStyle] style
15
- def initialize(ref, sheet, options={})
16
- @ref = ref
17
- @sheet = sheet
18
- @style = nil
19
- @sheet.workbook.tables << self
20
- @table_style_info = TableStyleInfo.new(options[:style_info]) if options[:style_info]
21
- @name = "Table#{index+1}"
22
- parse_options options
23
- yield self if block_given?
24
- end
25
-
26
- # The reference to the table data
27
- # @return [String]
28
- attr_reader :ref
29
-
30
- # The name of the table.
31
- # @return [String]
32
- attr_reader :name
33
-
34
- # The style for the table.
35
- # @return [TableStyle]
36
- attr_reader :style
37
-
38
- # The index of this chart in the workbooks charts collection
39
- # @return [Integer]
40
- def index
41
- @sheet.workbook.tables.index(self)
42
- end
43
-
44
- # The part name for this table
45
- # @return [String]
46
- def pn
47
- "#{TABLE_PN % (index+1)}"
48
- end
49
-
50
- # The relationship id for this table.
51
- # @see Relationship#Id
52
- # @return [String]
53
- def rId
54
- @sheet.relationships.for(self).Id
55
- end
56
-
57
- # The name of the Table.
58
- # @param [String, Cell] v
59
- # @return [Title]
60
- def name=(v)
61
- DataTypeValidator.validate :table_name, [String], v
62
- if v.is_a?(String)
63
- @name = v
64
- end
65
- end
66
-
67
- # TableStyleInfo for the table.
68
- # initialization can be fed via the :style_info option
69
- def table_style_info
70
- @table_style_info ||= TableStyleInfo.new
71
- end
72
-
73
- # Serializes the object
74
- # @param [String] str
75
- # @return [String]
76
- def to_xml_string(str = '')
77
- str << '<?xml version="1.0" encoding="UTF-8"?>'
78
- str << ('<table xmlns="' << XML_NS << '" id="' << (index+1).to_s << '" name="' << @name << '" displayName="' << @name.gsub(/\s/,'_') << '" ')
79
- str << ('ref="' << @ref << '" totalsRowShown="0">')
80
- str << ('<autoFilter ref="' << @ref << '"/>')
81
- str << ('<tableColumns count="' << header_cells.length.to_s << '">')
82
- header_cells.each_with_index do |cell,index|
83
- str << ('<tableColumn id ="' << (index+1).to_s << '" name="' << cell.value << '"/>')
84
- end
85
- str << '</tableColumns>'
86
- table_style_info.to_xml_string(str)
87
- str << '</table>'
88
- end
89
-
90
- # The style for the table.
91
- # TODO
92
- # def style=(v) DataTypeValidator.validate "Table.style", Integer, v, lambda { |arg| arg >= 1 && arg <= 48 }; @style = v; end
93
-
94
- private
95
-
96
- # get the header cells (hackish)
97
- def header_cells
98
- header = @ref.gsub(/^(\w+?)(\d+)\:(\w+?)\d+$/, '\1\2:\3\2')
99
- @sheet[header]
100
- end
101
- end
102
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # Table
4
+ # @note Worksheet#add_table is the recommended way to create tables for your worksheets.
5
+ # @see README for examples
6
+ class Table
7
+
8
+ include Axlsx::OptionsParser
9
+
10
+ # Creates a new Table object
11
+ # @param [String] ref The reference to the table data like 'A1:G24'.
12
+ # @param [Worksheet] sheet The sheet containing the table data.
13
+ # @option options [Cell, String] name
14
+ # @option options [TableStyle] style
15
+ def initialize(ref, sheet, options={})
16
+ @ref = ref
17
+ @sheet = sheet
18
+ @style = nil
19
+ @sheet.workbook.tables << self
20
+ @table_style_info = TableStyleInfo.new(options[:style_info]) if options[:style_info]
21
+ @name = "Table#{index+1}"
22
+ parse_options options
23
+ yield self if block_given?
24
+ end
25
+
26
+ # The reference to the table data
27
+ # @return [String]
28
+ attr_reader :ref
29
+
30
+ # The name of the table.
31
+ # @return [String]
32
+ attr_reader :name
33
+
34
+ # The style for the table.
35
+ # @return [TableStyle]
36
+ attr_reader :style
37
+
38
+ # The index of this chart in the workbooks charts collection
39
+ # @return [Integer]
40
+ def index
41
+ @sheet.workbook.tables.index(self)
42
+ end
43
+
44
+ # The part name for this table
45
+ # @return [String]
46
+ def pn
47
+ "#{TABLE_PN % (index+1)}"
48
+ end
49
+
50
+ # The relationship id for this table.
51
+ # @see Relationship#Id
52
+ # @return [String]
53
+ def rId
54
+ @sheet.relationships.for(self).Id
55
+ end
56
+
57
+ # The name of the Table.
58
+ # @param [String, Cell] v
59
+ # @return [Title]
60
+ def name=(v)
61
+ DataTypeValidator.validate :table_name, [String], v
62
+ if v.is_a?(String)
63
+ @name = v
64
+ end
65
+ end
66
+
67
+ # TableStyleInfo for the table.
68
+ # initialization can be fed via the :style_info option
69
+ def table_style_info
70
+ @table_style_info ||= TableStyleInfo.new
71
+ end
72
+
73
+ # Serializes the object
74
+ # @param [String] str
75
+ # @return [String]
76
+ def to_xml_string(str = '')
77
+ str << '<?xml version="1.0" encoding="UTF-8"?>'
78
+ str << ('<table xmlns="' << XML_NS << '" id="' << (index+1).to_s << '" name="' << @name << '" displayName="' << @name.gsub(/\s/,'_') << '" ')
79
+ str << ('ref="' << @ref << '" totalsRowShown="0">')
80
+ str << ('<autoFilter ref="' << @ref << '"/>')
81
+ str << ('<tableColumns count="' << header_cells.length.to_s << '">')
82
+ header_cells.each_with_index do |cell,index|
83
+ str << ('<tableColumn id ="' << (index+1).to_s << '" name="' << cell.clean_value << '"/>')
84
+ end
85
+ str << '</tableColumns>'
86
+ table_style_info.to_xml_string(str)
87
+ str << '</table>'
88
+ end
89
+
90
+ # The style for the table.
91
+ # TODO
92
+ # def style=(v) DataTypeValidator.validate "Table.style", Integer, v, lambda { |arg| arg >= 1 && arg <= 48 }; @style = v; end
93
+
94
+ private
95
+
96
+ # get the header cells (hackish)
97
+ def header_cells
98
+ header = @ref.gsub(/^(\w+?)(\d+)\:(\w+?)\d+$/, '\1\2:\3\2')
99
+ @sheet[header]
100
+ end
101
+ end
102
+ end