axlsx 1.1.4 → 1.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 (196) hide show
  1. data/.yardopts +5 -2
  2. data/CHANGELOG.md +39 -0
  3. data/README.md +108 -31
  4. data/Rakefile +11 -3
  5. data/examples/basic_charts.rb +54 -0
  6. data/examples/chart_colors.rb +17 -2
  7. data/examples/data_validation.rb +50 -0
  8. data/examples/example.rb +130 -47
  9. data/examples/example.xlsx +0 -0
  10. data/examples/example_streamed.xlsx +0 -0
  11. data/examples/extractive.pdf +0 -0
  12. data/examples/extractive.rb +3 -0
  13. data/examples/no-use_autowidth.xlsx +0 -0
  14. data/examples/scraping_html.rb +91 -0
  15. data/examples/shared_strings_example.xlsx +0 -0
  16. data/examples/sheet_protection.rb +10 -0
  17. data/examples/sheet_view.rb +34 -0
  18. data/examples/two_cell_anchor_image.rb +11 -0
  19. data/lib/axlsx/content_type/content_type.rb +2 -0
  20. data/lib/axlsx/content_type/default.rb +30 -15
  21. data/lib/axlsx/content_type/override.rb +29 -14
  22. data/lib/axlsx/doc_props/app.rb +161 -104
  23. data/lib/axlsx/doc_props/core.rb +9 -5
  24. data/lib/axlsx/drawing/ax_data_source.rb +7 -6
  25. data/lib/axlsx/drawing/axis.rb +82 -36
  26. data/lib/axlsx/drawing/bar_3D_chart.rb +49 -45
  27. data/lib/axlsx/drawing/bar_series.rb +2 -1
  28. data/lib/axlsx/drawing/cat_axis.rb +43 -39
  29. data/lib/axlsx/drawing/chart.rb +65 -54
  30. data/lib/axlsx/drawing/d_lbls.rb +100 -0
  31. data/lib/axlsx/drawing/drawing.rb +20 -8
  32. data/lib/axlsx/drawing/graphic_frame.rb +2 -1
  33. data/lib/axlsx/drawing/line_3D_chart.rb +3 -10
  34. data/lib/axlsx/drawing/num_data.rb +2 -2
  35. data/lib/axlsx/drawing/num_data_source.rb +4 -1
  36. data/lib/axlsx/drawing/pic.rb +44 -4
  37. data/lib/axlsx/drawing/pie_3D_chart.rb +10 -7
  38. data/lib/axlsx/drawing/scatter_chart.rb +2 -8
  39. data/lib/axlsx/drawing/title.rb +21 -9
  40. data/lib/axlsx/drawing/two_cell_anchor.rb +46 -9
  41. data/lib/axlsx/drawing/view_3D.rb +41 -31
  42. data/lib/axlsx/drawing/vml_drawing.rb +42 -0
  43. data/lib/axlsx/drawing/vml_shape.rb +125 -0
  44. data/lib/axlsx/package.rb +44 -16
  45. data/lib/axlsx/rels/relationship.rb +3 -3
  46. data/lib/axlsx/rels/relationships.rb +1 -11
  47. data/lib/axlsx/stylesheet/gradient_fill.rb +1 -1
  48. data/lib/axlsx/stylesheet/styles.rb +1 -1
  49. data/lib/axlsx/stylesheet/table_style.rb +3 -3
  50. data/lib/axlsx/util/constants.rb +28 -0
  51. data/lib/axlsx/util/simple_typed_list.rb +15 -21
  52. data/lib/axlsx/util/validators.rb +80 -7
  53. data/lib/axlsx/version.rb +2 -7
  54. data/lib/axlsx/workbook/defined_name.rb +174 -0
  55. data/lib/axlsx/workbook/defined_names.rb +21 -0
  56. data/lib/axlsx/workbook/workbook.rb +65 -13
  57. data/lib/axlsx/workbook/worksheet/auto_filter.rb +34 -0
  58. data/lib/axlsx/workbook/worksheet/cell.rb +35 -7
  59. data/lib/axlsx/workbook/worksheet/col.rb +15 -0
  60. data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
  61. data/lib/axlsx/workbook/worksheet/comment.rb +101 -0
  62. data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
  63. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
  64. data/lib/axlsx/workbook/worksheet/data_bar.rb +1 -1
  65. data/lib/axlsx/workbook/worksheet/data_validation.rb +245 -0
  66. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
  67. data/lib/axlsx/workbook/worksheet/dimension.rb +65 -0
  68. data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
  69. data/lib/axlsx/workbook/worksheet/page_setup.rb +113 -0
  70. data/lib/axlsx/workbook/worksheet/pane.rb +144 -0
  71. data/lib/axlsx/workbook/worksheet/print_options.rb +63 -0
  72. data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -0
  73. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
  74. data/lib/axlsx/workbook/worksheet/row.rb +36 -20
  75. data/lib/axlsx/workbook/worksheet/selection.rb +111 -0
  76. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
  77. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +24 -0
  78. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +224 -0
  79. data/lib/axlsx/workbook/worksheet/sheet_view.rb +379 -0
  80. data/lib/axlsx/workbook/worksheet/table.rb +2 -2
  81. data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
  82. data/lib/axlsx/workbook/worksheet/worksheet.rb +377 -255
  83. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +57 -0
  84. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +64 -0
  85. data/lib/axlsx.rb +30 -15
  86. data/test/content_type/tc_content_type.rb +1 -6
  87. data/test/doc_props/tc_app.rb +31 -1
  88. data/test/doc_props/tc_core.rb +3 -1
  89. data/test/drawing/tc_axis.rb +38 -3
  90. data/test/drawing/tc_bar_3D_chart.rb +12 -12
  91. data/test/drawing/tc_bar_series.rb +1 -2
  92. data/test/drawing/tc_cat_axis.rb +3 -3
  93. data/test/drawing/tc_chart.rb +29 -9
  94. data/test/drawing/tc_d_lbls.rb +47 -0
  95. data/test/drawing/tc_drawing.rb +11 -5
  96. data/test/drawing/tc_hyperlink.rb +4 -5
  97. data/test/drawing/tc_line_series.rb +7 -3
  98. data/test/drawing/tc_num_data.rb +5 -1
  99. data/test/drawing/tc_pic.rb +22 -2
  100. data/test/drawing/tc_pie_3D_chart.rb +4 -8
  101. data/test/drawing/tc_pie_series.rb +7 -2
  102. data/test/drawing/tc_scatter_chart.rb +6 -1
  103. data/test/drawing/tc_scatter_series.rb +1 -1
  104. data/test/drawing/tc_series.rb +1 -1
  105. data/test/drawing/tc_title.rb +16 -0
  106. data/test/drawing/tc_two_cell_anchor.rb +1 -2
  107. data/test/drawing/tc_view_3D.rb +18 -18
  108. data/test/drawing/tc_vml_drawing.rb +25 -0
  109. data/test/drawing/tc_vml_shape.rb +100 -0
  110. data/test/rels/tc_relationship.rb +1 -0
  111. data/test/stylesheet/tc_gradient_fill.rb +8 -0
  112. data/test/stylesheet/tc_pattern_fill.rb +7 -1
  113. data/test/stylesheet/tc_styles.rb +3 -4
  114. data/test/stylesheet/tc_table_style.rb +8 -0
  115. data/test/stylesheet/tc_table_style_element.rb +10 -1
  116. data/test/tc_helper.rb +1 -0
  117. data/test/tc_package.rb +93 -17
  118. data/test/util/tc_simple_typed_list.rb +13 -0
  119. data/test/util/tc_validators.rb +95 -9
  120. data/test/workbook/tc_defined_name.rb +41 -0
  121. data/test/workbook/tc_workbook.rb +5 -3
  122. data/test/workbook/worksheet/table/tc_table.rb +3 -11
  123. data/test/workbook/worksheet/tc_cell.rb +30 -6
  124. data/test/workbook/worksheet/tc_col.rb +9 -0
  125. data/test/workbook/worksheet/tc_comment.rb +57 -0
  126. data/test/workbook/worksheet/tc_comments.rb +57 -0
  127. data/test/workbook/worksheet/tc_conditional_formatting.rb +44 -0
  128. data/test/workbook/worksheet/tc_data_bar.rb +1 -1
  129. data/test/workbook/worksheet/tc_data_validation.rb +265 -0
  130. data/test/workbook/worksheet/tc_page_setup.rb +138 -0
  131. data/test/workbook/worksheet/tc_pane.rb +94 -0
  132. data/test/workbook/worksheet/tc_print_options.rb +72 -0
  133. data/test/workbook/worksheet/tc_protected_range.rb +17 -0
  134. data/test/workbook/worksheet/tc_row.rb +32 -14
  135. data/test/workbook/worksheet/tc_selection.rb +94 -0
  136. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
  137. data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
  138. data/test/workbook/worksheet/tc_worksheet.rb +138 -48
  139. metadata +140 -80
  140. data/examples/#extractive.csv# +0 -0
  141. data/examples/#extractive.rb# +0 -45
  142. data/examples/chart_colors.rb~ +0 -0
  143. data/examples/chart_colors.xlsx +0 -0
  144. data/examples/colored_series_data.xlsx +0 -0
  145. data/examples/conditional_formatting/getting_barred.xlsx +0 -0
  146. data/examples/example.csv +0 -1000
  147. data/examples/extractive.csv +0 -1
  148. data/examples/extractive.csv~ +0 -1
  149. data/examples/extractive.rb~ +0 -3
  150. data/examples/extractive.xlsx +0 -0
  151. data/examples/stack.rb +0 -21
  152. data/examples/stack.rb~ +0 -27
  153. data/examples/stack.xlsx +0 -0
  154. data/examples/~$chart_colors.xlsx +0 -0
  155. data/examples/~$extractive.xlsx +0 -0
  156. data/lib/axlsx/drawing/ax_data_source.rb~ +0 -55
  157. data/lib/axlsx/drawing/data_source.rb~ +0 -51
  158. data/lib/axlsx/drawing/hlink_click.rb~ +0 -0
  159. data/lib/axlsx/drawing/hyperlink.rb~ +0 -64
  160. data/lib/axlsx/drawing/num_data.rb~ +0 -51
  161. data/lib/axlsx/drawing/num_data_source.rb~ +0 -54
  162. data/lib/axlsx/drawing/num_val.rb~ +0 -40
  163. data/lib/axlsx/drawing/picture_locking.rb~ +0 -36
  164. data/lib/axlsx/drawing/ref.rb~ +0 -41
  165. data/lib/axlsx/drawing/str_data.rb~ +0 -58
  166. data/lib/axlsx/drawing/str_val.rb~ +0 -35
  167. data/lib/axlsx/util/cbf.rb +0 -333
  168. data/lib/axlsx/util/cfb.rb~ +0 -201
  169. data/lib/axlsx/util/font_tables.rb~ +0 -0
  170. data/lib/axlsx/util/ms_off_crypto.rb +0 -189
  171. data/lib/axlsx/util/ms_off_crypto.rb~ +0 -3
  172. data/lib/axlsx/util/ms_offcrypto.rb~ +0 -0
  173. data/lib/axlsx/util/parser.rb~ +0 -6
  174. data/lib/axlsx/util/storage.rb~ +0 -0
  175. data/lib/axlsx/workbook/shared_strings_table.rb~ +0 -69
  176. data/lib/axlsx/workbook/worksheet/cfvo.rb~ +0 -0
  177. data/lib/axlsx/workbook/worksheet/col.rb~ +0 -0
  178. data/lib/axlsx/workbook/worksheet/color_scale.rb~ +0 -46
  179. data/lib/axlsx/workbook/worksheet/data_bar.rb~ +0 -0
  180. data/lib/axlsx/workbook/worksheet/icon_set.rb~ +0 -95
  181. data/lib/axlsx/workbook/worksheet/shared_strings_table.rb~ +0 -0
  182. data/lib/axlsx/workbook/worksheet/table.rb~ +0 -97
  183. data/lib/schema/dc.xsd~ +0 -118
  184. data/lib/schema/dcterms.xsd~ +0 -331
  185. data/lib/schema/opc-coreProperties.xsd~ +0 -50
  186. data/test/drawing/tc_data_source.rb~ +0 -30
  187. data/test/drawing/tc_num_data.rb~ +0 -35
  188. data/test/drawing/tc_num_val.rb~ +0 -29
  189. data/test/drawing/tc_str_data.rb~ +0 -30
  190. data/test/drawing/tc_str_val.rb~ +0 -26
  191. data/test/workbook/worksheet/table/tc_table.rb~ +0 -72
  192. data/test/workbook/worksheet/tc_cfvo.rb~ +0 -20
  193. data/test/workbook/worksheet/tc_col.rb~ +0 -10
  194. data/test/workbook/worksheet/tc_color_scale.rb~ +0 -0
  195. data/test/workbook/worksheet/tc_data_bar.rb~ +0 -0
  196. data/test/workbook/worksheet/tc_icon_set.rb~ +0 -0
