caxlsx 3.2.0 → 3.3.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 +385 -354
- data/LICENSE +21 -21
- data/README.md +165 -168
- 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 -148
- data/lib/axlsx/drawing/bar_chart.rb +138 -138
- data/lib/axlsx/drawing/bar_series.rb +97 -97
- 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 +299 -276
- data/lib/axlsx/drawing/d_lbls.rb +91 -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 -129
- 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 +107 -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 +398 -388
- data/lib/axlsx/rels/relationship.rb +130 -130
- data/lib/axlsx/rels/relationships.rb +32 -32
- data/lib/axlsx/stylesheet/border.rb +73 -73
- 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 +535 -494
- 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 +416 -410
- 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 +425 -395
- 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/border_creator.rb +76 -0
- data/lib/axlsx/workbook/worksheet/break.rb +35 -35
- data/lib/axlsx/workbook/worksheet/cell.rb +532 -506
- 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 +267 -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 +335 -296
- 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 -164
- 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 +829 -786
- 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 +204 -185
- 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
- metadata +5 -252
- data/test/benchmark.rb +0 -72
- data/test/content_type/tc_content_type.rb +0 -76
- data/test/content_type/tc_default.rb +0 -16
- data/test/content_type/tc_override.rb +0 -14
- data/test/doc_props/tc_app.rb +0 -43
- data/test/doc_props/tc_core.rb +0 -42
- data/test/drawing/tc_area_chart.rb +0 -39
- data/test/drawing/tc_area_series.rb +0 -71
- data/test/drawing/tc_axes.rb +0 -8
- data/test/drawing/tc_axis.rb +0 -112
- data/test/drawing/tc_bar_3D_chart.rb +0 -86
- data/test/drawing/tc_bar_chart.rb +0 -86
- data/test/drawing/tc_bar_series.rb +0 -46
- data/test/drawing/tc_bubble_chart.rb +0 -44
- data/test/drawing/tc_bubble_series.rb +0 -21
- data/test/drawing/tc_cat_axis.rb +0 -31
- data/test/drawing/tc_cat_axis_data.rb +0 -27
- data/test/drawing/tc_chart.rb +0 -123
- data/test/drawing/tc_d_lbls.rb +0 -57
- data/test/drawing/tc_data_source.rb +0 -23
- data/test/drawing/tc_drawing.rb +0 -80
- data/test/drawing/tc_graphic_frame.rb +0 -27
- data/test/drawing/tc_hyperlink.rb +0 -64
- data/test/drawing/tc_line_3d_chart.rb +0 -47
- data/test/drawing/tc_line_chart.rb +0 -39
- data/test/drawing/tc_line_series.rb +0 -71
- data/test/drawing/tc_marker.rb +0 -44
- data/test/drawing/tc_named_axis_data.rb +0 -27
- data/test/drawing/tc_num_data.rb +0 -31
- data/test/drawing/tc_num_val.rb +0 -29
- data/test/drawing/tc_one_cell_anchor.rb +0 -66
- data/test/drawing/tc_pic.rb +0 -103
- data/test/drawing/tc_picture_locking.rb +0 -72
- data/test/drawing/tc_pie_3D_chart.rb +0 -28
- data/test/drawing/tc_pie_series.rb +0 -33
- data/test/drawing/tc_scaling.rb +0 -36
- data/test/drawing/tc_scatter_chart.rb +0 -48
- data/test/drawing/tc_scatter_series.rb +0 -74
- data/test/drawing/tc_ser_axis.rb +0 -31
- data/test/drawing/tc_series.rb +0 -23
- data/test/drawing/tc_series_title.rb +0 -54
- data/test/drawing/tc_str_data.rb +0 -18
- data/test/drawing/tc_str_val.rb +0 -30
- data/test/drawing/tc_title.rb +0 -70
- data/test/drawing/tc_two_cell_anchor.rb +0 -36
- data/test/drawing/tc_val_axis.rb +0 -24
- data/test/drawing/tc_view_3D.rb +0 -54
- data/test/drawing/tc_vml_drawing.rb +0 -25
- data/test/drawing/tc_vml_shape.rb +0 -106
- data/test/fixtures/image1.gif +0 -0
- data/test/fixtures/image1.jpeg +0 -0
- data/test/fixtures/image1.jpg +0 -0
- data/test/fixtures/image1.png +0 -0
- data/test/fixtures/image1_fake.jpg +0 -0
- data/test/profile.rb +0 -24
- data/test/rels/tc_relationship.rb +0 -52
- data/test/rels/tc_relationships.rb +0 -37
- data/test/stylesheet/tc_border.rb +0 -37
- data/test/stylesheet/tc_border_pr.rb +0 -32
- data/test/stylesheet/tc_cell_alignment.rb +0 -81
- data/test/stylesheet/tc_cell_protection.rb +0 -29
- data/test/stylesheet/tc_cell_style.rb +0 -57
- data/test/stylesheet/tc_color.rb +0 -43
- data/test/stylesheet/tc_dxf.rb +0 -81
- data/test/stylesheet/tc_fill.rb +0 -18
- data/test/stylesheet/tc_font.rb +0 -133
- data/test/stylesheet/tc_gradient_fill.rb +0 -72
- data/test/stylesheet/tc_gradient_stop.rb +0 -31
- data/test/stylesheet/tc_num_fmt.rb +0 -30
- data/test/stylesheet/tc_pattern_fill.rb +0 -43
- data/test/stylesheet/tc_styles.rb +0 -309
- data/test/stylesheet/tc_table_style.rb +0 -44
- data/test/stylesheet/tc_table_style_element.rb +0 -45
- data/test/stylesheet/tc_table_styles.rb +0 -29
- data/test/stylesheet/tc_xf.rb +0 -120
- data/test/tc_axlsx.rb +0 -109
- data/test/tc_helper.rb +0 -10
- data/test/tc_package.rb +0 -317
- data/test/util/tc_mime_type_utils.rb +0 -13
- data/test/util/tc_serialized_attributes.rb +0 -19
- data/test/util/tc_simple_typed_list.rb +0 -77
- data/test/util/tc_validators.rb +0 -210
- data/test/workbook/tc_defined_name.rb +0 -49
- data/test/workbook/tc_shared_strings_table.rb +0 -59
- data/test/workbook/tc_workbook.rb +0 -165
- data/test/workbook/tc_workbook_view.rb +0 -50
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
- data/test/workbook/worksheet/tc_break.rb +0 -49
- data/test/workbook/worksheet/tc_cell.rb +0 -465
- data/test/workbook/worksheet/tc_cfvo.rb +0 -31
- data/test/workbook/worksheet/tc_col.rb +0 -93
- data/test/workbook/worksheet/tc_color_scale.rb +0 -58
- data/test/workbook/worksheet/tc_comment.rb +0 -72
- data/test/workbook/worksheet/tc_comments.rb +0 -57
- data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
- data/test/workbook/worksheet/tc_data_bar.rb +0 -46
- data/test/workbook/worksheet/tc_data_validation.rb +0 -265
- data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
- data/test/workbook/worksheet/tc_header_footer.rb +0 -151
- data/test/workbook/worksheet/tc_icon_set.rb +0 -45
- data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
- data/test/workbook/worksheet/tc_page_margins.rb +0 -97
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
- data/test/workbook/worksheet/tc_page_setup.rb +0 -143
- data/test/workbook/worksheet/tc_pane.rb +0 -54
- data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
- data/test/workbook/worksheet/tc_print_options.rb +0 -72
- data/test/workbook/worksheet/tc_protected_range.rb +0 -17
- data/test/workbook/worksheet/tc_rich_text.rb +0 -44
- data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
- data/test/workbook/worksheet/tc_row.rb +0 -160
- data/test/workbook/worksheet/tc_selection.rb +0 -55
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
- data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
- data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
- data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
- data/test/workbook/worksheet/tc_table.rb +0 -77
- data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
- data/test/workbook/worksheet/tc_worksheet.rb +0 -632
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# Table
|
|
4
|
-
# @note Worksheet#add_pivot_table is the recommended way to create tables for your worksheets.
|
|
5
|
-
# @see README for examples
|
|
6
|
-
class PivotTableCacheDefinition
|
|
7
|
-
|
|
8
|
-
include Axlsx::OptionsParser
|
|
9
|
-
|
|
10
|
-
# Creates a new PivotTable object
|
|
11
|
-
# @param [String] pivot_table The pivot table this cache definition is in
|
|
12
|
-
def initialize(pivot_table)
|
|
13
|
-
@pivot_table = pivot_table
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# # The reference to the pivot table data
|
|
17
|
-
# # @return [PivotTable]
|
|
18
|
-
attr_reader :pivot_table
|
|
19
|
-
|
|
20
|
-
# The index of this chart in the workbooks charts collection
|
|
21
|
-
# @return [Integer]
|
|
22
|
-
def index
|
|
23
|
-
pivot_table.sheet.workbook.pivot_tables.index(pivot_table)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# The part name for this table
|
|
27
|
-
# @return [String]
|
|
28
|
-
def pn
|
|
29
|
-
"#{PIVOT_TABLE_CACHE_DEFINITION_PN % (index+1)}"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# The identifier for this cache
|
|
33
|
-
# @return [Integer]
|
|
34
|
-
def cache_id
|
|
35
|
-
index + 1
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# The relationship id for this pivot table cache definition.
|
|
39
|
-
# @see Relationship#Id
|
|
40
|
-
# @return [String]
|
|
41
|
-
def rId
|
|
42
|
-
pivot_table.relationships.for(self).Id
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# Serializes the object
|
|
46
|
-
# @param [String] str
|
|
47
|
-
# @return [String]
|
|
48
|
-
def to_xml_string(str = '')
|
|
49
|
-
str << '<?xml version="1.0" encoding="UTF-8"?>'
|
|
50
|
-
str << ('<pivotCacheDefinition xmlns="' << XML_NS << '" xmlns:r="' << XML_NS_R << '" invalid="1" refreshOnLoad="1" recordCount="0">')
|
|
51
|
-
str << '<cacheSource type="worksheet">'
|
|
52
|
-
str << ( '<worksheetSource ref="' << pivot_table.range << '" sheet="' << pivot_table.data_sheet.name << '"/>')
|
|
53
|
-
str << '</cacheSource>'
|
|
54
|
-
str << ( '<cacheFields count="' << pivot_table.header_cells_count.to_s << '">')
|
|
55
|
-
pivot_table.header_cells.each do |cell|
|
|
56
|
-
str << ( '<cacheField name="' << cell.clean_value << '" numFmtId="0">')
|
|
57
|
-
str << '<sharedItems count="0">'
|
|
58
|
-
str << '</sharedItems>'
|
|
59
|
-
str << '</cacheField>'
|
|
60
|
-
end
|
|
61
|
-
str << '</cacheFields>'
|
|
62
|
-
str << '</pivotCacheDefinition>'
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# Table
|
|
4
|
+
# @note Worksheet#add_pivot_table is the recommended way to create tables for your worksheets.
|
|
5
|
+
# @see README for examples
|
|
6
|
+
class PivotTableCacheDefinition
|
|
7
|
+
|
|
8
|
+
include Axlsx::OptionsParser
|
|
9
|
+
|
|
10
|
+
# Creates a new PivotTable object
|
|
11
|
+
# @param [String] pivot_table The pivot table this cache definition is in
|
|
12
|
+
def initialize(pivot_table)
|
|
13
|
+
@pivot_table = pivot_table
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# # The reference to the pivot table data
|
|
17
|
+
# # @return [PivotTable]
|
|
18
|
+
attr_reader :pivot_table
|
|
19
|
+
|
|
20
|
+
# The index of this chart in the workbooks charts collection
|
|
21
|
+
# @return [Integer]
|
|
22
|
+
def index
|
|
23
|
+
pivot_table.sheet.workbook.pivot_tables.index(pivot_table)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# The part name for this table
|
|
27
|
+
# @return [String]
|
|
28
|
+
def pn
|
|
29
|
+
"#{PIVOT_TABLE_CACHE_DEFINITION_PN % (index+1)}"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# The identifier for this cache
|
|
33
|
+
# @return [Integer]
|
|
34
|
+
def cache_id
|
|
35
|
+
index + 1
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# The relationship id for this pivot table cache definition.
|
|
39
|
+
# @see Relationship#Id
|
|
40
|
+
# @return [String]
|
|
41
|
+
def rId
|
|
42
|
+
pivot_table.relationships.for(self).Id
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Serializes the object
|
|
46
|
+
# @param [String] str
|
|
47
|
+
# @return [String]
|
|
48
|
+
def to_xml_string(str = '')
|
|
49
|
+
str << '<?xml version="1.0" encoding="UTF-8"?>'
|
|
50
|
+
str << ('<pivotCacheDefinition xmlns="' << XML_NS << '" xmlns:r="' << XML_NS_R << '" invalid="1" refreshOnLoad="1" recordCount="0">')
|
|
51
|
+
str << '<cacheSource type="worksheet">'
|
|
52
|
+
str << ( '<worksheetSource ref="' << pivot_table.range << '" sheet="' << pivot_table.data_sheet.name << '"/>')
|
|
53
|
+
str << '</cacheSource>'
|
|
54
|
+
str << ( '<cacheFields count="' << pivot_table.header_cells_count.to_s << '">')
|
|
55
|
+
pivot_table.header_cells.each do |cell|
|
|
56
|
+
str << ( '<cacheField name="' << cell.clean_value << '" numFmtId="0">')
|
|
57
|
+
str << '<sharedItems count="0">'
|
|
58
|
+
str << '</sharedItems>'
|
|
59
|
+
str << '</cacheField>'
|
|
60
|
+
end
|
|
61
|
+
str << '</cacheFields>'
|
|
62
|
+
str << '</pivotCacheDefinition>'
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# A simple, self serializing class for storing pivot tables
|
|
4
|
-
class PivotTables < 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 PivotTable
|
|
10
|
-
@worksheet = worksheet
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# The worksheet that owns this collection of pivot 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{ |pivot_table| Relationship.new(pivot_table, PIVOT_TABLE_R, "../#{pivot_table.pn}") }
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# A simple, self serializing class for storing pivot tables
|
|
4
|
+
class PivotTables < 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 PivotTable
|
|
10
|
+
@worksheet = worksheet
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# The worksheet that owns this collection of pivot 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{ |pivot_table| Relationship.new(pivot_table, PIVOT_TABLE_R, "../#{pivot_table.pn}") }
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
end
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
# Options for printing a worksheet. All options are boolean and false by default.
|
|
3
|
-
#
|
|
4
|
-
# @note The recommended way to manage print options is via Worksheet#print_options
|
|
5
|
-
# @see Worksheet#print_options
|
|
6
|
-
# @see Worksheet#initialize
|
|
7
|
-
class PrintOptions
|
|
8
|
-
|
|
9
|
-
include Axlsx::OptionsParser
|
|
10
|
-
include Axlsx::SerializedAttributes
|
|
11
|
-
include Axlsx::Accessors
|
|
12
|
-
# Creates a new PrintOptions object
|
|
13
|
-
# @option options [Boolean] grid_lines Whether grid lines should be printed
|
|
14
|
-
# @option options [Boolean] headings Whether row and column headings should be printed
|
|
15
|
-
# @option options [Boolean] horizontal_centered Whether the content should be centered horizontally
|
|
16
|
-
# @option options [Boolean] vertical_centered Whether the content should be centered vertically
|
|
17
|
-
def initialize(options = {})
|
|
18
|
-
@grid_lines = @headings = @horizontal_centered = @vertical_centered = false
|
|
19
|
-
set(options)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
serializable_attributes :grid_lines, :headings, :horizontal_centered, :vertical_centered
|
|
23
|
-
boolean_attr_accessor :grid_lines, :headings, :horizontal_centered, :vertical_centered
|
|
24
|
-
|
|
25
|
-
# Set some or all options at once.
|
|
26
|
-
# @param [Hash] options The options to set (possible keys are :grid_lines, :headings, :horizontal_centered, and :vertical_centered).
|
|
27
|
-
def set(options)
|
|
28
|
-
parse_options options
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
# Serializes the page options element.
|
|
32
|
-
# @note As all attributes default to "false" according to the xml schema definition, the generated xml includes only those attributes that are set to true.
|
|
33
|
-
# @param [String] str
|
|
34
|
-
# @return [String]
|
|
35
|
-
def to_xml_string(str = '')
|
|
36
|
-
serialized_tag 'printOptions', str
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
# Options for printing a worksheet. All options are boolean and false by default.
|
|
3
|
+
#
|
|
4
|
+
# @note The recommended way to manage print options is via Worksheet#print_options
|
|
5
|
+
# @see Worksheet#print_options
|
|
6
|
+
# @see Worksheet#initialize
|
|
7
|
+
class PrintOptions
|
|
8
|
+
|
|
9
|
+
include Axlsx::OptionsParser
|
|
10
|
+
include Axlsx::SerializedAttributes
|
|
11
|
+
include Axlsx::Accessors
|
|
12
|
+
# Creates a new PrintOptions object
|
|
13
|
+
# @option options [Boolean] grid_lines Whether grid lines should be printed
|
|
14
|
+
# @option options [Boolean] headings Whether row and column headings should be printed
|
|
15
|
+
# @option options [Boolean] horizontal_centered Whether the content should be centered horizontally
|
|
16
|
+
# @option options [Boolean] vertical_centered Whether the content should be centered vertically
|
|
17
|
+
def initialize(options = {})
|
|
18
|
+
@grid_lines = @headings = @horizontal_centered = @vertical_centered = false
|
|
19
|
+
set(options)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
serializable_attributes :grid_lines, :headings, :horizontal_centered, :vertical_centered
|
|
23
|
+
boolean_attr_accessor :grid_lines, :headings, :horizontal_centered, :vertical_centered
|
|
24
|
+
|
|
25
|
+
# Set some or all options at once.
|
|
26
|
+
# @param [Hash] options The options to set (possible keys are :grid_lines, :headings, :horizontal_centered, and :vertical_centered).
|
|
27
|
+
def set(options)
|
|
28
|
+
parse_options options
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Serializes the page options element.
|
|
32
|
+
# @note As all attributes default to "false" according to the xml schema definition, the generated xml includes only those attributes that are set to true.
|
|
33
|
+
# @param [String] str
|
|
34
|
+
# @return [String]
|
|
35
|
+
def to_xml_string(str = '')
|
|
36
|
+
serialized_tag 'printOptions', str
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
# The Protected Range class represents a set of cells in the worksheet
|
|
3
|
-
# @note the recommended way to manage protected ranges with via Worksheet#protect_range
|
|
4
|
-
# @see Worksheet#protect_range
|
|
5
|
-
class ProtectedRange
|
|
6
|
-
|
|
7
|
-
include Axlsx::OptionsParser
|
|
8
|
-
include Axlsx::SerializedAttributes
|
|
9
|
-
|
|
10
|
-
# Initializes a new protected range object
|
|
11
|
-
# @option [String] sqref The cell range reference to protect. This can be an absolute or a relateve range however, it only applies to the current sheet.
|
|
12
|
-
# @option [String] name An optional name for the protected name.
|
|
13
|
-
def initialize(options={})
|
|
14
|
-
parse_options options
|
|
15
|
-
yield self if block_given?
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
serializable_attributes :sqref, :name
|
|
19
|
-
# The reference for the protected range
|
|
20
|
-
# @return [String]
|
|
21
|
-
attr_reader :sqref
|
|
22
|
-
|
|
23
|
-
# The name of the protected range
|
|
24
|
-
# @return [String]
|
|
25
|
-
attr_reader :name
|
|
26
|
-
|
|
27
|
-
# @see sqref
|
|
28
|
-
def sqref=(v)
|
|
29
|
-
Axlsx.validate_string(v)
|
|
30
|
-
@sqref = v
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @see name
|
|
34
|
-
def name=(v)
|
|
35
|
-
Axlsx.validate_string(v)
|
|
36
|
-
@name = v
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# serializes the proteted range
|
|
40
|
-
# @param [String] str if this string object is provided we append
|
|
41
|
-
# our output to that object. Use this - it helps limit the number of
|
|
42
|
-
# objects created during serialization
|
|
43
|
-
def to_xml_string(str="")
|
|
44
|
-
serialized_tag 'protectedRange', str
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
# The Protected Range class represents a set of cells in the worksheet
|
|
3
|
+
# @note the recommended way to manage protected ranges with via Worksheet#protect_range
|
|
4
|
+
# @see Worksheet#protect_range
|
|
5
|
+
class ProtectedRange
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
include Axlsx::SerializedAttributes
|
|
9
|
+
|
|
10
|
+
# Initializes a new protected range object
|
|
11
|
+
# @option [String] sqref The cell range reference to protect. This can be an absolute or a relateve range however, it only applies to the current sheet.
|
|
12
|
+
# @option [String] name An optional name for the protected name.
|
|
13
|
+
def initialize(options={})
|
|
14
|
+
parse_options options
|
|
15
|
+
yield self if block_given?
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
serializable_attributes :sqref, :name
|
|
19
|
+
# The reference for the protected range
|
|
20
|
+
# @return [String]
|
|
21
|
+
attr_reader :sqref
|
|
22
|
+
|
|
23
|
+
# The name of the protected range
|
|
24
|
+
# @return [String]
|
|
25
|
+
attr_reader :name
|
|
26
|
+
|
|
27
|
+
# @see sqref
|
|
28
|
+
def sqref=(v)
|
|
29
|
+
Axlsx.validate_string(v)
|
|
30
|
+
@sqref = v
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @see name
|
|
34
|
+
def name=(v)
|
|
35
|
+
Axlsx.validate_string(v)
|
|
36
|
+
@name = v
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# serializes the proteted range
|
|
40
|
+
# @param [String] str if this string object is provided we append
|
|
41
|
+
# our output to that object. Use this - it helps limit the number of
|
|
42
|
+
# objects created during serialization
|
|
43
|
+
def to_xml_string(str="")
|
|
44
|
+
serialized_tag 'protectedRange', str
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# A self serializing collection of ranges that should be protected in
|
|
4
|
-
# the worksheet
|
|
5
|
-
class ProtectedRanges < SimpleTypedList
|
|
6
|
-
|
|
7
|
-
attr_reader :worksheet
|
|
8
|
-
|
|
9
|
-
def initialize(worksheet)
|
|
10
|
-
raise ArgumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
|
|
11
|
-
super ProtectedRange
|
|
12
|
-
@worksheet = worksheet
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Adds a protected range
|
|
16
|
-
# @param [Array|String] cells A string range reference or array of cells that will be protected
|
|
17
|
-
def add_range(cells)
|
|
18
|
-
sqref = if cells.is_a?(String)
|
|
19
|
-
cells
|
|
20
|
-
elsif cells.is_a?(SimpleTypedList) || cells.is_a?(Array)
|
|
21
|
-
Axlsx::cell_range(cells, false)
|
|
22
|
-
end
|
|
23
|
-
self << ProtectedRange.new(:sqref => sqref, :name => "Range#{size}")
|
|
24
|
-
last
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# Serializes the protected ranges
|
|
28
|
-
# @param [String] str
|
|
29
|
-
# @return [String]
|
|
30
|
-
def to_xml_string(str = '')
|
|
31
|
-
return if empty?
|
|
32
|
-
str << '<protectedRanges>'
|
|
33
|
-
each { |range| range.to_xml_string(str) }
|
|
34
|
-
str << '</protectedRanges>'
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# A self serializing collection of ranges that should be protected in
|
|
4
|
+
# the worksheet
|
|
5
|
+
class ProtectedRanges < SimpleTypedList
|
|
6
|
+
|
|
7
|
+
attr_reader :worksheet
|
|
8
|
+
|
|
9
|
+
def initialize(worksheet)
|
|
10
|
+
raise ArgumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
|
|
11
|
+
super ProtectedRange
|
|
12
|
+
@worksheet = worksheet
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Adds a protected range
|
|
16
|
+
# @param [Array|String] cells A string range reference or array of cells that will be protected
|
|
17
|
+
def add_range(cells)
|
|
18
|
+
sqref = if cells.is_a?(String)
|
|
19
|
+
cells
|
|
20
|
+
elsif cells.is_a?(SimpleTypedList) || cells.is_a?(Array)
|
|
21
|
+
Axlsx::cell_range(cells, false)
|
|
22
|
+
end
|
|
23
|
+
self << ProtectedRange.new(:sqref => sqref, :name => "Range#{size}")
|
|
24
|
+
last
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Serializes the protected ranges
|
|
28
|
+
# @param [String] str
|
|
29
|
+
# @return [String]
|
|
30
|
+
def to_xml_string(str = '')
|
|
31
|
+
return if empty?
|
|
32
|
+
str << '<protectedRanges>'
|
|
33
|
+
each { |range| range.to_xml_string(str) }
|
|
34
|
+
str << '</protectedRanges>'
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# A simple, self serializing class for storing TextRuns
|
|
4
|
-
class RichText < SimpleTypedList
|
|
5
|
-
|
|
6
|
-
# creates a new RichText collection
|
|
7
|
-
# @param [String] text -optional The text to use in creating the first RichTextRun
|
|
8
|
-
# @param [Object] options -optional The options to use in creating the first RichTextRun
|
|
9
|
-
# @yield [RichText] self
|
|
10
|
-
def initialize(text = nil, options={})
|
|
11
|
-
super(RichTextRun)
|
|
12
|
-
add_run(text, options) unless text.nil?
|
|
13
|
-
yield self if block_given?
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# The cell that owns this RichText collection
|
|
17
|
-
attr_reader :cell
|
|
18
|
-
|
|
19
|
-
# Assign the cell for this RichText collection
|
|
20
|
-
# @param [Cell] cell The cell which all RichTextRuns in the collection will belong to
|
|
21
|
-
def cell=(cell)
|
|
22
|
-
@cell = cell
|
|
23
|
-
each { |run| run.cell = cell }
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# Calculates the longest autowidth of the RichTextRuns in this collection
|
|
27
|
-
# @return [Number]
|
|
28
|
-
def autowidth
|
|
29
|
-
widtharray = [0] # Are arrays the best way of solving this problem?
|
|
30
|
-
each { |run| run.autowidth(widtharray) }
|
|
31
|
-
widtharray.max
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# Creates and adds a RichTextRun to this collectino
|
|
35
|
-
# @param [String] text The text to use in creating a new RichTextRun
|
|
36
|
-
# @param [Object] options The options to use in creating the new RichTextRun
|
|
37
|
-
def add_run(text, options={})
|
|
38
|
-
self << RichTextRun.new(text, options)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# The RichTextRuns we own
|
|
42
|
-
# @return [RichText]
|
|
43
|
-
def runs
|
|
44
|
-
self
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# renders the RichTextRuns in this collection
|
|
48
|
-
# @param [String] str
|
|
49
|
-
# @return [String]
|
|
50
|
-
def to_xml_string(str='')
|
|
51
|
-
each{ |run| run.to_xml_string(str) }
|
|
52
|
-
str
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# A simple, self serializing class for storing TextRuns
|
|
4
|
+
class RichText < SimpleTypedList
|
|
5
|
+
|
|
6
|
+
# creates a new RichText collection
|
|
7
|
+
# @param [String] text -optional The text to use in creating the first RichTextRun
|
|
8
|
+
# @param [Object] options -optional The options to use in creating the first RichTextRun
|
|
9
|
+
# @yield [RichText] self
|
|
10
|
+
def initialize(text = nil, options={})
|
|
11
|
+
super(RichTextRun)
|
|
12
|
+
add_run(text, options) unless text.nil?
|
|
13
|
+
yield self if block_given?
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# The cell that owns this RichText collection
|
|
17
|
+
attr_reader :cell
|
|
18
|
+
|
|
19
|
+
# Assign the cell for this RichText collection
|
|
20
|
+
# @param [Cell] cell The cell which all RichTextRuns in the collection will belong to
|
|
21
|
+
def cell=(cell)
|
|
22
|
+
@cell = cell
|
|
23
|
+
each { |run| run.cell = cell }
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Calculates the longest autowidth of the RichTextRuns in this collection
|
|
27
|
+
# @return [Number]
|
|
28
|
+
def autowidth
|
|
29
|
+
widtharray = [0] # Are arrays the best way of solving this problem?
|
|
30
|
+
each { |run| run.autowidth(widtharray) }
|
|
31
|
+
widtharray.max
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Creates and adds a RichTextRun to this collectino
|
|
35
|
+
# @param [String] text The text to use in creating a new RichTextRun
|
|
36
|
+
# @param [Object] options The options to use in creating the new RichTextRun
|
|
37
|
+
def add_run(text, options={})
|
|
38
|
+
self << RichTextRun.new(text, options)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# The RichTextRuns we own
|
|
42
|
+
# @return [RichText]
|
|
43
|
+
def runs
|
|
44
|
+
self
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# renders the RichTextRuns in this collection
|
|
48
|
+
# @param [String] str
|
|
49
|
+
# @return [String]
|
|
50
|
+
def to_xml_string(str='')
|
|
51
|
+
each{ |run| run.to_xml_string(str) }
|
|
52
|
+
str
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|