axlsx 1.1.0 → 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.
- data/.yardopts +5 -2
- data/CHANGELOG.md +78 -0
- data/LICENSE +1 -1
- data/README.md +132 -331
- data/Rakefile +17 -5
- data/examples/basic_charts.rb +54 -0
- data/examples/chart_colors.rb +88 -0
- data/examples/conditional_formatting/example_conditional_formatting.rb +72 -0
- data/examples/conditional_formatting/getting_barred.rb +37 -0
- data/examples/conditional_formatting/hitting_the_high_notes.rb +37 -0
- data/examples/conditional_formatting/scaled_colors.rb +39 -0
- data/examples/conditional_formatting/stop_and_go.rb +37 -0
- data/examples/data_validation.rb +50 -0
- data/examples/example.rb +300 -152
- data/examples/example.xlsx +0 -0
- data/examples/example_streamed.xlsx +0 -0
- data/examples/extractive.pdf +0 -0
- data/examples/extractive.rb +45 -0
- data/examples/no-use_autowidth.xlsx +0 -0
- data/examples/sample.png +0 -0
- data/examples/scraping_html.rb +91 -0
- data/examples/shared_strings_example.xlsx +0 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/sheet_view.rb +34 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/two_cell_anchor_image.rb +11 -0
- data/lib/axlsx/content_type/content_type.rb +2 -0
- data/lib/axlsx/content_type/default.rb +30 -15
- data/lib/axlsx/content_type/override.rb +29 -14
- data/lib/axlsx/doc_props/app.rb +161 -104
- data/lib/axlsx/doc_props/core.rb +9 -5
- data/lib/axlsx/drawing/ax_data_source.rb +26 -0
- data/lib/axlsx/drawing/axis.rb +106 -35
- data/lib/axlsx/drawing/bar_3D_chart.rb +49 -45
- data/lib/axlsx/drawing/bar_series.rb +25 -7
- data/lib/axlsx/drawing/cat_axis.rb +50 -22
- data/lib/axlsx/drawing/chart.rb +69 -56
- data/lib/axlsx/drawing/d_lbls.rb +100 -0
- data/lib/axlsx/drawing/drawing.rb +28 -12
- data/lib/axlsx/drawing/graphic_frame.rb +2 -1
- data/lib/axlsx/drawing/line_3D_chart.rb +3 -10
- data/lib/axlsx/drawing/line_series.rb +20 -4
- data/lib/axlsx/drawing/num_data.rb +52 -0
- data/lib/axlsx/drawing/num_data_source.rb +61 -0
- data/lib/axlsx/drawing/num_val.rb +32 -0
- data/lib/axlsx/drawing/pic.rb +44 -4
- data/lib/axlsx/drawing/pie_3D_chart.rb +10 -7
- data/lib/axlsx/drawing/pie_series.rb +18 -4
- data/lib/axlsx/drawing/scatter_chart.rb +12 -18
- data/lib/axlsx/drawing/scatter_series.rb +28 -2
- data/lib/axlsx/drawing/ser_axis.rb +1 -1
- data/lib/axlsx/drawing/series.rb +1 -1
- data/lib/axlsx/drawing/str_data.rb +42 -0
- data/lib/axlsx/drawing/str_val.rb +33 -0
- data/lib/axlsx/drawing/title.rb +21 -9
- data/lib/axlsx/drawing/two_cell_anchor.rb +46 -9
- data/lib/axlsx/drawing/view_3D.rb +44 -31
- data/lib/axlsx/drawing/vml_drawing.rb +42 -0
- data/lib/axlsx/drawing/vml_shape.rb +125 -0
- data/lib/axlsx/package.rb +44 -16
- data/lib/axlsx/rels/relationship.rb +3 -3
- data/lib/axlsx/rels/relationships.rb +1 -11
- data/lib/axlsx/stylesheet/color.rb +0 -1
- data/lib/axlsx/stylesheet/dxf.rb +79 -0
- data/lib/axlsx/stylesheet/font.rb +2 -1
- data/lib/axlsx/stylesheet/gradient_fill.rb +1 -1
- data/lib/axlsx/stylesheet/styles.rb +143 -50
- data/lib/axlsx/stylesheet/table_style.rb +3 -3
- data/lib/axlsx/stylesheet/xf.rb +2 -0
- data/lib/axlsx/util/constants.rb +36 -0
- data/lib/axlsx/util/simple_typed_list.rb +15 -21
- data/lib/axlsx/util/validators.rb +122 -5
- data/lib/axlsx/version.rb +2 -7
- data/lib/axlsx/workbook/defined_name.rb +174 -0
- data/lib/axlsx/workbook/defined_names.rb +21 -0
- data/lib/axlsx/workbook/shared_strings_table.rb +12 -13
- data/lib/axlsx/workbook/workbook.rb +71 -13
- data/lib/axlsx/workbook/worksheet/auto_filter.rb +34 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +45 -36
- data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
- data/lib/axlsx/workbook/worksheet/col.rb +17 -1
- data/lib/axlsx/workbook/worksheet/color_scale.rb +76 -0
- data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
- data/lib/axlsx/workbook/worksheet/comment.rb +101 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +216 -0
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
- data/lib/axlsx/workbook/worksheet/data_bar.rb +97 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +245 -0
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
- data/lib/axlsx/workbook/worksheet/dimension.rb +65 -0
- data/lib/axlsx/workbook/worksheet/icon_set.rb +83 -0
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +113 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +144 -0
- data/lib/axlsx/workbook/worksheet/print_options.rb +63 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/row.rb +69 -12
- data/lib/axlsx/workbook/worksheet/selection.rb +111 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +24 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +224 -0
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +379 -0
- data/lib/axlsx/workbook/worksheet/table.rb +3 -3
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +379 -233
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +57 -0
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +64 -0
- data/lib/axlsx.rb +31 -16
- data/test/benchmark.rb +30 -38
- data/test/content_type/tc_content_type.rb +1 -6
- data/test/doc_props/tc_app.rb +31 -1
- data/test/doc_props/tc_core.rb +3 -1
- data/test/drawing/tc_axis.rb +46 -3
- data/test/drawing/tc_bar_3D_chart.rb +12 -12
- data/test/drawing/tc_bar_series.rb +17 -13
- data/test/drawing/tc_cat_axis.rb +3 -3
- data/test/drawing/tc_cat_axis_data.rb +23 -13
- data/test/drawing/tc_chart.rb +29 -11
- data/test/drawing/tc_d_lbls.rb +47 -0
- data/test/drawing/tc_data_source.rb +17 -0
- data/test/drawing/tc_drawing.rb +11 -5
- data/test/drawing/tc_hyperlink.rb +4 -5
- data/test/drawing/tc_line_series.rb +9 -11
- data/test/drawing/tc_named_axis_data.rb +27 -0
- data/test/drawing/tc_num_data.rb +31 -0
- data/test/drawing/tc_num_val.rb +29 -0
- data/test/drawing/tc_pic.rb +22 -2
- data/test/drawing/tc_pie_3D_chart.rb +4 -8
- data/test/drawing/tc_pie_series.rb +11 -13
- data/test/drawing/tc_scatter_chart.rb +6 -1
- data/test/drawing/tc_scatter_series.rb +6 -5
- data/test/drawing/tc_series.rb +1 -1
- data/test/drawing/tc_str_data.rb +18 -0
- data/test/drawing/tc_str_val.rb +21 -0
- data/test/drawing/tc_title.rb +16 -0
- data/test/drawing/tc_two_cell_anchor.rb +2 -3
- data/test/drawing/tc_view_3D.rb +18 -18
- data/test/drawing/tc_vml_drawing.rb +25 -0
- data/test/drawing/tc_vml_shape.rb +100 -0
- data/test/profile.rb +2 -1
- data/test/rels/tc_relationship.rb +1 -0
- data/test/stylesheet/tc_dxf.rb +81 -0
- data/test/stylesheet/tc_gradient_fill.rb +8 -0
- data/test/stylesheet/tc_pattern_fill.rb +7 -1
- data/test/stylesheet/tc_styles.rb +163 -3
- data/test/stylesheet/tc_table_style.rb +8 -0
- data/test/stylesheet/tc_table_style_element.rb +10 -1
- data/test/tc_helper.rb +1 -0
- data/test/tc_package.rb +93 -17
- data/test/util/tc_simple_typed_list.rb +13 -0
- data/test/util/tc_validators.rb +95 -9
- data/test/workbook/tc_defined_name.rb +41 -0
- data/test/workbook/tc_workbook.rb +5 -3
- data/test/workbook/worksheet/table/tc_table.rb +3 -11
- data/test/workbook/worksheet/tc_cell.rb +52 -18
- data/test/workbook/worksheet/tc_cfvo.rb +31 -0
- data/test/workbook/worksheet/tc_col.rb +9 -0
- data/test/workbook/worksheet/tc_color_scale.rb +29 -0
- data/test/workbook/worksheet/tc_comment.rb +57 -0
- data/test/workbook/worksheet/tc_comments.rb +57 -0
- data/test/workbook/worksheet/tc_conditional_formatting.rb +217 -0
- data/test/workbook/worksheet/tc_data_bar.rb +39 -0
- data/test/workbook/worksheet/tc_data_validation.rb +265 -0
- data/test/workbook/worksheet/tc_date_time_converter.rb +11 -5
- data/test/workbook/worksheet/tc_icon_set.rb +45 -0
- data/test/workbook/worksheet/tc_page_setup.rb +138 -0
- data/test/workbook/worksheet/tc_pane.rb +94 -0
- data/test/workbook/worksheet/tc_print_options.rb +72 -0
- data/test/workbook/worksheet/tc_protected_range.rb +17 -0
- data/test/workbook/worksheet/tc_row.rb +44 -13
- data/test/workbook/worksheet/tc_selection.rb +94 -0
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
- data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
- data/test/workbook/worksheet/tc_worksheet.rb +147 -50
- metadata +216 -148
- data/examples/example.csv +0 -1000
- data/examples/example.rb~ +0 -112
- data/lib/axlsx/drawing/cat_axis_data.rb +0 -34
- data/lib/axlsx/drawing/hlink_click.rb~ +0 -0
- data/lib/axlsx/drawing/hyperlink.rb~ +0 -64
- data/lib/axlsx/drawing/named_axis_data.rb +0 -36
- data/lib/axlsx/drawing/picture_locking.rb~ +0 -36
- data/lib/axlsx/drawing/val_axis_data.rb +0 -27
- data/lib/axlsx/stylesheet/#num_fmt.rb# +0 -69
- data/lib/axlsx/util/cbf.rb +0 -333
- data/lib/axlsx/util/cfb.rb~ +0 -201
- data/lib/axlsx/util/ms_off_crypto.rb +0 -189
- data/lib/axlsx/util/ms_off_crypto.rb~ +0 -3
- data/lib/axlsx/util/ms_offcrypto.rb~ +0 -0
- data/lib/axlsx/util/parser.rb~ +0 -6
- data/lib/axlsx/util/storage.rb~ +0 -0
- data/lib/axlsx/workbook/shared_strings_table.rb~ +0 -69
- data/lib/axlsx/workbook/worksheet/col.rb~ +0 -0
- data/lib/axlsx/workbook/worksheet/shared_strings_table.rb~ +0 -0
- data/lib/axlsx/workbook/worksheet/table.rb~ +0 -97
- data/lib/schema/dc.xsd~ +0 -118
- data/lib/schema/dcterms.xsd~ +0 -331
- data/lib/schema/opc-coreProperties.xsd~ +0 -50
- data/test/#benchmark.txt# +0 -7
- data/test/#tc_helper.rb# +0 -3
- data/test/benchmark.rb~ +0 -0
- data/test/benchmark.txt +0 -6
- data/test/benchmark.txt~ +0 -6
- data/test/drawing/tc_val_axis_data.rb +0 -17
- data/test/example.csv +0 -1000
- data/test/example.xlsx +0 -0
- data/test/example_streamed.xlsx +0 -0
- data/test/tc_axlsx.rb~ +0 -0
- data/test/tc_helper.rb~ +0 -3
- data/test/workbook/worksheet/table/tc_table.rb~ +0 -72
- data/test/workbook/worksheet/tc_col.rb~ +0 -10
|
@@ -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 [
|
|
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={})
|
|
@@ -89,7 +89,7 @@ module Axlsx
|
|
|
89
89
|
|
|
90
90
|
# get the header cells (hackish)
|
|
91
91
|
def header_cells
|
|
92
|
-
header = @ref.gsub(/^(\w
|
|
92
|
+
header = @ref.gsub(/^(\w+?)(\d+)\:(\w+?)\d+$/, '\1\2:\3\2')
|
|
93
93
|
@sheet[header]
|
|
94
94
|
end
|
|
95
95
|
end
|
|
@@ -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
|