@@ -0,0 +1,379 @@
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
+ # instance values that must be serialized as their own elements - e.g. not attributes.
10
+ CHILD_ELEMENTS = [ :pane, :selections ]
11
+
12
+ # The pane object for the sheet view
13
+ # @return [Pane]
14
+ # @see [Pane]
15
+ def pane
16
+ @pane ||= Pane.new
17
+ yield @pane if block_given?
18
+ @pane
19
+ end
20
+
21
+ # A hash of selection objects keyed by pane type associated with this sheet view.
22
+ # @return [Hash]
23
+ attr_reader :selections
24
+
25
+ #
26
+ # Color Id
27
+ # Index to the color value for row/column
28
+ # text headings and gridlines. This is an
29
+ # 'index color value' (ICV) rather than
30
+ # rgb value.
31
+ # @see type
32
+ # @return [Integer]
33
+ # default nil
34
+ attr_reader :color_id
35
+
36
+
37
+ # Default Grid Color
38
+ # Flag indicating that the consuming application
39
+ # should use the default grid lines color
40
+ # (system dependent). Overrides any color
41
+ # specified in colorId.
42
+ # @see type
43
+ # @return [Boolean]
44
+ # default true
45
+ attr_reader :default_grid_color
46
+
47
+
48
+ # Right To Left
49
+ # Flag indicating whether the sheet is in
50
+ # 'right to left' display mode. When in this
51
+ # mode, Column A is on the far right, Column B ;
52
+ # is one column left of Column A, and so on. Also,
53
+ # information in cells is displayed in the Right
54
+ # to Left format.
55
+ # @see type
56
+ # @return [Boolean]
57
+ # default false
58
+ attr_reader :right_to_left
59
+
60
+
61
+ # Show Formulas
62
+ # Flag indicating whether this sheet should
63
+ # display formulas.
64
+ # @see type
65
+ # @return [Boolean]
66
+ # default false
67
+ attr_reader :show_formulas
68
+
69
+
70
+ # Show Grid Lines
71
+ # Flag indicating whether this sheet
72
+ # should display gridlines.
73
+ # @see type
74
+ # @return [Boolean]
75
+ # default true
76
+ attr_reader :show_grid_lines
77
+
78
+
79
+ # Show Outline Symbols
80
+ # Flag indicating whether the sheet has outline
81
+ # symbols visible. This flag shall always override
82
+ # SheetPr element's outlinePr child element
83
+ # whose attribute is named showOutlineSymbols
84
+ # when there is a conflict.
85
+ # @see type
86
+ # @return [Boolean]
87
+ # default false
88
+ attr_reader :show_outline_symbols
89
+
90
+
91
+ # Show Headers
92
+ # Flag indicating whether the sheet should
93
+ # display row and column headings.
94
+ # @see type
95
+ # @return [Boolean]
96
+ # default true
97
+ attr_reader :show_row_col_headers
98
+
99
+
100
+ # Show Ruler
101
+ # Show the ruler in Page Layout View.
102
+ # @see type
103
+ # @return [Boolean]
104
+ # default true
105
+ attr_reader :show_ruler
106
+
107
+
108
+ # Show White Space
109
+ # Flag indicating whether page layout
110
+ # view shall display margins. False means
111
+ # do not display left, right, top (header),
112
+ # and bottom (footer) margins (even when
113
+ # there is data in the header or footer).
114
+ # @see type
115
+ # @return [Boolean]
116
+ # default false
117
+ attr_reader :show_white_space
118
+
119
+
120
+ # Show Zero Values
121
+ # Flag indicating whether the window should
122
+ # show 0 (zero) in cells containing zero value.
123
+ # When false, cells with zero value appear
124
+ # blank instead of showing the number zero.
125
+ # @see type
126
+ # @return [Boolean]
127
+ # default true
128
+ attr_reader :show_zeros
129
+
130
+
131
+ # Sheet Tab Selected
132
+ # Flag indicating whether this sheet is selected.
133
+ # When only 1 sheet is selected and active, this
134
+ # value should be in synch with the activeTab value.
135
+ # In case of a conflict, the Start Part setting
136
+ # wins and sets the active sheet tab. Multiple
137
+ # sheets can be selected, but only one sheet shall
138
+ # be active at one time.
139
+ # @see type
140
+ # @return [Boolean]
141
+ # default false
142
+ attr_reader :tab_selected
143
+
144
+
145
+ # Top Left Visible Cell
146
+ # Location of the top left visible cell Location
147
+ # of the top left visible cell in the bottom right
148
+ # pane (when in Left-to-Right mode).
149
+ # @see type
150
+ # @return [String]
151
+ # default nil
152
+ attr_reader :top_left_cell
153
+
154
+
155
+ # View Type
156
+ # Indicates the view type.
157
+ # Options are
158
+ # * normal: Normal view
159
+ # * page_break_preview: Page break preview
160
+ # * page_layout: Page Layout View
161
+ # @see type
162
+ # @return [Symbol]
163
+ # default :normal
164
+ attr_reader :view
165
+
166
+
167
+ # Window Protection
168
+ # Flag indicating whether the panes in the window
169
+ # are locked due to workbook protection.
170
+ # This is an option when the workbook structure is
171
+ # protected.
172
+ # @see type
173
+ # @return [Boolean]
174
+ # default true
175
+ attr_reader :window_protection
176
+
177
+
178
+ # Workbook View Index
179
+ # Zero-based index of this workbook view, pointing
180
+ # to a workbookView element in the bookViews collection.
181
+ # @see type
182
+ # @return [Integer]
183
+ # default 0
184
+ attr_reader :workbook_view_id
185
+
186
+
187
+ # Zoom Scale
188
+ # Window zoom magnification for current view
189
+ # representing percent values. This attribute
190
+ # is restricted to values ranging from 10 to 400.
191
+ # Horizontal & Vertical scale together.
192
+ # Current view can be Normal, Page Layout, or
193
+ # Page Break Preview.
194
+ # @see type
195
+ # @return [Integer]
196
+ # default 100
197
+ attr_reader :zoom_scale
198
+
199
+
200
+ # Zoom Scale Normal View
201
+ # Zoom magnification to use when in normal view,
202
+ # representing percent values. This attribute is
203
+ # restricted to values ranging from 10 to 400.
204
+ # Horizontal & Vertical scale together.
205
+ # Applies for worksheets only; zero implies the
206
+ # automatic setting.
207
+ # @see type
208
+ # @return [Integer]
209
+ # default 0
210
+ attr_reader :zoom_scale_normal
211
+
212
+
213
+ # Zoom Scale Page Layout View
214
+ # Zoom magnification to use when in page layout
215
+ # view, representing percent values. This attribute
216
+ # is restricted to values ranging from 10 to 400.
217
+ # Horizontal & Vertical scale together.
218
+ # Applies for worksheets only; zero implies
219
+ # the automatic setting.
220
+ # @see type
221
+ # @return [Integer]
222
+ # default 0
223
+ attr_reader :zoom_scale_page_layout_view
224
+
225
+
226
+ # Zoom Scale Page Break Preview
227
+ # Zoom magnification to use when in page break
228
+ # preview, representing percent values. This
229
+ # attribute is restricted to values ranging
230
+ # from 10 to 400. Horizontal & Vertical scale
231
+ # together.
232
+ # Applies for worksheet only; zero implies
233
+ # the automatic setting.
234
+ # @see type
235
+ # @return [Integer]
236
+ # default 0
237
+ attr_reader :zoom_scale_sheet_layout_view
238
+
239
+
240
+ # Creates a new {SheetView} object
241
+ # @option options [Integer] color_id Color Id
242
+ # @option options [Boolean] default_grid_color Default Grid Color
243
+ # @option options [Boolean] right_to_left Right To Left
244
+ # @option options [Boolean] show_formulas Show Formulas
245
+ # @option options [Boolean] show_grid_lines Show Grid Lines
246
+ # @option options [Boolean] show_outline_symbols Show Outline Symbols
247
+ # @option options [Boolean] show_row_col_headers Show Headers
248
+ # @option options [Boolean] show_ruler Show Ruler
249
+ # @option options [Boolean] show_white_space Show White Space
250
+ # @option options [Boolean] show_zeros Show Zero Values
251
+ # @option options [Boolean] tab_selected Sheet Tab Selected
252
+ # @option options [String, Cell] top_left_cell Top Left Visible Cell
253
+ # @option options [Symbol] view View Type
254
+ # @option options [Boolean] window_protection Window Protection
255
+ # @option options [Integer] workbook_view_id Workbook View Index
256
+ # @option options [Integer] zoom_scale_normal Zoom Scale Normal View
257
+ # @option options [Integer] zoom_scale_page_layout_view Zoom Scale Page Layout View
258
+ # @option options [Integer] zoom_scale_sheet_layout_view Zoom Scale Page Break Preview
259
+ def initialize(options={})
260
+ #defaults
261
+ @color_id = @top_left_cell = @pane = nil
262
+ @right_to_left = @show_formulas = @show_outline_symbols = @show_white_space = @tab_selected = @window_protection = false
263
+ @default_grid_color = @show_grid_lines = @show_row_col_headers = @show_ruler = @show_zeros = true
264
+ @zoom_scale = 100
265
+ @zoom_scale_normal = @zoom_scale_page_layout_view = @zoom_scale_sheet_layout_view = @workbook_view_id = 0
266
+ @selections = {}
267
+
268
+ # write options to instance variables
269
+ options.each do |o|
270
+ self.send("#{o[0]}=", o[1]) if self.respond_to? "#{o[0]}="
271
+ end
272
+ end
273
+
274
+
275
+ # Adds a new selection
276
+ # param [Symbol] pane
277
+ # param [Hash] options
278
+ # return [Selection]
279
+ def add_selection(pane, options = {})
280
+ @selections[pane] = Selection.new(options.merge(:pane => pane))
281
+ end
282
+
283
+ # @see color_id
284
+ def color_id=(v); Axlsx::validate_unsigned_int(v); @color_id = v end
285
+
286
+
287
+ # @see default_grid_color
288
+ def default_grid_color=(v); Axlsx::validate_boolean(v); @default_grid_color = v end
289
+
290
+
291
+ # @see right_to_left
292
+ def right_to_left=(v); Axlsx::validate_boolean(v); @right_to_left = v end
293
+
294
+
295
+ # @see show_formulas
296
+ def show_formulas=(v); Axlsx::validate_boolean(v); @show_formulas = v end
297
+
298
+
299
+ # @see show_grid_lines
300
+ def show_grid_lines=(v); Axlsx::validate_boolean(v); @show_grid_lines = v end
301
+
302
+
303
+ # @see show_outline_symbols
304
+ def show_outline_symbols=(v); Axlsx::validate_boolean(v); @show_outline_symbols = v end
305
+
306
+
307
+ # @see show_row_col_headers
308
+ def show_row_col_headers=(v); Axlsx::validate_boolean(v); @show_row_col_headers = v end
309
+
310
+
311
+ # @see show_ruler
312
+ def show_ruler=(v); Axlsx::validate_boolean(v); @show_ruler = v end
313
+
314
+
315
+ # @see show_white_space
316
+ def show_white_space=(v); Axlsx::validate_boolean(v); @show_white_space = v end
317
+
318
+
319
+ # @see show_zeros
320
+ def show_zeros=(v); Axlsx::validate_boolean(v); @show_zeros = v end
321
+
322
+
323
+ # @see tab_selected
324
+ def tab_selected=(v); Axlsx::validate_boolean(v); @tab_selected = v end
325
+
326
+
327
+ # @see top_left_cell
328
+ def top_left_cell=(v)
329
+ cell = (v.class == Axlsx::Cell ? v.r_abs : v)
330
+ Axlsx::validate_string(cell)
331
+ @top_left_cell = cell
332
+ end
333
+
334
+
335
+ # @see view
336
+ def view=(v); Axlsx::validate_sheet_view_type(v); @view = v end
337
+
338
+
339
+ # @see window_protection
340
+ def window_protection=(v); Axlsx::validate_boolean(v); @window_protection = v end
341
+
342
+
343
+ # @see workbook_view_id
344
+ def workbook_view_id=(v); Axlsx::validate_unsigned_int(v); @workbook_view_id = v end
345
+
346
+
347
+ # @see zoom_scale
348
+ def zoom_scale=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale = v end
349
+
350
+
351
+ # @see zoom_scale_normal
352
+ def zoom_scale_normal=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_normal = v end
353
+
354
+
355
+ # @see zoom_scale_page_layout_view
356
+ def zoom_scale_page_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_page_layout_view = v end
357
+
358
+
359
+ # @see zoom_scale_sheet_layout_view
360
+ def zoom_scale_sheet_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_sheet_layout_view = v end
361
+
362
+
363
+ # Serializes the data validation
364
+ # @param [String] str
365
+ # @return [String]
366
+ def to_xml_string(str = '')
367
+ str << '<sheetViews>'
368
+ str << '<sheetView '
369
+ str << instance_values.map { |key, value| (Axlsx::camel(key.to_s, false) << '="' << value.to_s << '"') unless CHILD_ELEMENTS.include?(key.to_sym) || value == nil }.join(' ')
370
+ str << '>'
371
+ @pane.to_xml_string(str) if @pane
372
+ @selections.each do |key, selection|
373
+ selection.to_xml_string(str)
374
+ end
375
+ str << '</sheetView>'
376
+ str << '</sheetViews>'
377
+ end
378
+ end
379
+ end
@@ -19,8 +19,8 @@ module Axlsx
19
19
  attr_reader :style
