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,34 +1,34 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
module Axlsx
|
|
3
|
-
|
|
4
|
-
#This class specifies data for a particular data point.
|
|
5
|
-
class StrVal
|
|
6
|
-
|
|
7
|
-
include Axlsx::OptionsParser
|
|
8
|
-
|
|
9
|
-
# creates a new StrVal object
|
|
10
|
-
# @option options [String] v
|
|
11
|
-
def initialize(options={})
|
|
12
|
-
@v = ""
|
|
13
|
-
@idx = 0
|
|
14
|
-
parse_options options
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# a string value.
|
|
18
|
-
# @return [String]
|
|
19
|
-
attr_reader :v
|
|
20
|
-
|
|
21
|
-
# @see v
|
|
22
|
-
def v=(v)
|
|
23
|
-
@v = v.to_s
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# serialize the object
|
|
27
|
-
def to_xml_string(idx, str = "")
|
|
28
|
-
Axlsx::validate_unsigned_int(idx)
|
|
29
|
-
if !v.to_s.empty?
|
|
30
|
-
str << ('<c:pt idx="' << idx.to_s << '"><c:v>' << ::CGI.escapeHTML(v.to_s) << '</c:v></c:pt>')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
#This class specifies data for a particular data point.
|
|
5
|
+
class StrVal
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
|
|
9
|
+
# creates a new StrVal object
|
|
10
|
+
# @option options [String] v
|
|
11
|
+
def initialize(options={})
|
|
12
|
+
@v = ""
|
|
13
|
+
@idx = 0
|
|
14
|
+
parse_options options
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# a string value.
|
|
18
|
+
# @return [String]
|
|
19
|
+
attr_reader :v
|
|
20
|
+
|
|
21
|
+
# @see v
|
|
22
|
+
def v=(v)
|
|
23
|
+
@v = v.to_s
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# serialize the object
|
|
27
|
+
def to_xml_string(idx, str = "")
|
|
28
|
+
Axlsx::validate_unsigned_int(idx)
|
|
29
|
+
if !v.to_s.empty?
|
|
30
|
+
str << ('<c:pt idx="' << idx.to_s << '"><c:v>' << ::CGI.escapeHTML(v.to_s) << '</c:v></c:pt>')
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
data/lib/axlsx/drawing/title.rb
CHANGED
|
@@ -1,97 +1,107 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# A Title stores information about the title of a chart
|
|
4
|
-
class Title
|
|
5
|
-
|
|
6
|
-
# The text to be shown. Setting this property directly with a string will remove the cell reference.
|
|
7
|
-
# @return [String]
|
|
8
|
-
attr_reader :text
|
|
9
|
-
|
|
10
|
-
# Text size property
|
|
11
|
-
# @return [String]
|
|
12
|
-
attr_reader :text_size
|
|
13
|
-
|
|
14
|
-
# The cell that holds the text for the title. Setting this property will automatically update the text attribute.
|
|
15
|
-
# @return [Cell]
|
|
16
|
-
attr_reader :cell
|
|
17
|
-
|
|
18
|
-
# Creates a new Title object
|
|
19
|
-
# @param [String, Cell] title The cell or string to be used for the chart's title
|
|
20
|
-
def initialize(title="", title_size="")
|
|
21
|
-
self.cell = title if title.is_a?(Cell)
|
|
22
|
-
self.text = title.to_s unless title.is_a?(Cell)
|
|
23
|
-
if title_size.to_s.empty?
|
|
24
|
-
self.text_size = "1600"
|
|
25
|
-
else
|
|
26
|
-
self.text_size = title_size.to_s
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# @see text
|
|
31
|
-
def text=(v)
|
|
32
|
-
DataTypeValidator.validate 'Title.text', String, v
|
|
33
|
-
@text = v
|
|
34
|
-
@cell = nil
|
|
35
|
-
v
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# @see text_size
|
|
39
|
-
def text_size=(v)
|
|
40
|
-
DataTypeValidator.validate 'Title.text_size', String, v
|
|
41
|
-
@text_size = v
|
|
42
|
-
@cell = nil
|
|
43
|
-
v
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# @see cell
|
|
47
|
-
def cell=(v)
|
|
48
|
-
DataTypeValidator.validate 'Title.text', Cell, v
|
|
49
|
-
@cell = v
|
|
50
|
-
@text = v.value.to_s
|
|
51
|
-
v
|
|
52
|
-
end
|
|
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
|
-
str << '<c:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A Title stores information about the title of a chart
|
|
4
|
+
class Title
|
|
5
|
+
|
|
6
|
+
# The text to be shown. Setting this property directly with a string will remove the cell reference.
|
|
7
|
+
# @return [String]
|
|
8
|
+
attr_reader :text
|
|
9
|
+
|
|
10
|
+
# Text size property
|
|
11
|
+
# @return [String]
|
|
12
|
+
attr_reader :text_size
|
|
13
|
+
|
|
14
|
+
# The cell that holds the text for the title. Setting this property will automatically update the text attribute.
|
|
15
|
+
# @return [Cell]
|
|
16
|
+
attr_reader :cell
|
|
17
|
+
|
|
18
|
+
# Creates a new Title object
|
|
19
|
+
# @param [String, Cell] title The cell or string to be used for the chart's title
|
|
20
|
+
def initialize(title="", title_size="")
|
|
21
|
+
self.cell = title if title.is_a?(Cell)
|
|
22
|
+
self.text = title.to_s unless title.is_a?(Cell)
|
|
23
|
+
if title_size.to_s.empty?
|
|
24
|
+
self.text_size = "1600"
|
|
25
|
+
else
|
|
26
|
+
self.text_size = title_size.to_s
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @see text
|
|
31
|
+
def text=(v)
|
|
32
|
+
DataTypeValidator.validate 'Title.text', String, v
|
|
33
|
+
@text = v
|
|
34
|
+
@cell = nil
|
|
35
|
+
v
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# @see text_size
|
|
39
|
+
def text_size=(v)
|
|
40
|
+
DataTypeValidator.validate 'Title.text_size', String, v
|
|
41
|
+
@text_size = v
|
|
42
|
+
@cell = nil
|
|
43
|
+
v
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# @see cell
|
|
47
|
+
def cell=(v)
|
|
48
|
+
DataTypeValidator.validate 'Title.text', Cell, v
|
|
49
|
+
@cell = v
|
|
50
|
+
@text = v.value.to_s
|
|
51
|
+
v
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Check if the title is empty.
|
|
55
|
+
#
|
|
56
|
+
# A title is considered empty if it is an empty string. If the title references a cell it is *not* empty,
|
|
57
|
+
# even if the referenced cell is blank (because the cell’s value could still change later).
|
|
58
|
+
#
|
|
59
|
+
# @return [Boolean]
|
|
60
|
+
def empty?
|
|
61
|
+
@text.empty? && @cell.nil?
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Not implemented at this time.
|
|
65
|
+
#def layout=(v) DataTypeValidator.validate 'Title.layout', Layout, v; @layout = v; end
|
|
66
|
+
#def overlay=(v) Axlsx::validate_boolean v; @overlay=v; end
|
|
67
|
+
#def spPr=(v) DataTypeValidator.validate 'Title.spPr', SpPr, v; @spPr = v; end
|
|
68
|
+
|
|
69
|
+
# Serializes the object
|
|
70
|
+
# @param [String] str
|
|
71
|
+
# @return [String]
|
|
72
|
+
def to_xml_string(str = '')
|
|
73
|
+
str << '<c:title>'
|
|
74
|
+
unless empty?
|
|
75
|
+
clean_value = Axlsx::trust_input ? @text.to_s : ::CGI.escapeHTML(Axlsx::sanitize(@text.to_s))
|
|
76
|
+
str << '<c:tx>'
|
|
77
|
+
if @cell.is_a?(Cell)
|
|
78
|
+
str << '<c:strRef>'
|
|
79
|
+
str << ('<c:f>' << Axlsx::cell_range([@cell]) << '</c:f>')
|
|
80
|
+
str << '<c:strCache>'
|
|
81
|
+
str << '<c:ptCount val="1"/>'
|
|
82
|
+
str << '<c:pt idx="0">'
|
|
83
|
+
str << ('<c:v>' << clean_value << '</c:v>')
|
|
84
|
+
str << '</c:pt>'
|
|
85
|
+
str << '</c:strCache>'
|
|
86
|
+
str << '</c:strRef>'
|
|
87
|
+
else
|
|
88
|
+
str << '<c:rich>'
|
|
89
|
+
str << '<a:bodyPr/>'
|
|
90
|
+
str << '<a:lstStyle/>'
|
|
91
|
+
str << '<a:p>'
|
|
92
|
+
str << '<a:r>'
|
|
93
|
+
str << ('<a:rPr sz="' << @text_size.to_s << '"/>')
|
|
94
|
+
str << ('<a:t>' << clean_value << '</a:t>')
|
|
95
|
+
str << '</a:r>'
|
|
96
|
+
str << '</a:p>'
|
|
97
|
+
str << '</c:rich>'
|
|
98
|
+
end
|
|
99
|
+
str << '</c:tx>'
|
|
100
|
+
end
|
|
101
|
+
str << '<c:layout/>'
|
|
102
|
+
str << '<c:overlay val="0"/>'
|
|
103
|
+
str << '</c:title>'
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# This class details the anchor points for drawings.
|
|
4
|
-
# @note The recommended way to manage drawings and charts is Worksheet#add_chart. Anchors are specified by the :start_at and :end_at options to that method.
|
|
5
|
-
# @see Worksheet#add_chart
|
|
6
|
-
class TwoCellAnchor
|
|
7
|
-
|
|
8
|
-
include Axlsx::OptionsParser
|
|
9
|
-
|
|
10
|
-
# A marker that defines the from cell anchor. The default from column and row are 0 and 0 respectively
|
|
11
|
-
# @return [Marker]
|
|
12
|
-
attr_reader :from
|
|
13
|
-
# A marker that returns the to cell anchor. The default to column and row are 5 and 10 respectively
|
|
14
|
-
# @return [Marker]
|
|
15
|
-
attr_reader :to
|
|
16
|
-
|
|
17
|
-
# The frame for your chart
|
|
18
|
-
# @note this will be discontinued in version 2.0 please use object
|
|
19
|
-
# @return [GraphicFrame]
|
|
20
|
-
# attr_reader :graphic_frame
|
|
21
|
-
|
|
22
|
-
# The object this anchor hosts
|
|
23
|
-
# @return [Pic, GraphicFrame]
|
|
24
|
-
attr_reader :object
|
|
25
|
-
|
|
26
|
-
# The drawing that holds this anchor
|
|
27
|
-
# @return [Drawing]
|
|
28
|
-
attr_reader :drawing
|
|
29
|
-
|
|
30
|
-
# Creates a new TwoCellAnchor object
|
|
31
|
-
# c.start_at 5, 9
|
|
32
|
-
# @param [Drawing] drawing
|
|
33
|
-
# @option options [Array] :start_at the col, row to start at THIS IS DOCUMENTED BUT NOT IMPLEMENTED HERE!
|
|
34
|
-
# @option options [Array] :end_at the col, row to end at
|
|
35
|
-
def initialize(drawing, options={})
|
|
36
|
-
@drawing = drawing
|
|
37
|
-
drawing.anchors << self
|
|
38
|
-
@from, @to = Marker.new, Marker.new(:col => 5, :row=>10)
|
|
39
|
-
parse_options options
|
|
40
|
-
|
|
41
|
-
# bit of a hack to work around the fact that the coords for start at and end at
|
|
42
|
-
# are passed in as an array when specified in intialization options - however
|
|
43
|
-
start_at(*options[:start_at]) if options[:start_at]
|
|
44
|
-
end_at(*options[:end_at]) if options[:end_at]
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
# sets the col, row attributes for the from marker.
|
|
48
|
-
# @note The recommended way to set the start position for graphical
|
|
49
|
-
# objects is directly thru the object.
|
|
50
|
-
# @see Chart#start_at
|
|
51
|
-
def start_at(x, y=nil)
|
|
52
|
-
from.coord x, y
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# sets the col, row attributes for the to marker
|
|
56
|
-
# @note the recommended way to set the to position for graphical
|
|
57
|
-
# objects is directly thru the object
|
|
58
|
-
# @see Char#end_at
|
|
59
|
-
def end_at(x, y=nil)
|
|
60
|
-
to.coord x, y
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# Creates a graphic frame and chart object associated with this anchor
|
|
64
|
-
# @return [Chart]
|
|
65
|
-
def add_chart(chart_type, options)
|
|
66
|
-
@object = GraphicFrame.new(self, chart_type, options)
|
|
67
|
-
@object.chart
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# Creates an image associated with this anchor.
|
|
71
|
-
def add_pic(options={})
|
|
72
|
-
@object = Pic.new(self, options)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# The index of this anchor in the drawing
|
|
76
|
-
# @return [Integer]
|
|
77
|
-
def index
|
|
78
|
-
@drawing.anchors.index(self)
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# Serializes the object
|
|
82
|
-
# @param [String] str
|
|
83
|
-
# @return [String]
|
|
84
|
-
def to_xml_string(str = '')
|
|
85
|
-
str << '<xdr:twoCellAnchor>'
|
|
86
|
-
str << '<xdr:from>'
|
|
87
|
-
from.to_xml_string str
|
|
88
|
-
str << '</xdr:from>'
|
|
89
|
-
str << '<xdr:to>'
|
|
90
|
-
to.to_xml_string str
|
|
91
|
-
str << '</xdr:to>'
|
|
92
|
-
object.to_xml_string(str)
|
|
93
|
-
str << '<xdr:clientData/>'
|
|
94
|
-
str << '</xdr:twoCellAnchor>'
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# This class details the anchor points for drawings.
|
|
4
|
+
# @note The recommended way to manage drawings and charts is Worksheet#add_chart. Anchors are specified by the :start_at and :end_at options to that method.
|
|
5
|
+
# @see Worksheet#add_chart
|
|
6
|
+
class TwoCellAnchor
|
|
7
|
+
|
|
8
|
+
include Axlsx::OptionsParser
|
|
9
|
+
|
|
10
|
+
# A marker that defines the from cell anchor. The default from column and row are 0 and 0 respectively
|
|
11
|
+
# @return [Marker]
|
|
12
|
+
attr_reader :from
|
|
13
|
+
# A marker that returns the to cell anchor. The default to column and row are 5 and 10 respectively
|
|
14
|
+
# @return [Marker]
|
|
15
|
+
attr_reader :to
|
|
16
|
+
|
|
17
|
+
# The frame for your chart
|
|
18
|
+
# @note this will be discontinued in version 2.0 please use object
|
|
19
|
+
# @return [GraphicFrame]
|
|
20
|
+
# attr_reader :graphic_frame
|
|
21
|
+
|
|
22
|
+
# The object this anchor hosts
|
|
23
|
+
# @return [Pic, GraphicFrame]
|
|
24
|
+
attr_reader :object
|
|
25
|
+
|
|
26
|
+
# The drawing that holds this anchor
|
|
27
|
+
# @return [Drawing]
|
|
28
|
+
attr_reader :drawing
|
|
29
|
+
|
|
30
|
+
# Creates a new TwoCellAnchor object
|
|
31
|
+
# c.start_at 5, 9
|
|
32
|
+
# @param [Drawing] drawing
|
|
33
|
+
# @option options [Array] :start_at the col, row to start at THIS IS DOCUMENTED BUT NOT IMPLEMENTED HERE!
|
|
34
|
+
# @option options [Array] :end_at the col, row to end at
|
|
35
|
+
def initialize(drawing, options={})
|
|
36
|
+
@drawing = drawing
|
|
37
|
+
drawing.anchors << self
|
|
38
|
+
@from, @to = Marker.new, Marker.new(:col => 5, :row=>10)
|
|
39
|
+
parse_options options
|
|
40
|
+
|
|
41
|
+
# bit of a hack to work around the fact that the coords for start at and end at
|
|
42
|
+
# are passed in as an array when specified in intialization options - however
|
|
43
|
+
start_at(*options[:start_at]) if options[:start_at]
|
|
44
|
+
end_at(*options[:end_at]) if options[:end_at]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# sets the col, row attributes for the from marker.
|
|
48
|
+
# @note The recommended way to set the start position for graphical
|
|
49
|
+
# objects is directly thru the object.
|
|
50
|
+
# @see Chart#start_at
|
|
51
|
+
def start_at(x, y=nil)
|
|
52
|
+
from.coord x, y
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# sets the col, row attributes for the to marker
|
|
56
|
+
# @note the recommended way to set the to position for graphical
|
|
57
|
+
# objects is directly thru the object
|
|
58
|
+
# @see Char#end_at
|
|
59
|
+
def end_at(x, y=nil)
|
|
60
|
+
to.coord x, y
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Creates a graphic frame and chart object associated with this anchor
|
|
64
|
+
# @return [Chart]
|
|
65
|
+
def add_chart(chart_type, options)
|
|
66
|
+
@object = GraphicFrame.new(self, chart_type, options)
|
|
67
|
+
@object.chart
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Creates an image associated with this anchor.
|
|
71
|
+
def add_pic(options={})
|
|
72
|
+
@object = Pic.new(self, options)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# The index of this anchor in the drawing
|
|
76
|
+
# @return [Integer]
|
|
77
|
+
def index
|
|
78
|
+
@drawing.anchors.index(self)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Serializes the object
|
|
82
|
+
# @param [String] str
|
|
83
|
+
# @return [String]
|
|
84
|
+
def to_xml_string(str = '')
|
|
85
|
+
str << '<xdr:twoCellAnchor>'
|
|
86
|
+
str << '<xdr:from>'
|
|
87
|
+
from.to_xml_string str
|
|
88
|
+
str << '</xdr:from>'
|
|
89
|
+
str << '<xdr:to>'
|
|
90
|
+
to.to_xml_string str
|
|
91
|
+
str << '</xdr:to>'
|
|
92
|
+
object.to_xml_string(str)
|
|
93
|
+
str << '<xdr:clientData/>'
|
|
94
|
+
str << '</xdr:twoCellAnchor>'
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# the ValAxis class defines a chart value axis.
|
|
4
|
-
class ValAxis < Axis
|
|
5
|
-
|
|
6
|
-
# This element specifies how the value axis crosses the category axis.
|
|
7
|
-
# must be one of [:between, :midCat]
|
|
8
|
-
# @return [Symbol]
|
|
9
|
-
attr_reader :cross_between
|
|
10
|
-
alias :crossBetween :cross_between
|
|
11
|
-
|
|
12
|
-
# Creates a new ValAxis object
|
|
13
|
-
# @option options [Symbol] crosses_between
|
|
14
|
-
def initialize(options={})
|
|
15
|
-
self.cross_between = :between
|
|
16
|
-
super(options)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# @see cross_between
|
|
20
|
-
def cross_between=(v)
|
|
21
|
-
RestrictionValidator.validate "ValAxis.cross_between", [:between, :midCat], v
|
|
22
|
-
@cross_between = v
|
|
23
|
-
end
|
|
24
|
-
alias :crossBetween= :cross_between=
|
|
25
|
-
|
|
26
|
-
# Serializes the object
|
|
27
|
-
# @param [String] str
|
|
28
|
-
# @return [String]
|
|
29
|
-
def to_xml_string(str = '')
|
|
30
|
-
str << '<c:valAx>'
|
|
31
|
-
super(str)
|
|
32
|
-
str << ('<c:crossBetween val="' << @cross_between.to_s << '"/>')
|
|
33
|
-
str << '</c:valAx>'
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
end
|
|
37
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# the ValAxis class defines a chart value axis.
|
|
4
|
+
class ValAxis < Axis
|
|
5
|
+
|
|
6
|
+
# This element specifies how the value axis crosses the category axis.
|
|
7
|
+
# must be one of [:between, :midCat]
|
|
8
|
+
# @return [Symbol]
|
|
9
|
+
attr_reader :cross_between
|
|
10
|
+
alias :crossBetween :cross_between
|
|
11
|
+
|
|
12
|
+
# Creates a new ValAxis object
|
|
13
|
+
# @option options [Symbol] crosses_between
|
|
14
|
+
def initialize(options={})
|
|
15
|
+
self.cross_between = :between
|
|
16
|
+
super(options)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @see cross_between
|
|
20
|
+
def cross_between=(v)
|
|
21
|
+
RestrictionValidator.validate "ValAxis.cross_between", [:between, :midCat], v
|
|
22
|
+
@cross_between = v
|
|
23
|
+
end
|
|
24
|
+
alias :crossBetween= :cross_between=
|
|
25
|
+
|
|
26
|
+
# Serializes the object
|
|
27
|
+
# @param [String] str
|
|
28
|
+
# @return [String]
|
|
29
|
+
def to_xml_string(str = '')
|
|
30
|
+
str << '<c:valAx>'
|
|
31
|
+
super(str)
|
|
32
|
+
str << ('<c:crossBetween val="' << @cross_between.to_s << '"/>')
|
|
33
|
+
str << '</c:valAx>'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
end
|