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,213 +1,206 @@
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
+ module Axlsx
2
+ # View options for a worksheet.
3
+ #
4
+ # @note The recommended way to manage the sheet view is via Worksheet#sheet_view
5
+ # @see Worksheet#sheet_view
6
+ class SheetView
7
+ include Axlsx::OptionsParser
8
+ include Axlsx::Accessors
9
+ include Axlsx::SerializedAttributes
10
+
11
+ # Creates a new {SheetView} object
12
+ # @option options [Integer] color_id Color Id
13
+ # @option options [Boolean] default_grid_color Default Grid Color
14
+ # @option options [Boolean] right_to_left Right To Left
15
+ # @option options [Boolean] show_formulas Show Formulas
16
+ # @option options [Boolean] show_grid_lines Show Grid Lines
17
+ # @option options [Boolean] show_outline_symbols Show Outline Symbols
18
+ # @option options [Boolean] show_row_col_headers Show Headers
19
+ # @option options [Boolean] show_ruler Show Ruler
20
+ # @option options [Boolean] show_white_space Show White Space
21
+ # @option options [Boolean] show_zeros Show Zero Values
22
+ # @option options [Boolean] tab_selected Sheet Tab Selected
23
+ # @option options [String, Cell] top_left_cell Top Left Visible Cell
24
+ # @option options [Symbol] view View Type
25
+ # @option options [Boolean] window_protection Window Protection
26
+ # @option options [Integer] workbook_view_id Workbook View Index
27
+ # @option options [Integer] zoom_scale
28
+ # @option options [Integer] zoom_scale_normal Zoom Scale Normal View
29
+ # @option options [Integer] zoom_scale_page_layout_view Zoom Scale Page Layout View
30
+ # @option options [Integer] zoom_scale_sheet_layout_view Zoom Scale Page Break Preview
31
+ def initialize(options = {})
32
+ # defaults
33
+ @color_id = @top_left_cell = @pane = nil
34
+ @right_to_left = @show_formulas = @show_outline_symbols = @show_white_space = @tab_selected = @window_protection = false
35
+ @default_grid_color = @show_grid_lines = @show_row_col_headers = @show_ruler = @show_zeros = true
36
+ @zoom_scale = 100
37
+ @zoom_scale_normal = @zoom_scale_page_layout_view = @zoom_scale_sheet_layout_view = @workbook_view_id = 0
38
+ @selections = {}
39
+ parse_options options
40
+ end
41
+
42
+ boolean_attr_accessor :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
43
+ :show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols
44
+
45
+ serializable_attributes :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
46
+ :show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols,
47
+ :zoom_scale_sheet_layout_view, :zoom_scale_page_layout_view, :zoom_scale_normal, :workbook_view_id,
48
+ :view, :top_left_cell, :color_id, :zoom_scale
49
+
50
+ # instance values that must be serialized as their own elements - e.g. not attributes.
51
+ CHILD_ELEMENTS = [:pane, :selections]
52
+
53
+ # The pane object for the sheet view
54
+ # @return [Pane]
55
+ # @see [Pane]
56
+ def pane
57
+ @pane ||= Pane.new
58
+ yield @pane if block_given?
59
+ @pane
60
+ end
61
+
62
+ # A hash of selection objects keyed by pane type associated with this sheet view.
63
+ # @return [Hash]
64
+ attr_reader :selections
65
+
66
+ #
67
+ # Color Id
68
+ # Index to the color value for row/column
69
+ # text headings and gridlines. This is an
70
+ # 'index color value' (ICV) rather than
71
+ # rgb value.
72
+ # @see type
73
+ # @return [Integer]
74
+ # default nil
75
+ attr_reader :color_id
76
+
77
+ # Top Left Visible Cell
78
+ # Location of the top left visible cell Location
79
+ # of the top left visible cell in the bottom right
80
+ # pane (when in Left-to-Right mode).
81
+ # @see type
82
+ # @return [String]
83
+ # default nil
84
+ attr_reader :top_left_cell
85
+
86
+ # View Type
87
+ # Indicates the view type.
88
+ # Options are
89
+ # * normal: Normal view
90
+ # * page_break_preview: Page break preview
91
+ # * page_layout: Page Layout View
92
+ # @see type
93
+ # @return [Symbol]
94
+ # default :normal
95
+ attr_reader :view
96
+
97
+ # Workbook View Index
98
+ # Zero-based index of this workbook view, pointing
99
+ # to a workbookView element in the bookViews collection.
100
+ # @see type
101
+ # @return [Integer]
102
+ # default 0
103
+ attr_reader :workbook_view_id
104
+
105
+ # Zoom Scale
106
+ # Window zoom magnification for current view
107
+ # representing percent values. This attribute
108
+ # is restricted to values ranging from 10 to 400.
109
+ # Horizontal & Vertical scale together.
110
+ # Current view can be Normal, Page Layout, or
111
+ # Page Break Preview.
112
+ # @see type
113
+ # @return [Integer]
114
+ # default 100
115
+ attr_reader :zoom_scale
116
+
117
+ # Zoom Scale Normal View
118
+ # Zoom magnification to use when in normal view,
119
+ # representing percent values. This attribute is
120
+ # restricted to values ranging from 10 to 400.
121
+ # Horizontal & Vertical scale together.
122
+ # Applies for worksheets only; zero implies the
123
+ # automatic setting.
124
+ # @see type
125
+ # @return [Integer]
126
+ # default 0
127
+ attr_reader :zoom_scale_normal
128
+
129
+ # Zoom Scale Page Layout View
130
+ # Zoom magnification to use when in page layout
131
+ # view, representing percent values. This attribute
132
+ # is restricted to values ranging from 10 to 400.
133
+ # Horizontal & Vertical scale together.
134
+ # Applies for worksheets only; zero implies
135
+ # the automatic setting.
136
+ # @see type
137
+ # @return [Integer]
138
+ # default 0
139
+ attr_reader :zoom_scale_page_layout_view
140
+
141
+ # Zoom Scale Page Break Preview
142
+ # Zoom magnification to use when in page break
143
+ # preview, representing percent values. This
144
+ # attribute is restricted to values ranging
145
+ # from 10 to 400. Horizontal & Vertical scale
146
+ # together.
147
+ # Applies for worksheet only; zero implies
148
+ # the automatic setting.
149
+ # @see type
150
+ # @return [Integer]
151
+ # default 0
152
+ attr_reader :zoom_scale_sheet_layout_view
153
+
154
+ # Adds a new selection
155
+ # param [Symbol] pane
156
+ # param [Hash] options
157
+ # return [Selection]
158
+ def add_selection(pane, options = {})
159
+ @selections[pane] = Selection.new(options.merge(:pane => pane))
160
+ end
161
+
162
+ # @see color_id
163
+ def color_id=(v); Axlsx::validate_unsigned_int(v); @color_id = v end
164
+
165
+ # @see top_left_cell
166
+ def top_left_cell=(v)
167
+ cell = (v.class == Axlsx::Cell ? v.r_abs : v)
168
+ Axlsx::validate_string(cell)
169
+ @top_left_cell = cell
170
+ end
171
+
172
+ # @see view
173
+ def view=(v); Axlsx::validate_sheet_view_type(v); @view = v end
174
+
175
+ # @see workbook_view_id
176
+ def workbook_view_id=(v); Axlsx::validate_unsigned_int(v); @workbook_view_id = v end
177
+
178
+ # @see zoom_scale
179
+ def zoom_scale=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale = v end
180
+
181
+ # @see zoom_scale_normal
182
+ def zoom_scale_normal=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_normal = v end
183
+
184
+ # @see zoom_scale_page_layout_view
185
+ def zoom_scale_page_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_page_layout_view = v end
186
+
187
+ # @see zoom_scale_sheet_layout_view
188
+ def zoom_scale_sheet_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_sheet_layout_view = v end
189
+
190
+ # Serializes the data validation
191
+ # @param [String] str
192
+ # @return [String]
193
+ def to_xml_string(str = '')
194
+ str << '<sheetViews>'
195
+ str << '<sheetView '
196
+ serialized_attributes str
197
+ str << '>'
198
+ @pane.to_xml_string(str) if @pane
199
+ @selections.each do |key, selection|
200
+ selection.to_xml_string(str)
201
+ end
202
+ str << '</sheetView>'
203
+ str << '</sheetViews>'
204
+ end
205
+ end
206
+ end
@@ -1,102 +1,100 @@
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
1
+ module Axlsx
2
+ # Table
3
+ # @note Worksheet#add_table is the recommended way to create tables for your worksheets.
4
+ # @see README for examples
5
+ class Table
6
+ include Axlsx::OptionsParser
7
+
8
+ # Creates a new Table object
9
+ # @param [String] ref The reference to the table data like 'A1:G24'.
10
+ # @param [Worksheet] sheet The sheet containing the table data.
11
+ # @option options [Cell, String] name
12
+ # @option options [TableStyle] style
13
+ def initialize(ref, sheet, options = {})
14
+ @ref = ref
15
+ @sheet = sheet
16
+ @style = nil
17
+ @sheet.workbook.tables << self
18
+ @table_style_info = TableStyleInfo.new(options[:style_info]) if options[:style_info]
19
+ @name = "Table#{index + 1}"
20
+ parse_options options
21
+ yield self if block_given?
22
+ end
23
+
24
+ # The reference to the table data
25
+ # @return [String]
26
+ attr_reader :ref
27
+
28
+ # The name of the table.
29
+ # @return [String]
30
+ attr_reader :name
31
+
32
+ # The style for the table.
33
+ # @return [TableStyle]
34
+ attr_reader :style
35
+
36
+ # The index of this chart in the workbooks charts collection
37
+ # @return [Integer]
38
+ def index
39
+ @sheet.workbook.tables.index(self)
40
+ end
41
+
42
+ # The part name for this table
43
+ # @return [String]
44
+ def pn
45
+ "#{TABLE_PN % (index + 1)}"
46
+ end
47
+
48
+ # The relationship id for this table.
49
+ # @see Relationship#Id
50
+ # @return [String]
51
+ def rId
52
+ @sheet.relationships.for(self).Id
53
+ end
54
+
55
+ # The name of the Table.
56
+ # @param [String, Cell] v
57
+ # @return [Title]
58
+ def name=(v)
59
+ DataTypeValidator.validate :table_name, [String], v
60
+ if v.is_a?(String)
61
+ @name = v
62
+ end
63
+ end
64
+
65
+ # TableStyleInfo for the table.
66
+ # initialization can be fed via the :style_info option
67
+ def table_style_info
68
+ @table_style_info ||= TableStyleInfo.new
69
+ end
70
+
71
+ # Serializes the object
72
+ # @param [String] str
73
+ # @return [String]
74
+ def to_xml_string(str = '')
75
+ str << '<?xml version="1.0" encoding="UTF-8"?>'
76
+ str << ('<table xmlns="' << XML_NS << '" id="' << (index + 1).to_s << '" name="' << @name << '" displayName="' << @name.gsub(/\s/, '_') << '" ')
77
+ str << ('ref="' << @ref << '" totalsRowShown="0">')
78
+ str << ('<autoFilter ref="' << @ref << '"/>')
79
+ str << ('<tableColumns count="' << header_cells.length.to_s << '">')
80
+ header_cells.each_with_index do |cell, index|
81
+ str << ('<tableColumn id ="' << (index + 1).to_s << '" name="' << cell.clean_value << '"/>')
82
+ end
83
+ str << '</tableColumns>'
84
+ table_style_info.to_xml_string(str)
85
+ str << '</table>'
86
+ end
87
+
88
+ # The style for the table.
89
+ # TODO
90
+ # def style=(v) DataTypeValidator.validate "Table.style", Integer, v, lambda { |arg| arg >= 1 && arg <= 48 }; @style = v; end
91
+
92
+ private
93
+
94
+ # get the header cells (hackish)
95
+ def header_cells
96
+ header = @ref.gsub(/^(\w+?)(\d+)\:(\w+?)\d+$/, '\1\2:\3\2')
97
+ @sheet[header]
98
+ end
99
+ end
100
+ end