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.
- checksums.yaml +4 -4
- data/.yardopts +9 -9
- data/.yardopts_guide +18 -18
- data/CHANGELOG.md +354 -334
- data/LICENSE +21 -21
- data/README.md +168 -170
- data/Rakefile +29 -29
- data/examples/generate.rb +15 -15
- data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
- data/lib/axlsx/content_type/content_type.rb +26 -26
- data/lib/axlsx/content_type/default.rb +25 -25
- data/lib/axlsx/content_type/override.rb +25 -25
- data/lib/axlsx/doc_props/app.rb +235 -235
- data/lib/axlsx/doc_props/core.rb +39 -39
- data/lib/axlsx/drawing/area_chart.rb +99 -99
- data/lib/axlsx/drawing/area_series.rb +110 -110
- data/lib/axlsx/drawing/ax_data_source.rb +26 -26
- data/lib/axlsx/drawing/axes.rb +61 -61
- data/lib/axlsx/drawing/axis.rb +190 -190
- data/lib/axlsx/drawing/bar_3D_chart.rb +148 -151
- data/lib/axlsx/drawing/bar_chart.rb +138 -143
- data/lib/axlsx/drawing/bar_series.rb +97 -80
- data/lib/axlsx/drawing/bubble_chart.rb +59 -59
- data/lib/axlsx/drawing/bubble_series.rb +63 -63
- data/lib/axlsx/drawing/cat_axis.rb +85 -85
- data/lib/axlsx/drawing/chart.rb +276 -276
- data/lib/axlsx/drawing/d_lbls.rb +90 -90
- data/lib/axlsx/drawing/drawing.rb +167 -167
- data/lib/axlsx/drawing/graphic_frame.rb +54 -54
- data/lib/axlsx/drawing/hyperlink.rb +100 -100
- data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
- data/lib/axlsx/drawing/line_chart.rb +99 -99
- data/lib/axlsx/drawing/line_series.rb +110 -110
- data/lib/axlsx/drawing/marker.rb +84 -84
- data/lib/axlsx/drawing/num_data.rb +52 -52
- data/lib/axlsx/drawing/num_data_source.rb +62 -62
- data/lib/axlsx/drawing/num_val.rb +34 -34
- data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
- data/lib/axlsx/drawing/pic.rb +211 -211
- data/lib/axlsx/drawing/picture_locking.rb +42 -42
- data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
- data/lib/axlsx/drawing/pie_series.rb +74 -74
- data/lib/axlsx/drawing/scaling.rb +60 -60
- data/lib/axlsx/drawing/scatter_chart.rb +74 -74
- data/lib/axlsx/drawing/scatter_series.rb +129 -98
- data/lib/axlsx/drawing/ser_axis.rb +45 -45
- data/lib/axlsx/drawing/series.rb +69 -69
- data/lib/axlsx/drawing/series_title.rb +25 -25
- data/lib/axlsx/drawing/str_data.rb +42 -42
- data/lib/axlsx/drawing/str_val.rb +34 -34
- data/lib/axlsx/drawing/title.rb +97 -97
- data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
- data/lib/axlsx/drawing/val_axis.rb +37 -37
- data/lib/axlsx/drawing/view_3D.rb +115 -115
- data/lib/axlsx/drawing/vml_drawing.rb +42 -42
- data/lib/axlsx/drawing/vml_shape.rb +66 -66
- data/lib/axlsx/package.rb +388 -363
- data/lib/axlsx/rels/relationship.rb +130 -130
- data/lib/axlsx/rels/relationships.rb +32 -32
- data/lib/axlsx/stylesheet/border.rb +73 -71
- data/lib/axlsx/stylesheet/border_pr.rb +71 -71
- data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
- data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
- data/lib/axlsx/stylesheet/cell_style.rb +72 -72
- data/lib/axlsx/stylesheet/color.rb +76 -76
- data/lib/axlsx/stylesheet/dxf.rb +79 -79
- data/lib/axlsx/stylesheet/fill.rb +35 -35
- data/lib/axlsx/stylesheet/font.rb +156 -156
- data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
- data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
- data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
- data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
- data/lib/axlsx/stylesheet/styles.rb +494 -420
- data/lib/axlsx/stylesheet/table_style.rb +54 -54
- data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
- data/lib/axlsx/stylesheet/table_styles.rb +46 -46
- data/lib/axlsx/stylesheet/xf.rb +147 -147
- data/lib/axlsx/util/accessors.rb +64 -64
- data/lib/axlsx/util/constants.rb +410 -401
- data/lib/axlsx/util/mime_type_utils.rb +11 -11
- data/lib/axlsx/util/options_parser.rb +16 -16
- data/lib/axlsx/util/serialized_attributes.rb +89 -89
- data/lib/axlsx/util/simple_typed_list.rb +179 -179
- data/lib/axlsx/util/storage.rb +146 -146
- data/lib/axlsx/util/validators.rb +312 -312
- data/lib/axlsx/util/zip_command.rb +73 -73
- data/lib/axlsx/version.rb +5 -5
- data/lib/axlsx/workbook/defined_name.rb +128 -128
- data/lib/axlsx/workbook/defined_names.rb +21 -21
- data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
- data/lib/axlsx/workbook/workbook.rb +395 -370
- data/lib/axlsx/workbook/workbook_view.rb +80 -80
- data/lib/axlsx/workbook/workbook_views.rb +22 -22
- data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
- data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
- data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
- data/lib/axlsx/workbook/worksheet/break.rb +35 -35
- data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
- data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
- data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
- data/lib/axlsx/workbook/worksheet/col.rb +145 -145
- data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
- data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
- data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
- data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
- data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
- data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
- data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
- data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
- data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
- data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
- data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
- data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
- data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
- data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
- data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
- data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
- data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
- data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
- data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
- data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
- data/lib/axlsx/workbook/worksheet/row.rb +164 -162
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
- data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
- data/lib/axlsx/workbook/worksheet/table.rb +102 -102
- data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
- data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
- data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
- data/lib/axlsx.rb +185 -170
- data/lib/caxlsx.rb +2 -2
- data/lib/schema/dc.xsd +118 -118
- data/lib/schema/dcmitype.xsd +51 -51
- data/lib/schema/dcterms.xsd +331 -331
- data/lib/schema/dml-chartDrawing.xsd +146 -146
- data/lib/schema/dml-compatibility.xsd +14 -14
- data/lib/schema/dml-lockedCanvas.xsd +11 -11
- data/lib/schema/dml-main.xsd +3048 -3048
- data/lib/schema/dml-picture.xsd +23 -23
- data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
- data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
- data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
- data/lib/schema/shared-bibliography.xsd +144 -144
- data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
- data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
- data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
- data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
- data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
- data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
- data/lib/schema/shared-relationshipReference.xsd +25 -25
- data/lib/schema/vml-main.xsd +569 -569
- data/lib/schema/vml-officeDrawing.xsd +509 -509
- data/lib/schema/vml-presentationDrawing.xsd +12 -12
- data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
- data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
- data/lib/schema/xml.xsd +116 -116
- data/test/benchmark.rb +72 -72
- data/test/content_type/tc_content_type.rb +76 -76
- data/test/content_type/tc_default.rb +16 -16
- data/test/content_type/tc_override.rb +14 -14
- data/test/doc_props/tc_app.rb +43 -43
- data/test/doc_props/tc_core.rb +42 -42
- data/test/drawing/tc_area_chart.rb +39 -39
- data/test/drawing/tc_area_series.rb +71 -71
- data/test/drawing/tc_axes.rb +7 -7
- data/test/drawing/tc_axis.rb +112 -112
- data/test/drawing/tc_bar_3D_chart.rb +86 -71
- data/test/drawing/tc_bar_chart.rb +86 -71
- data/test/drawing/tc_bar_series.rb +46 -37
- data/test/drawing/tc_bubble_chart.rb +44 -44
- data/test/drawing/tc_bubble_series.rb +21 -21
- data/test/drawing/tc_cat_axis.rb +31 -31
- data/test/drawing/tc_cat_axis_data.rb +27 -27
- data/test/drawing/tc_chart.rb +123 -123
- data/test/drawing/tc_d_lbls.rb +57 -57
- data/test/drawing/tc_data_source.rb +23 -23
- data/test/drawing/tc_drawing.rb +80 -80
- data/test/drawing/tc_graphic_frame.rb +27 -27
- data/test/drawing/tc_hyperlink.rb +64 -64
- data/test/drawing/tc_line_3d_chart.rb +47 -47
- data/test/drawing/tc_line_chart.rb +39 -39
- data/test/drawing/tc_line_series.rb +71 -71
- data/test/drawing/tc_marker.rb +44 -44
- data/test/drawing/tc_named_axis_data.rb +27 -27
- data/test/drawing/tc_num_data.rb +31 -31
- data/test/drawing/tc_num_val.rb +29 -29
- data/test/drawing/tc_one_cell_anchor.rb +66 -66
- data/test/drawing/tc_pic.rb +103 -103
- data/test/drawing/tc_picture_locking.rb +72 -72
- data/test/drawing/tc_pie_3D_chart.rb +28 -28
- data/test/drawing/tc_pie_series.rb +33 -33
- data/test/drawing/tc_scaling.rb +36 -36
- data/test/drawing/tc_scatter_chart.rb +48 -48
- data/test/drawing/tc_scatter_series.rb +74 -56
- data/test/drawing/tc_ser_axis.rb +31 -31
- data/test/drawing/tc_series.rb +23 -23
- data/test/drawing/tc_series_title.rb +54 -54
- data/test/drawing/tc_str_data.rb +18 -18
- data/test/drawing/tc_str_val.rb +30 -30
- data/test/drawing/tc_title.rb +70 -70
- data/test/drawing/tc_two_cell_anchor.rb +36 -36
- data/test/drawing/tc_val_axis.rb +24 -24
- data/test/drawing/tc_view_3D.rb +54 -54
- data/test/drawing/tc_vml_drawing.rb +25 -25
- data/test/drawing/tc_vml_shape.rb +106 -106
- data/test/profile.rb +24 -24
- data/test/rels/tc_relationship.rb +52 -52
- data/test/rels/tc_relationships.rb +37 -37
- data/test/stylesheet/tc_border.rb +37 -37
- data/test/stylesheet/tc_border_pr.rb +32 -32
- data/test/stylesheet/tc_cell_alignment.rb +81 -81
- data/test/stylesheet/tc_cell_protection.rb +29 -29
- data/test/stylesheet/tc_cell_style.rb +57 -57
- data/test/stylesheet/tc_color.rb +43 -43
- data/test/stylesheet/tc_dxf.rb +81 -81
- data/test/stylesheet/tc_fill.rb +18 -18
- data/test/stylesheet/tc_font.rb +133 -133
- data/test/stylesheet/tc_gradient_fill.rb +72 -72
- data/test/stylesheet/tc_gradient_stop.rb +31 -31
- data/test/stylesheet/tc_num_fmt.rb +30 -30
- data/test/stylesheet/tc_pattern_fill.rb +43 -43
- data/test/stylesheet/tc_styles.rb +309 -261
- data/test/stylesheet/tc_table_style.rb +44 -44
- data/test/stylesheet/tc_table_style_element.rb +45 -45
- data/test/stylesheet/tc_table_styles.rb +29 -29
- data/test/stylesheet/tc_xf.rb +120 -120
- data/test/tc_axlsx.rb +109 -109
- data/test/tc_helper.rb +10 -12
- data/test/tc_package.rb +317 -264
- data/test/util/tc_mime_type_utils.rb +13 -13
- data/test/util/tc_serialized_attributes.rb +19 -19
- data/test/util/tc_simple_typed_list.rb +77 -77
- data/test/util/tc_validators.rb +210 -210
- data/test/workbook/tc_defined_name.rb +49 -49
- data/test/workbook/tc_shared_strings_table.rb +59 -59
- data/test/workbook/tc_workbook.rb +165 -160
- data/test/workbook/tc_workbook_view.rb +50 -50
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
- data/test/workbook/worksheet/tc_break.rb +49 -49
- data/test/workbook/worksheet/tc_cell.rb +465 -453
- data/test/workbook/worksheet/tc_cfvo.rb +31 -31
- data/test/workbook/worksheet/tc_col.rb +93 -93
- data/test/workbook/worksheet/tc_color_scale.rb +58 -58
- data/test/workbook/worksheet/tc_comment.rb +72 -72
- data/test/workbook/worksheet/tc_comments.rb +57 -57
- data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
- data/test/workbook/worksheet/tc_data_bar.rb +46 -46
- data/test/workbook/worksheet/tc_data_validation.rb +265 -265
- data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
- data/test/workbook/worksheet/tc_header_footer.rb +151 -151
- data/test/workbook/worksheet/tc_icon_set.rb +45 -45
- data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
- data/test/workbook/worksheet/tc_page_margins.rb +97 -97
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
- data/test/workbook/worksheet/tc_page_setup.rb +143 -143
- data/test/workbook/worksheet/tc_pane.rb +54 -54
- data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
- data/test/workbook/worksheet/tc_print_options.rb +72 -72
- data/test/workbook/worksheet/tc_protected_range.rb +17 -17
- data/test/workbook/worksheet/tc_rich_text.rb +44 -44
- data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
- data/test/workbook/worksheet/tc_row.rb +160 -139
- data/test/workbook/worksheet/tc_selection.rb +55 -55
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
- data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
- data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
- data/test/workbook/worksheet/tc_table.rb +77 -67
- data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
- data/test/workbook/worksheet/tc_worksheet.rb +632 -601
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
- metadata +11 -11
|
@@ -1,162 +1,164 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# A Row is a single row in a worksheet.
|
|
4
|
-
# @note The recommended way to manage rows and cells is to use Worksheet#add_row
|
|
5
|
-
# @see Worksheet#add_row
|
|
6
|
-
class Row < SimpleTypedList
|
|
7
|
-
include SerializedAttributes
|
|
8
|
-
include Accessors
|
|
9
|
-
|
|
10
|
-
# No support is provided for the following attributes
|
|
11
|
-
# spans
|
|
12
|
-
# thickTop
|
|
13
|
-
# thickBottom
|
|
14
|
-
|
|
15
|
-
# Creates a new row. New Cell objects are created based on the values, types and style options.
|
|
16
|
-
# A new cell is created for each item in the values array. style and types options are applied as follows:
|
|
17
|
-
# If the types option is defined and is a symbol it is applied to all the cells created.
|
|
18
|
-
# If the types option is an array, cell types are applied by index for each cell
|
|
19
|
-
# If the types option is not set, the cell will automatically determine its type.
|
|
20
|
-
# If the style option is defined and is an Integer, it is applied to all cells created.
|
|
21
|
-
# If the style option is an array, style is applied by index for each cell.
|
|
22
|
-
# If the style option is not defined, the default style (0) is applied to each cell.
|
|
23
|
-
# @param [Worksheet] worksheet
|
|
24
|
-
# @option options [Array] values
|
|
25
|
-
# @option options [Array, Symbol] types
|
|
26
|
-
# @option options [Array, Integer] style
|
|
27
|
-
# @option options [Float] height the row's height (in points)
|
|
28
|
-
# @
|
|
29
|
-
# @see
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
#
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
#
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
#
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
#
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
@
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
#
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
#
|
|
86
|
-
# @param [
|
|
87
|
-
# @
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
#
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
self
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
@
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
# If
|
|
143
|
-
# If the
|
|
144
|
-
# If the style option is an
|
|
145
|
-
#
|
|
146
|
-
# @option options [Array
|
|
147
|
-
# @option options [Array,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
options[:
|
|
155
|
-
options[:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A Row is a single row in a worksheet.
|
|
4
|
+
# @note The recommended way to manage rows and cells is to use Worksheet#add_row
|
|
5
|
+
# @see Worksheet#add_row
|
|
6
|
+
class Row < SimpleTypedList
|
|
7
|
+
include SerializedAttributes
|
|
8
|
+
include Accessors
|
|
9
|
+
|
|
10
|
+
# No support is provided for the following attributes
|
|
11
|
+
# spans
|
|
12
|
+
# thickTop
|
|
13
|
+
# thickBottom
|
|
14
|
+
|
|
15
|
+
# Creates a new row. New Cell objects are created based on the values, types and style options.
|
|
16
|
+
# A new cell is created for each item in the values array. style and types options are applied as follows:
|
|
17
|
+
# If the types option is defined and is a symbol it is applied to all the cells created.
|
|
18
|
+
# If the types option is an array, cell types are applied by index for each cell
|
|
19
|
+
# If the types option is not set, the cell will automatically determine its type.
|
|
20
|
+
# If the style option is defined and is an Integer, it is applied to all cells created.
|
|
21
|
+
# If the style option is an array, style is applied by index for each cell.
|
|
22
|
+
# If the style option is not defined, the default style (0) is applied to each cell.
|
|
23
|
+
# @param [Worksheet] worksheet
|
|
24
|
+
# @option options [Array] values
|
|
25
|
+
# @option options [Array, Symbol] types
|
|
26
|
+
# @option options [Array, Integer] style
|
|
27
|
+
# @option options [Float] height the row's height (in points)
|
|
28
|
+
# @option options [Integer] offset - add empty columns before values
|
|
29
|
+
# @see Row#array_to_cells
|
|
30
|
+
# @see Cell
|
|
31
|
+
def initialize(worksheet, values=[], options={})
|
|
32
|
+
self.worksheet = worksheet
|
|
33
|
+
super(Cell, nil, values.size + options[:offset].to_i)
|
|
34
|
+
self.height = options.delete(:height)
|
|
35
|
+
worksheet.rows << self
|
|
36
|
+
array_to_cells(values, options)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# A list of serializable attributes.
|
|
40
|
+
serializable_attributes :hidden, :outline_level, :collapsed, :custom_format, :s, :ph, :custom_height, :ht
|
|
41
|
+
|
|
42
|
+
# Boolean row attribute accessors
|
|
43
|
+
boolean_attr_accessor :hidden, :collapsed, :custom_format, :ph, :custom_height
|
|
44
|
+
|
|
45
|
+
# The worksheet this row belongs to
|
|
46
|
+
# @return [Worksheet]
|
|
47
|
+
attr_reader :worksheet
|
|
48
|
+
|
|
49
|
+
# Row height measured in point size. There is no margin padding on row height.
|
|
50
|
+
# @return [Float]
|
|
51
|
+
def height
|
|
52
|
+
defined?(@ht) ? @ht : nil
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Outlining level of the row, when outlining is on
|
|
56
|
+
# @return [Integer]
|
|
57
|
+
attr_reader :outline_level
|
|
58
|
+
alias :outlineLevel :outline_level
|
|
59
|
+
|
|
60
|
+
# The style applied to the row. This affects the entire row.
|
|
61
|
+
# @return [Integer]
|
|
62
|
+
attr_reader :s
|
|
63
|
+
|
|
64
|
+
# @see Row#s
|
|
65
|
+
def s=(v)
|
|
66
|
+
Axlsx.validate_unsigned_numeric(v)
|
|
67
|
+
@custom_format = true
|
|
68
|
+
@s = v
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# @see Row#outline
|
|
72
|
+
def outline_level=(v)
|
|
73
|
+
Axlsx.validate_unsigned_numeric(v)
|
|
74
|
+
@outline_level = v
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
alias :outlineLevel= :outline_level=
|
|
78
|
+
|
|
79
|
+
# The index of this row in the worksheet
|
|
80
|
+
# @return [Integer]
|
|
81
|
+
def row_index
|
|
82
|
+
worksheet.rows.index(self)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Serializes the row
|
|
86
|
+
# @param [Integer] r_index The row index, 0 based.
|
|
87
|
+
# @param [String] str The string this rows xml will be appended to.
|
|
88
|
+
# @return [String]
|
|
89
|
+
def to_xml_string(r_index, str = '')
|
|
90
|
+
serialized_tag('row', str, :r => r_index + 1) do
|
|
91
|
+
tmp = '' # time / memory tradeoff, lots of calls to rubyzip costs more
|
|
92
|
+
# time..
|
|
93
|
+
each_with_index { |cell, c_index| cell.to_xml_string(r_index, c_index, tmp) }
|
|
94
|
+
str << tmp
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Adds a single cell to the row based on the data provided and updates the worksheet's autofit data.
|
|
99
|
+
# @return [Cell]
|
|
100
|
+
def add_cell(value = '', options = {})
|
|
101
|
+
c = Cell.new(self, value, options)
|
|
102
|
+
self << c
|
|
103
|
+
worksheet.send(:update_column_info, self, [])
|
|
104
|
+
c
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# sets the color for every cell in this row
|
|
108
|
+
def color=(color)
|
|
109
|
+
each_with_index do | cell, index |
|
|
110
|
+
cell.color = color.is_a?(Array) ? color[index] : color
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# sets the style for every cell in this row
|
|
115
|
+
def style=(style)
|
|
116
|
+
each_with_index do | cell, index |
|
|
117
|
+
cell.style = style.is_a?(Array) ? style[index] : style
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# @see height
|
|
122
|
+
def height=(v)
|
|
123
|
+
unless v.nil?
|
|
124
|
+
Axlsx::validate_unsigned_numeric(v)
|
|
125
|
+
@custom_height = true
|
|
126
|
+
@ht = v
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# return cells
|
|
131
|
+
def cells
|
|
132
|
+
self
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
private
|
|
136
|
+
|
|
137
|
+
# assigns the owning worksheet for this row
|
|
138
|
+
def worksheet=(v) DataTypeValidator.validate :row_worksheet, Worksheet, v; @worksheet=v; end
|
|
139
|
+
|
|
140
|
+
# Converts values, types, and style options into cells and associates them with this row.
|
|
141
|
+
# A new cell is created for each item in the values array.
|
|
142
|
+
# If value option is defined and is a symbol it is applied to all the cells created.
|
|
143
|
+
# If the value option is an array, cell types are applied by index for each cell
|
|
144
|
+
# If the style option is defined and is an Integer, it is applied to all cells created.
|
|
145
|
+
# If the style option is an array, style is applied by index for each cell.
|
|
146
|
+
# @option options [Array] values
|
|
147
|
+
# @option options [Array, Symbol] types
|
|
148
|
+
# @option options [Array, Integer] style
|
|
149
|
+
def array_to_cells(values, options={})
|
|
150
|
+
DataTypeValidator.validate :array_to_cells, Array, values
|
|
151
|
+
types, style, formula_values, escape_formulas, offset = options.delete(:types), options.delete(:style), options.delete(:formula_values), options.delete(:escape_formulas), options.delete(:offset)
|
|
152
|
+
offset.to_i.times { |index| self[index] = Cell.new(self) } if offset
|
|
153
|
+
values.each_with_index do |value, index|
|
|
154
|
+
options[:style] = style.is_a?(Array) ? style[index] : style if style
|
|
155
|
+
options[:type] = types.is_a?(Array) ? types[index] : types if types
|
|
156
|
+
options[:escape_formulas] = escape_formulas.is_a?(Array) ? escape_formulas[index] : escape_formulas if escape_formulas
|
|
157
|
+
options[:formula_value] = formula_values[index] if formula_values.is_a?(Array)
|
|
158
|
+
|
|
159
|
+
self[index + offset.to_i] = Cell.new(self, value, options)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
end
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# A collection of break objects that define row breaks (page breaks) for printing and preview
|
|
4
|
-
|
|
5
|
-
class RowBreaks < SimpleTypedList
|
|
6
|
-
|
|
7
|
-
def initialize
|
|
8
|
-
super Break
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
# Adds a row break
|
|
12
|
-
# @param [Hash] options The options for the break to be created.
|
|
13
|
-
# max and man values are fixed.
|
|
14
|
-
# @see Break
|
|
15
|
-
def add_break(options)
|
|
16
|
-
# force feed the excel default
|
|
17
|
-
self << Break.new(options.merge(:max => 16383, :man => true))
|
|
18
|
-
last
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# <rowBreaks count="3" manualBreakCount="3">
|
|
22
|
-
# <brk id="1" max="16383" man="1"/>
|
|
23
|
-
# <brk id="7" max="16383" man="1"/>
|
|
24
|
-
# <brk id="13" max="16383" man="1"/>
|
|
25
|
-
# </rowBreaks>
|
|
26
|
-
def to_xml_string(str='')
|
|
27
|
-
return if empty?
|
|
28
|
-
str << ('<rowBreaks count="' << self.size.to_s << '" manualBreakCount="' << self.size.to_s << '">')
|
|
29
|
-
each { |brk| brk.to_xml_string(str) }
|
|
30
|
-
str << '</rowBreaks>'
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# A collection of break objects that define row breaks (page breaks) for printing and preview
|
|
4
|
+
|
|
5
|
+
class RowBreaks < SimpleTypedList
|
|
6
|
+
|
|
7
|
+
def initialize
|
|
8
|
+
super Break
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Adds a row break
|
|
12
|
+
# @param [Hash] options The options for the break to be created.
|
|
13
|
+
# max and man values are fixed.
|
|
14
|
+
# @see Break
|
|
15
|
+
def add_break(options)
|
|
16
|
+
# force feed the excel default
|
|
17
|
+
self << Break.new(options.merge(:max => 16383, :man => true))
|
|
18
|
+
last
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# <rowBreaks count="3" manualBreakCount="3">
|
|
22
|
+
# <brk id="1" max="16383" man="1"/>
|
|
23
|
+
# <brk id="7" max="16383" man="1"/>
|
|
24
|
+
# <brk id="13" max="16383" man="1"/>
|
|
25
|
+
# </rowBreaks>
|
|
26
|
+
def to_xml_string(str='')
|
|
27
|
+
return if empty?
|
|
28
|
+
str << ('<rowBreaks count="' << self.size.to_s << '" manualBreakCount="' << self.size.to_s << '">')
|
|
29
|
+
each { |brk| brk.to_xml_string(str) }
|
|
30
|
+
str << '</rowBreaks>'
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# Selection options for worksheet panes.
|
|
4
|
-
#
|
|
5
|
-
# @note The recommended way to manage the selection pane options is via SheetView#add_selection
|
|
6
|
-
# @see SheetView#add_selection
|
|
7
|
-
class Selection
|
|
8
|
-
|
|
9
|
-
include Axlsx::OptionsParser
|
|
10
|
-
include Axlsx::SerializedAttributes
|
|
11
|
-
|
|
12
|
-
# Creates a new {Selection} object
|
|
13
|
-
# @option options [Cell, String] active_cell Active Cell Location
|
|
14
|
-
# @option options [Integer] active_cell_id Active Cell Index
|
|
15
|
-
# @option options [Symbol] pane Pane
|
|
16
|
-
# @option options [String] sqref Sequence of References
|
|
17
|
-
def initialize(options={})
|
|
18
|
-
@active_cell = @active_cell_id = @pane = @sqref = nil
|
|
19
|
-
parse_options options
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
serializable_attributes :active_cell, :active_cell_id, :pane, :sqref
|
|
23
|
-
# Active Cell Location
|
|
24
|
-
# Location of the active cell.
|
|
25
|
-
# @see type
|
|
26
|
-
# @return [String]
|
|
27
|
-
# default nil
|
|
28
|
-
attr_reader :active_cell
|
|
29
|
-
|
|
30
|
-
# Active Cell Index
|
|
31
|
-
# 0-based index of the range reference (in the array of references listed in sqref)
|
|
32
|
-
# containing the active cell. Only used when the selection in sqref is not contiguous.
|
|
33
|
-
# Therefore, this value needs to be aware of the order in which the range references are
|
|
34
|
-
# written in sqref.
|
|
35
|
-
# When this value is out of range then activeCell can be used.
|
|
36
|
-
# @see type
|
|
37
|
-
# @return [Integer]
|
|
38
|
-
# default nil
|
|
39
|
-
attr_reader :active_cell_id
|
|
40
|
-
|
|
41
|
-
# Pane
|
|
42
|
-
# The pane to which this selection belongs.
|
|
43
|
-
# Options are
|
|
44
|
-
# * bottom_left: Bottom left pane, when both vertical and horizontal
|
|
45
|
-
# splits are applied. This value is also used when only
|
|
46
|
-
# a horizontal split has been applied, dividing the pane
|
|
47
|
-
# into upper and lower regions. In that case, this value
|
|
48
|
-
# specifies the bottom pane.
|
|
49
|
-
# * bottom_right: Bottom right pane, when both vertical and horizontal
|
|
50
|
-
# splits are applied.
|
|
51
|
-
# * top_left: Top left pane, when both vertical and horizontal splits
|
|
52
|
-
# are applied. This value is also used when only a horizontal
|
|
53
|
-
# split has been applied, dividing the pane into upper and lower
|
|
54
|
-
# regions. In that case, this value specifies the top pane.
|
|
55
|
-
# This value is also used when only a vertical split has
|
|
56
|
-
# been applied, dividing the pane into right and left
|
|
57
|
-
# regions. In that case, this value specifies the left pane
|
|
58
|
-
# * top_right: Top right pane, when both vertical and horizontal
|
|
59
|
-
# splits are applied. This value is also used when only
|
|
60
|
-
# a vertical split has been applied, dividing the pane
|
|
61
|
-
# into right and left regions. In that case, this value
|
|
62
|
-
# specifies the right pane.
|
|
63
|
-
# @see type
|
|
64
|
-
# @return [Symbol]
|
|
65
|
-
# default nil
|
|
66
|
-
attr_reader :pane
|
|
67
|
-
|
|
68
|
-
# Sequence of References
|
|
69
|
-
# Range of the selection. Can be non-contiguous set of ranges.
|
|
70
|
-
# @see type
|
|
71
|
-
# @return [String]
|
|
72
|
-
# default nil
|
|
73
|
-
attr_reader :sqref
|
|
74
|
-
|
|
75
|
-
# @see active_cell
|
|
76
|
-
def active_cell=(v)
|
|
77
|
-
cell = (v.class == Axlsx::Cell ? v.r_abs : v)
|
|
78
|
-
Axlsx::validate_string(cell)
|
|
79
|
-
@active_cell = cell
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# @see active_cell_id
|
|
83
|
-
def active_cell_id=(v); Axlsx::validate_unsigned_int(v); @active_cell_id = v end
|
|
84
|
-
|
|
85
|
-
# @see pane
|
|
86
|
-
def pane=(v)
|
|
87
|
-
Axlsx::validate_pane_type(v)
|
|
88
|
-
@pane = Axlsx::camel(v, false)
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
# @see sqref
|
|
92
|
-
def sqref=(v); Axlsx::validate_string(v); @sqref = v end
|
|
93
|
-
|
|
94
|
-
# Serializes the data validation
|
|
95
|
-
# @param [String] str
|
|
96
|
-
# @return [String]
|
|
97
|
-
def to_xml_string(str = '')
|
|
98
|
-
serialized_tag 'selection', str
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# Selection options for worksheet panes.
|
|
4
|
+
#
|
|
5
|
+
# @note The recommended way to manage the selection pane options is via SheetView#add_selection
|
|
6
|
+
# @see SheetView#add_selection
|
|
7
|
+
class Selection
|
|
8
|
+
|
|
9
|
+
include Axlsx::OptionsParser
|
|
10
|
+
include Axlsx::SerializedAttributes
|
|
11
|
+
|
|
12
|
+
# Creates a new {Selection} object
|
|
13
|
+
# @option options [Cell, String] active_cell Active Cell Location
|
|
14
|
+
# @option options [Integer] active_cell_id Active Cell Index
|
|
15
|
+
# @option options [Symbol] pane Pane
|
|
16
|
+
# @option options [String] sqref Sequence of References
|
|
17
|
+
def initialize(options={})
|
|
18
|
+
@active_cell = @active_cell_id = @pane = @sqref = nil
|
|
19
|
+
parse_options options
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
serializable_attributes :active_cell, :active_cell_id, :pane, :sqref
|
|
23
|
+
# Active Cell Location
|
|
24
|
+
# Location of the active cell.
|
|
25
|
+
# @see type
|
|
26
|
+
# @return [String]
|
|
27
|
+
# default nil
|
|
28
|
+
attr_reader :active_cell
|
|
29
|
+
|
|
30
|
+
# Active Cell Index
|
|
31
|
+
# 0-based index of the range reference (in the array of references listed in sqref)
|
|
32
|
+
# containing the active cell. Only used when the selection in sqref is not contiguous.
|
|
33
|
+
# Therefore, this value needs to be aware of the order in which the range references are
|
|
34
|
+
# written in sqref.
|
|
35
|
+
# When this value is out of range then activeCell can be used.
|
|
36
|
+
# @see type
|
|
37
|
+
# @return [Integer]
|
|
38
|
+
# default nil
|
|
39
|
+
attr_reader :active_cell_id
|
|
40
|
+
|
|
41
|
+
# Pane
|
|
42
|
+
# The pane to which this selection belongs.
|
|
43
|
+
# Options are
|
|
44
|
+
# * bottom_left: Bottom left pane, when both vertical and horizontal
|
|
45
|
+
# splits are applied. This value is also used when only
|
|
46
|
+
# a horizontal split has been applied, dividing the pane
|
|
47
|
+
# into upper and lower regions. In that case, this value
|
|
48
|
+
# specifies the bottom pane.
|
|
49
|
+
# * bottom_right: Bottom right pane, when both vertical and horizontal
|
|
50
|
+
# splits are applied.
|
|
51
|
+
# * top_left: Top left pane, when both vertical and horizontal splits
|
|
52
|
+
# are applied. This value is also used when only a horizontal
|
|
53
|
+
# split has been applied, dividing the pane into upper and lower
|
|
54
|
+
# regions. In that case, this value specifies the top pane.
|
|
55
|
+
# This value is also used when only a vertical split has
|
|
56
|
+
# been applied, dividing the pane into right and left
|
|
57
|
+
# regions. In that case, this value specifies the left pane
|
|
58
|
+
# * top_right: Top right pane, when both vertical and horizontal
|
|
59
|
+
# splits are applied. This value is also used when only
|
|
60
|
+
# a vertical split has been applied, dividing the pane
|
|
61
|
+
# into right and left regions. In that case, this value
|
|
62
|
+
# specifies the right pane.
|
|
63
|
+
# @see type
|
|
64
|
+
# @return [Symbol]
|
|
65
|
+
# default nil
|
|
66
|
+
attr_reader :pane
|
|
67
|
+
|
|
68
|
+
# Sequence of References
|
|
69
|
+
# Range of the selection. Can be non-contiguous set of ranges.
|
|
70
|
+
# @see type
|
|
71
|
+
# @return [String]
|
|
72
|
+
# default nil
|
|
73
|
+
attr_reader :sqref
|
|
74
|
+
|
|
75
|
+
# @see active_cell
|
|
76
|
+
def active_cell=(v)
|
|
77
|
+
cell = (v.class == Axlsx::Cell ? v.r_abs : v)
|
|
78
|
+
Axlsx::validate_string(cell)
|
|
79
|
+
@active_cell = cell
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# @see active_cell_id
|
|
83
|
+
def active_cell_id=(v); Axlsx::validate_unsigned_int(v); @active_cell_id = v end
|
|
84
|
+
|
|
85
|
+
# @see pane
|
|
86
|
+
def pane=(v)
|
|
87
|
+
Axlsx::validate_pane_type(v)
|
|
88
|
+
@pane = Axlsx::camel(v, false)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# @see sqref
|
|
92
|
+
def sqref=(v); Axlsx::validate_string(v); @sqref = v end
|
|
93
|
+
|
|
94
|
+
# Serializes the data validation
|
|
95
|
+
# @param [String] str
|
|
96
|
+
# @return [String]
|
|
97
|
+
def to_xml_string(str = '')
|
|
98
|
+
serialized_tag 'selection', str
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|