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,110 +1,110 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# A LineSeries defines the title, data and labels for line charts
|
|
4
|
-
# @note The recommended way to manage series is to use Chart#add_series
|
|
5
|
-
# @see Worksheet#add_chart
|
|
6
|
-
# @see Chart#add_series
|
|
7
|
-
class LineSeries < Series
|
|
8
|
-
|
|
9
|
-
# The data for this series.
|
|
10
|
-
# @return [ValAxisData]
|
|
11
|
-
attr_reader :data
|
|
12
|
-
|
|
13
|
-
# The labels for this series.
|
|
14
|
-
# @return [CatAxisData]
|
|
15
|
-
attr_reader :labels
|
|
16
|
-
|
|
17
|
-
# The fill color for this series.
|
|
18
|
-
# Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
|
|
19
|
-
# @return [String]
|
|
20
|
-
attr_reader :color
|
|
21
|
-
|
|
22
|
-
# show markers on values
|
|
23
|
-
# @return [Boolean]
|
|
24
|
-
attr_reader :show_marker
|
|
25
|
-
|
|
26
|
-
# custom marker symbol
|
|
27
|
-
# @return [String]
|
|
28
|
-
attr_reader :marker_symbol
|
|
29
|
-
|
|
30
|
-
# line smoothing on values
|
|
31
|
-
# @return [Boolean]
|
|
32
|
-
attr_reader :smooth
|
|
33
|
-
|
|
34
|
-
# Creates a new series
|
|
35
|
-
# @option options [Array, SimpleTypedList] data
|
|
36
|
-
# @option options [Array, SimpleTypedList] labels
|
|
37
|
-
# @param [Chart] chart
|
|
38
|
-
def initialize(chart, options={})
|
|
39
|
-
@show_marker = false
|
|
40
|
-
@marker_symbol = options[:marker_symbol] ? options[:marker_symbol] : :default
|
|
41
|
-
@smooth = false
|
|
42
|
-
@labels, @data = nil, nil
|
|
43
|
-
super(chart, options)
|
|
44
|
-
@labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
|
|
45
|
-
@data = NumDataSource.new(options) unless options[:data].nil?
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# @see color
|
|
49
|
-
def color=(v)
|
|
50
|
-
@color = v
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
# @see show_marker
|
|
54
|
-
def show_marker=(v)
|
|
55
|
-
Axlsx::validate_boolean(v)
|
|
56
|
-
@show_marker = v
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# @see marker_symbol
|
|
60
|
-
def marker_symbol=(v)
|
|
61
|
-
Axlsx::validate_marker_symbol(v)
|
|
62
|
-
@marker_symbol = v
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# @see smooth
|
|
66
|
-
def smooth=(v)
|
|
67
|
-
Axlsx::validate_boolean(v)
|
|
68
|
-
@smooth = v
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
# Serializes the object
|
|
72
|
-
# @param [String] str
|
|
73
|
-
# @return [String]
|
|
74
|
-
def to_xml_string(str = '')
|
|
75
|
-
super(str) do
|
|
76
|
-
if color
|
|
77
|
-
str << '<c:spPr><a:solidFill>'
|
|
78
|
-
str << ('<a:srgbClr val="' << color << '"/>')
|
|
79
|
-
str << '</a:solidFill>'
|
|
80
|
-
str << '<a:ln w="28800">'
|
|
81
|
-
str << '<a:solidFill>'
|
|
82
|
-
str << ('<a:srgbClr val="' << color << '"/>')
|
|
83
|
-
str << '</a:solidFill>'
|
|
84
|
-
str << '</a:ln>'
|
|
85
|
-
str << '<a:round/>'
|
|
86
|
-
str << '</c:spPr>'
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
if !@show_marker
|
|
90
|
-
str << '<c:marker><c:symbol val="none"/></c:marker>'
|
|
91
|
-
elsif @marker_symbol != :default
|
|
92
|
-
str << '<c:marker><c:symbol val="' + @marker_symbol.to_s + '"/></c:marker>'
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
@labels.to_xml_string(str) unless @labels.nil?
|
|
96
|
-
@data.to_xml_string(str) unless @data.nil?
|
|
97
|
-
str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
private
|
|
102
|
-
|
|
103
|
-
# assigns the data for this series
|
|
104
|
-
def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
|
|
105
|
-
|
|
106
|
-
# assigns the labels for this series
|
|
107
|
-
def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
|
|
108
|
-
|
|
109
|
-
end
|
|
110
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A LineSeries defines the title, data and labels for line charts
|
|
4
|
+
# @note The recommended way to manage series is to use Chart#add_series
|
|
5
|
+
# @see Worksheet#add_chart
|
|
6
|
+
# @see Chart#add_series
|
|
7
|
+
class LineSeries < Series
|
|
8
|
+
|
|
9
|
+
# The data for this series.
|
|
10
|
+
# @return [ValAxisData]
|
|
11
|
+
attr_reader :data
|
|
12
|
+
|
|
13
|
+
# The labels for this series.
|
|
14
|
+
# @return [CatAxisData]
|
|
15
|
+
attr_reader :labels
|
|
16
|
+
|
|
17
|
+
# The fill color for this series.
|
|
18
|
+
# Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
|
|
19
|
+
# @return [String]
|
|
20
|
+
attr_reader :color
|
|
21
|
+
|
|
22
|
+
# show markers on values
|
|
23
|
+
# @return [Boolean]
|
|
24
|
+
attr_reader :show_marker
|
|
25
|
+
|
|
26
|
+
# custom marker symbol
|
|
27
|
+
# @return [String]
|
|
28
|
+
attr_reader :marker_symbol
|
|
29
|
+
|
|
30
|
+
# line smoothing on values
|
|
31
|
+
# @return [Boolean]
|
|
32
|
+
attr_reader :smooth
|
|
33
|
+
|
|
34
|
+
# Creates a new series
|
|
35
|
+
# @option options [Array, SimpleTypedList] data
|
|
36
|
+
# @option options [Array, SimpleTypedList] labels
|
|
37
|
+
# @param [Chart] chart
|
|
38
|
+
def initialize(chart, options={})
|
|
39
|
+
@show_marker = false
|
|
40
|
+
@marker_symbol = options[:marker_symbol] ? options[:marker_symbol] : :default
|
|
41
|
+
@smooth = false
|
|
42
|
+
@labels, @data = nil, nil
|
|
43
|
+
super(chart, options)
|
|
44
|
+
@labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
|
|
45
|
+
@data = NumDataSource.new(options) unless options[:data].nil?
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @see color
|
|
49
|
+
def color=(v)
|
|
50
|
+
@color = v
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @see show_marker
|
|
54
|
+
def show_marker=(v)
|
|
55
|
+
Axlsx::validate_boolean(v)
|
|
56
|
+
@show_marker = v
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @see marker_symbol
|
|
60
|
+
def marker_symbol=(v)
|
|
61
|
+
Axlsx::validate_marker_symbol(v)
|
|
62
|
+
@marker_symbol = v
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @see smooth
|
|
66
|
+
def smooth=(v)
|
|
67
|
+
Axlsx::validate_boolean(v)
|
|
68
|
+
@smooth = v
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Serializes the object
|
|
72
|
+
# @param [String] str
|
|
73
|
+
# @return [String]
|
|
74
|
+
def to_xml_string(str = '')
|
|
75
|
+
super(str) do
|
|
76
|
+
if color
|
|
77
|
+
str << '<c:spPr><a:solidFill>'
|
|
78
|
+
str << ('<a:srgbClr val="' << color << '"/>')
|
|
79
|
+
str << '</a:solidFill>'
|
|
80
|
+
str << '<a:ln w="28800">'
|
|
81
|
+
str << '<a:solidFill>'
|
|
82
|
+
str << ('<a:srgbClr val="' << color << '"/>')
|
|
83
|
+
str << '</a:solidFill>'
|
|
84
|
+
str << '</a:ln>'
|
|
85
|
+
str << '<a:round/>'
|
|
86
|
+
str << '</c:spPr>'
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
if !@show_marker
|
|
90
|
+
str << '<c:marker><c:symbol val="none"/></c:marker>'
|
|
91
|
+
elsif @marker_symbol != :default
|
|
92
|
+
str << '<c:marker><c:symbol val="' + @marker_symbol.to_s + '"/></c:marker>'
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
@labels.to_xml_string(str) unless @labels.nil?
|
|
96
|
+
@data.to_xml_string(str) unless @data.nil?
|
|
97
|
+
str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
private
|
|
102
|
+
|
|
103
|
+
# assigns the data for this series
|
|
104
|
+
def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
|
|
105
|
+
|
|
106
|
+
# assigns the labels for this series
|
|
107
|
+
def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
|
|
108
|
+
|
|
109
|
+
end
|
|
110
|
+
end
|
data/lib/axlsx/drawing/marker.rb
CHANGED
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# The Marker class defines a point in the worksheet that drawing anchors attach to.
|
|
4
|
-
# @note The recommended way to manage markers is Worksheet#add_chart Markers are created for a two cell anchor based on the :start and :end options.
|
|
5
|
-
# @see Worksheet#add_chart
|
|
6
|
-
class Marker
|
|
7
|
-
|
|
8
|
-
include Axlsx::OptionsParser
|
|
9
|
-
|
|
10
|
-
# Creates a new Marker object
|
|
11
|
-
# @option options [Integer] col
|
|
12
|
-
# @option options [Integer] colOff
|
|
13
|
-
# @option options [Integer] row
|
|
14
|
-
# @option options [Integer] rowOff
|
|
15
|
-
def initialize(options={})
|
|
16
|
-
@col, @colOff, @row, @rowOff = 0, 0, 0, 0
|
|
17
|
-
parse_options options
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# The column this marker anchors to
|
|
21
|
-
# @return [Integer]
|
|
22
|
-
attr_reader :col
|
|
23
|
-
|
|
24
|
-
# The offset distance from this marker's column
|
|
25
|
-
# @return [Integer]
|
|
26
|
-
attr_reader :colOff
|
|
27
|
-
|
|
28
|
-
# The row this marker anchors to
|
|
29
|
-
# @return [Integer]
|
|
30
|
-
attr_reader :row
|
|
31
|
-
|
|
32
|
-
# The offset distance from this marker's row
|
|
33
|
-
# @return [Integer]
|
|
34
|
-
attr_reader :rowOff
|
|
35
|
-
|
|
36
|
-
# @see col
|
|
37
|
-
def col=(v) Axlsx::validate_unsigned_int v; @col = v end
|
|
38
|
-
# @see colOff
|
|
39
|
-
def colOff=(v) Axlsx::validate_int v; @colOff = v end
|
|
40
|
-
# @see row
|
|
41
|
-
def row=(v) Axlsx::validate_unsigned_int v; @row = v end
|
|
42
|
-
# @see rowOff
|
|
43
|
-
def rowOff=(v) Axlsx::validate_int v; @rowOff = v end
|
|
44
|
-
|
|
45
|
-
# shortcut to set the column, row position for this marker
|
|
46
|
-
# @param col the column for the marker, a Cell object or a string reference like "B7"
|
|
47
|
-
# or an Array.
|
|
48
|
-
# @param row the row of the marker. This is ignored if the col parameter is a Cell or
|
|
49
|
-
# String or Array.
|
|
50
|
-
def coord(col, row=0)
|
|
51
|
-
coordinates = parse_coord_args(col, row)
|
|
52
|
-
self.col = coordinates[0]
|
|
53
|
-
self.row = coordinates[1]
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
# Serializes the object
|
|
57
|
-
# @param [String] str
|
|
58
|
-
# @return [String]
|
|
59
|
-
def to_xml_string(str = '')
|
|
60
|
-
[:col, :colOff, :row, :rowOff].each do |k|
|
|
61
|
-
str << ('<xdr:' << k.to_s << '>' << self.send(k).to_s << '</xdr:' << k.to_s << '>')
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
private
|
|
65
|
-
|
|
66
|
-
# handles multiple inputs for setting the position of a marker
|
|
67
|
-
# @see Chart#start_at
|
|
68
|
-
def parse_coord_args(x, y=0)
|
|
69
|
-
if x.is_a?(String)
|
|
70
|
-
x, y = *Axlsx::name_to_indices(x)
|
|
71
|
-
end
|
|
72
|
-
if x.is_a?(Cell)
|
|
73
|
-
x, y = *x.pos
|
|
74
|
-
end
|
|
75
|
-
if x.is_a?(Array)
|
|
76
|
-
x, y = *x
|
|
77
|
-
end
|
|
78
|
-
[x, y]
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The Marker class defines a point in the worksheet that drawing anchors attach to.
|
|
4
|
+
# @note The recommended way to manage markers is Worksheet#add_chart Markers are created for a two cell anchor based on the :start and :end options.
|
|
5
|
+
# @see Worksheet#add_chart
|
|
6
|
+
class Marker
|
|
7
|
+
|
|
8
|
+
include Axlsx::OptionsParser
|
|
9
|
+
|
|
10
|
+
# Creates a new Marker object
|
|
11
|
+
# @option options [Integer] col
|
|
12
|
+
# @option options [Integer] colOff
|
|
13
|
+
# @option options [Integer] row
|
|
14
|
+
# @option options [Integer] rowOff
|
|
15
|
+
def initialize(options={})
|
|
16
|
+
@col, @colOff, @row, @rowOff = 0, 0, 0, 0
|
|
17
|
+
parse_options options
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# The column this marker anchors to
|
|
21
|
+
# @return [Integer]
|
|
22
|
+
attr_reader :col
|
|
23
|
+
|
|
24
|
+
# The offset distance from this marker's column
|
|
25
|
+
# @return [Integer]
|
|
26
|
+
attr_reader :colOff
|
|
27
|
+
|
|
28
|
+
# The row this marker anchors to
|
|
29
|
+
# @return [Integer]
|
|
30
|
+
attr_reader :row
|
|
31
|
+
|
|
32
|
+
# The offset distance from this marker's row
|
|
33
|
+
# @return [Integer]
|
|
34
|
+
attr_reader :rowOff
|
|
35
|
+
|
|
36
|
+
# @see col
|
|
37
|
+
def col=(v) Axlsx::validate_unsigned_int v; @col = v end
|
|
38
|
+
# @see colOff
|
|
39
|
+
def colOff=(v) Axlsx::validate_int v; @colOff = v end
|
|
40
|
+
# @see row
|
|
41
|
+
def row=(v) Axlsx::validate_unsigned_int v; @row = v end
|
|
42
|
+
# @see rowOff
|
|
43
|
+
def rowOff=(v) Axlsx::validate_int v; @rowOff = v end
|
|
44
|
+
|
|
45
|
+
# shortcut to set the column, row position for this marker
|
|
46
|
+
# @param col the column for the marker, a Cell object or a string reference like "B7"
|
|
47
|
+
# or an Array.
|
|
48
|
+
# @param row the row of the marker. This is ignored if the col parameter is a Cell or
|
|
49
|
+
# String or Array.
|
|
50
|
+
def coord(col, row=0)
|
|
51
|
+
coordinates = parse_coord_args(col, row)
|
|
52
|
+
self.col = coordinates[0]
|
|
53
|
+
self.row = coordinates[1]
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Serializes the object
|
|
57
|
+
# @param [String] str
|
|
58
|
+
# @return [String]
|
|
59
|
+
def to_xml_string(str = '')
|
|
60
|
+
[:col, :colOff, :row, :rowOff].each do |k|
|
|
61
|
+
str << ('<xdr:' << k.to_s << '>' << self.send(k).to_s << '</xdr:' << k.to_s << '>')
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
private
|
|
65
|
+
|
|
66
|
+
# handles multiple inputs for setting the position of a marker
|
|
67
|
+
# @see Chart#start_at
|
|
68
|
+
def parse_coord_args(x, y=0)
|
|
69
|
+
if x.is_a?(String)
|
|
70
|
+
x, y = *Axlsx::name_to_indices(x)
|
|
71
|
+
end
|
|
72
|
+
if x.is_a?(Cell)
|
|
73
|
+
x, y = *x.pos
|
|
74
|
+
end
|
|
75
|
+
if x.is_a?(Array)
|
|
76
|
+
x, y = *x
|
|
77
|
+
end
|
|
78
|
+
[x, y]
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
end
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
module Axlsx
|
|
3
|
-
|
|
4
|
-
#This class specifies data for a particular data point. It is used for both numCache and numLit object
|
|
5
|
-
class NumData
|
|
6
|
-
|
|
7
|
-
include Axlsx::OptionsParser
|
|
8
|
-
|
|
9
|
-
# creates a new NumVal object
|
|
10
|
-
# @option options [String] formatCode
|
|
11
|
-
# @option options [Array] :data
|
|
12
|
-
# @see StrData
|
|
13
|
-
def initialize(options={})
|
|
14
|
-
@format_code = "General"
|
|
15
|
-
@pt = SimpleTypedList.new NumVal
|
|
16
|
-
parse_options options
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# A string representing the format code to apply. For more information see see the SpreadsheetML numFmt element's (§18.8.30) formatCode attribute.
|
|
20
|
-
# @return [String]
|
|
21
|
-
attr_reader :format_code
|
|
22
|
-
|
|
23
|
-
# Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
|
|
24
|
-
# @param [Array] values An array of cells or values.
|
|
25
|
-
def data=(values=[])
|
|
26
|
-
@tag_name = values.first.is_a?(Cell) ? :numCache : :numLit
|
|
27
|
-
values.each do |value|
|
|
28
|
-
value = value.is_formula? ? 0 : value.value if value.is_a?(Cell)
|
|
29
|
-
@pt << NumVal.new(:v => value)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
# @see format_code
|
|
34
|
-
def format_code=(v='General')
|
|
35
|
-
Axlsx::validate_string(v)
|
|
36
|
-
@format_code = v
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# serialize the object
|
|
40
|
-
def to_xml_string(str = "")
|
|
41
|
-
str << ('<c:' << @tag_name.to_s << '>')
|
|
42
|
-
str << ('<c:formatCode>' << format_code.to_s << '</c:formatCode>')
|
|
43
|
-
str << ('<c:ptCount val="' << @pt.size.to_s << '"/>')
|
|
44
|
-
@pt.each_with_index do |num_val, index|
|
|
45
|
-
num_val.to_xml_string index, str
|
|
46
|
-
end
|
|
47
|
-
str << ('</c:' << @tag_name.to_s << '>')
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
end
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
#This class specifies data for a particular data point. It is used for both numCache and numLit object
|
|
5
|
+
class NumData
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
|
|
9
|
+
# creates a new NumVal object
|
|
10
|
+
# @option options [String] formatCode
|
|
11
|
+
# @option options [Array] :data
|
|
12
|
+
# @see StrData
|
|
13
|
+
def initialize(options={})
|
|
14
|
+
@format_code = "General"
|
|
15
|
+
@pt = SimpleTypedList.new NumVal
|
|
16
|
+
parse_options options
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# A string representing the format code to apply. For more information see see the SpreadsheetML numFmt element's (§18.8.30) formatCode attribute.
|
|
20
|
+
# @return [String]
|
|
21
|
+
attr_reader :format_code
|
|
22
|
+
|
|
23
|
+
# Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
|
|
24
|
+
# @param [Array] values An array of cells or values.
|
|
25
|
+
def data=(values=[])
|
|
26
|
+
@tag_name = values.first.is_a?(Cell) ? :numCache : :numLit
|
|
27
|
+
values.each do |value|
|
|
28
|
+
value = value.is_formula? ? 0 : value.value if value.is_a?(Cell)
|
|
29
|
+
@pt << NumVal.new(:v => value)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @see format_code
|
|
34
|
+
def format_code=(v='General')
|
|
35
|
+
Axlsx::validate_string(v)
|
|
36
|
+
@format_code = v
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# serialize the object
|
|
40
|
+
def to_xml_string(str = "")
|
|
41
|
+
str << ('<c:' << @tag_name.to_s << '>')
|
|
42
|
+
str << ('<c:formatCode>' << format_code.to_s << '</c:formatCode>')
|
|
43
|
+
str << ('<c:ptCount val="' << @pt.size.to_s << '"/>')
|
|
44
|
+
@pt.each_with_index do |num_val, index|
|
|
45
|
+
num_val.to_xml_string index, str
|
|
46
|
+
end
|
|
47
|
+
str << ('</c:' << @tag_name.to_s << '>')
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# A numeric data source for use by charts.
|
|
4
|
-
class NumDataSource
|
|
5
|
-
|
|
6
|
-
include Axlsx::OptionsParser
|
|
7
|
-
|
|
8
|
-
# creates a new NumDataSource object
|
|
9
|
-
# @option options [Array] data An array of Cells or Numeric objects
|
|
10
|
-
# @option options [Symbol] tag_name see tag_name
|
|
11
|
-
def initialize(options={})
|
|
12
|
-
# override these three in child classes
|
|
13
|
-
@data_type ||= NumData
|
|
14
|
-
@tag_name ||= :val
|
|
15
|
-
@ref_tag_name ||= :numRef
|
|
16
|
-
|
|
17
|
-
@f = nil
|
|
18
|
-
@data = @data_type.new(options)
|
|
19
|
-
if options[:data] && options[:data].first.is_a?(Cell)
|
|
20
|
-
@f = Axlsx::cell_range(options[:data])
|
|
21
|
-
end
|
|
22
|
-
parse_options options
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
# The tag name to use when serializing this data source.
|
|
27
|
-
# Only items defined in allowed_tag_names are allowed
|
|
28
|
-
# @return [Symbol]
|
|
29
|
-
attr_reader :tag_name
|
|
30
|
-
|
|
31
|
-
attr_reader :data
|
|
32
|
-
|
|
33
|
-
# allowed element tag names
|
|
34
|
-
# @return [Array]
|
|
35
|
-
def self.allowed_tag_names
|
|
36
|
-
[:yVal, :val, :bubbleSize]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# sets the tag name for this data source
|
|
40
|
-
# @param [Symbol] v One of the allowed_tag_names
|
|
41
|
-
def tag_name=(v)
|
|
42
|
-
Axlsx::RestrictionValidator.validate "#{self.class.name}.tag_name", self.class.allowed_tag_names, v
|
|
43
|
-
@tag_name = v
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# serialize the object
|
|
47
|
-
# @param [String] str
|
|
48
|
-
def to_xml_string(str="")
|
|
49
|
-
str << ('<c:' << tag_name.to_s << '>')
|
|
50
|
-
if @f
|
|
51
|
-
str << ('<c:' << @ref_tag_name.to_s << '>')
|
|
52
|
-
str << ('<c:f>' << @f.to_s << '</c:f>')
|
|
53
|
-
end
|
|
54
|
-
@data.to_xml_string str
|
|
55
|
-
if @f
|
|
56
|
-
str << ('</c:' << @ref_tag_name.to_s << '>')
|
|
57
|
-
end
|
|
58
|
-
str << ('</c:' << tag_name.to_s << '>')
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# A numeric data source for use by charts.
|
|
4
|
+
class NumDataSource
|
|
5
|
+
|
|
6
|
+
include Axlsx::OptionsParser
|
|
7
|
+
|
|
8
|
+
# creates a new NumDataSource object
|
|
9
|
+
# @option options [Array] data An array of Cells or Numeric objects
|
|
10
|
+
# @option options [Symbol] tag_name see tag_name
|
|
11
|
+
def initialize(options={})
|
|
12
|
+
# override these three in child classes
|
|
13
|
+
@data_type ||= NumData
|
|
14
|
+
@tag_name ||= :val
|
|
15
|
+
@ref_tag_name ||= :numRef
|
|
16
|
+
|
|
17
|
+
@f = nil
|
|
18
|
+
@data = @data_type.new(options)
|
|
19
|
+
if options[:data] && options[:data].first.is_a?(Cell)
|
|
20
|
+
@f = Axlsx::cell_range(options[:data])
|
|
21
|
+
end
|
|
22
|
+
parse_options options
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# The tag name to use when serializing this data source.
|
|
27
|
+
# Only items defined in allowed_tag_names are allowed
|
|
28
|
+
# @return [Symbol]
|
|
29
|
+
attr_reader :tag_name
|
|
30
|
+
|
|
31
|
+
attr_reader :data
|
|
32
|
+
|
|
33
|
+
# allowed element tag names
|
|
34
|
+
# @return [Array]
|
|
35
|
+
def self.allowed_tag_names
|
|
36
|
+
[:yVal, :val, :bubbleSize]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# sets the tag name for this data source
|
|
40
|
+
# @param [Symbol] v One of the allowed_tag_names
|
|
41
|
+
def tag_name=(v)
|
|
42
|
+
Axlsx::RestrictionValidator.validate "#{self.class.name}.tag_name", self.class.allowed_tag_names, v
|
|
43
|
+
@tag_name = v
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# serialize the object
|
|
47
|
+
# @param [String] str
|
|
48
|
+
def to_xml_string(str="")
|
|
49
|
+
str << ('<c:' << tag_name.to_s << '>')
|
|
50
|
+
if @f
|
|
51
|
+
str << ('<c:' << @ref_tag_name.to_s << '>')
|
|
52
|
+
str << ('<c:f>' << @f.to_s << '</c:f>')
|
|
53
|
+
end
|
|
54
|
+
@data.to_xml_string str
|
|
55
|
+
if @f
|
|
56
|
+
str << ('</c:' << @ref_tag_name.to_s << '>')
|
|
57
|
+
end
|
|
58
|
+
str << ('</c:' << tag_name.to_s << '>')
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|