20
20
 
21
21
  # Creates a new Table object
22
- # @param [String] ref The reference to the table data.
23
- # @param [Sheet] ref The sheet containing the table data.
22
+ # @param [String] ref The reference to the table data like 'A1:G24'.
23
+ # @param [Worksheet] sheet The sheet containing the table data.
24
24
  # @option options [Cell, String] name
25
25
  # @option options [TableStyle] style
26
26
  def initialize(ref, sheet, options={})
@@ -0,0 +1,31 @@
1
+ module Axlsx
2
+
3
+ # A simple, self serializing class for storing tables
4
+ class Tables < SimpleTypedList
5
+
6
+ # creates a new Tables object
7
+ def initialize(worksheet)
8
+ raise ArgumentError, "you must provide a worksheet" unless worksheet.is_a?(Worksheet)
9
+ super Table
10
+ @worksheet = worksheet
11
+ end
12
+
13
+ # The worksheet that owns this collection of tables
14
+ # @return [Worksheet]
15
+ attr_reader :worksheet
16
+
17
+ # returns the relationships required by this collection
18
+ def relationships
19
+ return [] if empty?
20
+ map{ |table| Relationship.new(TABLE_R, "../#{table.pn}") }
21
+ end
22
+
23
+ def to_xml_string(str = "")
24
+ return if empty?
25
+ str << "<tableParts count='#{size}'>"
26
+ @list.each { |table| str << "<tablePart r:id='#{table.rId}'/>" }
27
+ str << '</tableParts>'
28
+ end
29
+ end
30
+
31
+ end