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,129 +1,129 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
|
|
4
|
-
# A ScatterSeries defines the x and y position of data in the chart
|
|
5
|
-
# @note The recommended way to manage series is to use Chart#add_series
|
|
6
|
-
# @see Worksheet#add_chart
|
|
7
|
-
# @see Chart#add_series
|
|
8
|
-
# @see examples/example.rb
|
|
9
|
-
class ScatterSeries < Series
|
|
10
|
-
|
|
11
|
-
# The x data for this series.
|
|
12
|
-
# @return [NamedAxisData]
|
|
13
|
-
attr_reader :xData
|
|
14
|
-
|
|
15
|
-
# The y data for this series.
|
|
16
|
-
# @return [NamedAxisData]
|
|
17
|
-
attr_reader :yData
|
|
18
|
-
|
|
19
|
-
# The fill color for this series.
|
|
20
|
-
# Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
|
|
21
|
-
# @return [String]
|
|
22
|
-
attr_reader :color
|
|
23
|
-
|
|
24
|
-
# @return [String]
|
|
25
|
-
attr_reader :ln_width
|
|
26
|
-
|
|
27
|
-
# Line smoothing between data points
|
|
28
|
-
# @return [Boolean]
|
|
29
|
-
attr_reader :smooth
|
|
30
|
-
|
|
31
|
-
# Line markers presence
|
|
32
|
-
# @return [Boolean]
|
|
33
|
-
attr_reader :show_marker
|
|
34
|
-
|
|
35
|
-
# custom marker symbol
|
|
36
|
-
# @return [String]
|
|
37
|
-
attr_reader :marker_symbol
|
|
38
|
-
|
|
39
|
-
# Creates a new ScatterSeries
|
|
40
|
-
def initialize(chart, options={})
|
|
41
|
-
@xData, @yData = nil
|
|
42
|
-
if options[:smooth].nil?
|
|
43
|
-
# If caller hasn't specified smoothing or not, turn smoothing on or off based on scatter style
|
|
44
|
-
@smooth = [:smooth, :smoothMarker].include?(chart.scatter_style)
|
|
45
|
-
else
|
|
46
|
-
# Set smoothing according to the option provided
|
|
47
|
-
Axlsx::validate_boolean(options[:smooth])
|
|
48
|
-
@smooth = options[:smooth]
|
|
49
|
-
end
|
|
50
|
-
@ln_width = options[:ln_width] unless options[:ln_width].nil?
|
|
51
|
-
@show_marker = [:lineMarker, :marker, :smoothMarker].include?(chart.scatter_style)
|
|
52
|
-
@marker_symbol = :default
|
|
53
|
-
|
|
54
|
-
super(chart, options)
|
|
55
|
-
@xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
|
|
56
|
-
@yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# @see color
|
|
60
|
-
def color=(v)
|
|
61
|
-
@color = v
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# @see smooth
|
|
65
|
-
def smooth=(v)
|
|
66
|
-
Axlsx::validate_boolean(v)
|
|
67
|
-
@smooth = v
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# @see ln_width
|
|
71
|
-
def ln_width=(v)
|
|
72
|
-
@ln_width = v
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# @see marker_symbol
|
|
76
|
-
def marker_symbol=(v)
|
|
77
|
-
Axlsx::validate_marker_symbol(v)
|
|
78
|
-
@marker_symbol = v
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# Serializes the object
|
|
82
|
-
# @param [String] str
|
|
83
|
-
# @return [String]
|
|
84
|
-
def to_xml_string(str = '')
|
|
85
|
-
super(str) do
|
|
86
|
-
# needs to override the super color here to push in ln/and something else!
|
|
87
|
-
if color
|
|
88
|
-
str << '<c:spPr><a:solidFill>'
|
|
89
|
-
str << ('<a:srgbClr val="' << color << '"/>')
|
|
90
|
-
str << '</a:solidFill>'
|
|
91
|
-
str << '<a:ln><a:solidFill>'
|
|
92
|
-
str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
|
|
93
|
-
str << '</c:spPr>'
|
|
94
|
-
str << '<c:marker>'
|
|
95
|
-
str << '<c:spPr><a:solidFill>'
|
|
96
|
-
str << ('<a:srgbClr val="' << color << '"/>')
|
|
97
|
-
str << '</a:solidFill>'
|
|
98
|
-
str << '<a:ln><a:solidFill>'
|
|
99
|
-
str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
|
|
100
|
-
str << '</c:spPr>'
|
|
101
|
-
str << marker_symbol_xml
|
|
102
|
-
str << '</c:marker>'
|
|
103
|
-
else
|
|
104
|
-
str << "<c:marker>#{marker_symbol_xml}</c:marker>"
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
if ln_width
|
|
108
|
-
str << '<c:spPr>'
|
|
109
|
-
str << '<a:ln w="' << ln_width.to_s << '"/>'
|
|
110
|
-
str << '</c:spPr>'
|
|
111
|
-
end
|
|
112
|
-
@xData.to_xml_string(str) unless @xData.nil?
|
|
113
|
-
@yData.to_xml_string(str) unless @yData.nil?
|
|
114
|
-
str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
|
|
115
|
-
end
|
|
116
|
-
str
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
private
|
|
120
|
-
|
|
121
|
-
def marker_symbol_xml
|
|
122
|
-
if !@show_marker
|
|
123
|
-
'<c:symbol val="none"/>'
|
|
124
|
-
elsif @marker_symbol != :default
|
|
125
|
-
'<c:symbol val="' + @marker_symbol.to_s + '"/>'
|
|
126
|
-
end.to_s
|
|
127
|
-
end
|
|
128
|
-
end
|
|
129
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# A ScatterSeries defines the x and y position of data in the chart
|
|
5
|
+
# @note The recommended way to manage series is to use Chart#add_series
|
|
6
|
+
# @see Worksheet#add_chart
|
|
7
|
+
# @see Chart#add_series
|
|
8
|
+
# @see examples/example.rb
|
|
9
|
+
class ScatterSeries < Series
|
|
10
|
+
|
|
11
|
+
# The x data for this series.
|
|
12
|
+
# @return [NamedAxisData]
|
|
13
|
+
attr_reader :xData
|
|
14
|
+
|
|
15
|
+
# The y data for this series.
|
|
16
|
+
# @return [NamedAxisData]
|
|
17
|
+
attr_reader :yData
|
|
18
|
+
|
|
19
|
+
# The fill color for this series.
|
|
20
|
+
# Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
|
|
21
|
+
# @return [String]
|
|
22
|
+
attr_reader :color
|
|
23
|
+
|
|
24
|
+
# @return [String]
|
|
25
|
+
attr_reader :ln_width
|
|
26
|
+
|
|
27
|
+
# Line smoothing between data points
|
|
28
|
+
# @return [Boolean]
|
|
29
|
+
attr_reader :smooth
|
|
30
|
+
|
|
31
|
+
# Line markers presence
|
|
32
|
+
# @return [Boolean]
|
|
33
|
+
attr_reader :show_marker
|
|
34
|
+
|
|
35
|
+
# custom marker symbol
|
|
36
|
+
# @return [String]
|
|
37
|
+
attr_reader :marker_symbol
|
|
38
|
+
|
|
39
|
+
# Creates a new ScatterSeries
|
|
40
|
+
def initialize(chart, options={})
|
|
41
|
+
@xData, @yData = nil
|
|
42
|
+
if options[:smooth].nil?
|
|
43
|
+
# If caller hasn't specified smoothing or not, turn smoothing on or off based on scatter style
|
|
44
|
+
@smooth = [:smooth, :smoothMarker].include?(chart.scatter_style)
|
|
45
|
+
else
|
|
46
|
+
# Set smoothing according to the option provided
|
|
47
|
+
Axlsx::validate_boolean(options[:smooth])
|
|
48
|
+
@smooth = options[:smooth]
|
|
49
|
+
end
|
|
50
|
+
@ln_width = options[:ln_width] unless options[:ln_width].nil?
|
|
51
|
+
@show_marker = [:lineMarker, :marker, :smoothMarker].include?(chart.scatter_style)
|
|
52
|
+
@marker_symbol = :default
|
|
53
|
+
|
|
54
|
+
super(chart, options)
|
|
55
|
+
@xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
|
|
56
|
+
@yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @see color
|
|
60
|
+
def color=(v)
|
|
61
|
+
@color = v
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @see smooth
|
|
65
|
+
def smooth=(v)
|
|
66
|
+
Axlsx::validate_boolean(v)
|
|
67
|
+
@smooth = v
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# @see ln_width
|
|
71
|
+
def ln_width=(v)
|
|
72
|
+
@ln_width = v
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# @see marker_symbol
|
|
76
|
+
def marker_symbol=(v)
|
|
77
|
+
Axlsx::validate_marker_symbol(v)
|
|
78
|
+
@marker_symbol = v
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Serializes the object
|
|
82
|
+
# @param [String] str
|
|
83
|
+
# @return [String]
|
|
84
|
+
def to_xml_string(str = '')
|
|
85
|
+
super(str) do
|
|
86
|
+
# needs to override the super color here to push in ln/and something else!
|
|
87
|
+
if color
|
|
88
|
+
str << '<c:spPr><a:solidFill>'
|
|
89
|
+
str << ('<a:srgbClr val="' << color << '"/>')
|
|
90
|
+
str << '</a:solidFill>'
|
|
91
|
+
str << '<a:ln><a:solidFill>'
|
|
92
|
+
str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
|
|
93
|
+
str << '</c:spPr>'
|
|
94
|
+
str << '<c:marker>'
|
|
95
|
+
str << '<c:spPr><a:solidFill>'
|
|
96
|
+
str << ('<a:srgbClr val="' << color << '"/>')
|
|
97
|
+
str << '</a:solidFill>'
|
|
98
|
+
str << '<a:ln><a:solidFill>'
|
|
99
|
+
str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
|
|
100
|
+
str << '</c:spPr>'
|
|
101
|
+
str << marker_symbol_xml
|
|
102
|
+
str << '</c:marker>'
|
|
103
|
+
else
|
|
104
|
+
str << "<c:marker>#{marker_symbol_xml}</c:marker>"
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
if ln_width
|
|
108
|
+
str << '<c:spPr>'
|
|
109
|
+
str << '<a:ln w="' << ln_width.to_s << '"/>'
|
|
110
|
+
str << '</c:spPr>'
|
|
111
|
+
end
|
|
112
|
+
@xData.to_xml_string(str) unless @xData.nil?
|
|
113
|
+
@yData.to_xml_string(str) unless @yData.nil?
|
|
114
|
+
str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
|
|
115
|
+
end
|
|
116
|
+
str
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
private
|
|
120
|
+
|
|
121
|
+
def marker_symbol_xml
|
|
122
|
+
if !@show_marker
|
|
123
|
+
'<c:symbol val="none"/>'
|
|
124
|
+
elsif @marker_symbol != :default
|
|
125
|
+
'<c:symbol val="' + @marker_symbol.to_s + '"/>'
|
|
126
|
+
end.to_s
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
#A SerAxis object defines a series axis
|
|
4
|
-
class SerAxis < Axis
|
|
5
|
-
|
|
6
|
-
# The number of tick lables to skip between labels
|
|
7
|
-
# @return [Integer]
|
|
8
|
-
attr_reader :tick_lbl_skip
|
|
9
|
-
alias :tickLblSkip :tick_lbl_skip
|
|
10
|
-
|
|
11
|
-
# The number of tickmarks to be skipped before the next one is rendered.
|
|
12
|
-
# @return [Boolean]
|
|
13
|
-
attr_reader :tick_mark_skip
|
|
14
|
-
alias :tickMarkSkip :tick_mark_skip
|
|
15
|
-
|
|
16
|
-
# Creates a new SerAxis object
|
|
17
|
-
# @option options [Integer] tick_lbl_skip
|
|
18
|
-
# @option options [Integer] tick_mark_skip
|
|
19
|
-
def initialize(options={})
|
|
20
|
-
@tick_lbl_skip, @tick_mark_skip = 1, 1
|
|
21
|
-
super(options)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# @see tickLblSkip
|
|
25
|
-
def tick_lbl_skip=(v) Axlsx::validate_unsigned_int(v); @tick_lbl_skip = v; end
|
|
26
|
-
alias :tickLblSkip= :tick_lbl_skip=
|
|
27
|
-
|
|
28
|
-
# @see tickMarkSkip
|
|
29
|
-
def tick_mark_skip=(v) Axlsx::validate_unsigned_int(v); @tick_mark_skip = v; end
|
|
30
|
-
alias :tickMarkSkip= :tick_mark_skip=
|
|
31
|
-
|
|
32
|
-
# Serializes the object
|
|
33
|
-
# @param [String] str
|
|
34
|
-
# @return [String]
|
|
35
|
-
def to_xml_string(str = '')
|
|
36
|
-
str << '<c:serAx>'
|
|
37
|
-
super(str)
|
|
38
|
-
str << ('<c:tickLblSkip val="' << @tick_lbl_skip.to_s << '"/>') unless @tick_lbl_skip.nil?
|
|
39
|
-
str << ('<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>') unless @tick_mark_skip.nil?
|
|
40
|
-
str << '</c:serAx>'
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
#A SerAxis object defines a series axis
|
|
4
|
+
class SerAxis < Axis
|
|
5
|
+
|
|
6
|
+
# The number of tick lables to skip between labels
|
|
7
|
+
# @return [Integer]
|
|
8
|
+
attr_reader :tick_lbl_skip
|
|
9
|
+
alias :tickLblSkip :tick_lbl_skip
|
|
10
|
+
|
|
11
|
+
# The number of tickmarks to be skipped before the next one is rendered.
|
|
12
|
+
# @return [Boolean]
|
|
13
|
+
attr_reader :tick_mark_skip
|
|
14
|
+
alias :tickMarkSkip :tick_mark_skip
|
|
15
|
+
|
|
16
|
+
# Creates a new SerAxis object
|
|
17
|
+
# @option options [Integer] tick_lbl_skip
|
|
18
|
+
# @option options [Integer] tick_mark_skip
|
|
19
|
+
def initialize(options={})
|
|
20
|
+
@tick_lbl_skip, @tick_mark_skip = 1, 1
|
|
21
|
+
super(options)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @see tickLblSkip
|
|
25
|
+
def tick_lbl_skip=(v) Axlsx::validate_unsigned_int(v); @tick_lbl_skip = v; end
|
|
26
|
+
alias :tickLblSkip= :tick_lbl_skip=
|
|
27
|
+
|
|
28
|
+
# @see tickMarkSkip
|
|
29
|
+
def tick_mark_skip=(v) Axlsx::validate_unsigned_int(v); @tick_mark_skip = v; end
|
|
30
|
+
alias :tickMarkSkip= :tick_mark_skip=
|
|
31
|
+
|
|
32
|
+
# Serializes the object
|
|
33
|
+
# @param [String] str
|
|
34
|
+
# @return [String]
|
|
35
|
+
def to_xml_string(str = '')
|
|
36
|
+
str << '<c:serAx>'
|
|
37
|
+
super(str)
|
|
38
|
+
str << ('<c:tickLblSkip val="' << @tick_lbl_skip.to_s << '"/>') unless @tick_lbl_skip.nil?
|
|
39
|
+
str << ('<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>') unless @tick_mark_skip.nil?
|
|
40
|
+
str << '</c:serAx>'
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
end
|
data/lib/axlsx/drawing/series.rb
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# A Series defines the common series attributes and is the super class for all concrete series types.
|
|
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 Series
|
|
8
|
-
|
|
9
|
-
include Axlsx::OptionsParser
|
|
10
|
-
|
|
11
|
-
# The chart that owns this series
|
|
12
|
-
# @return [Chart]
|
|
13
|
-
attr_reader :chart
|
|
14
|
-
|
|
15
|
-
# The title of the series
|
|
16
|
-
# @return [SeriesTitle]
|
|
17
|
-
attr_reader :title
|
|
18
|
-
|
|
19
|
-
# Creates a new series
|
|
20
|
-
# @param [Chart] chart
|
|
21
|
-
# @option options [Integer] order
|
|
22
|
-
# @option options [String] title
|
|
23
|
-
def initialize(chart, options={})
|
|
24
|
-
@order = nil
|
|
25
|
-
self.chart = chart
|
|
26
|
-
@chart.series << self
|
|
27
|
-
parse_options options
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# The index of this series in the chart's series.
|
|
31
|
-
# @return [Integer]
|
|
32
|
-
def index
|
|
33
|
-
@chart.series.index(self)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# The order of this series in the chart's series. By default the order is the index of the series.
|
|
37
|
-
# @return [Integer]
|
|
38
|
-
def order
|
|
39
|
-
@order || index
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
# @see order
|
|
43
|
-
def order=(v) Axlsx::validate_unsigned_int(v); @order = v; end
|
|
44
|
-
|
|
45
|
-
# @see title
|
|
46
|
-
def title=(v)
|
|
47
|
-
v = SeriesTitle.new(v) if v.is_a?(String) || v.is_a?(Cell)
|
|
48
|
-
DataTypeValidator.validate "#{self.class}.title", SeriesTitle, v
|
|
49
|
-
@title = v
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
private
|
|
53
|
-
|
|
54
|
-
# assigns the chart for this series
|
|
55
|
-
def chart=(v) DataTypeValidator.validate "Series.chart", Chart, v; @chart = v; end
|
|
56
|
-
|
|
57
|
-
# Serializes the object
|
|
58
|
-
# @param [String] str
|
|
59
|
-
# @return [String]
|
|
60
|
-
def to_xml_string(str = '')
|
|
61
|
-
str << '<c:ser>'
|
|
62
|
-
str << ('<c:idx val="' << index.to_s << '"/>')
|
|
63
|
-
str << ('<c:order val="' << (order || index).to_s << '"/>')
|
|
64
|
-
title.to_xml_string(str) unless title.nil?
|
|
65
|
-
yield if block_given?
|
|
66
|
-
str << '</c:ser>'
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A Series defines the common series attributes and is the super class for all concrete series types.
|
|
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 Series
|
|
8
|
+
|
|
9
|
+
include Axlsx::OptionsParser
|
|
10
|
+
|
|
11
|
+
# The chart that owns this series
|
|
12
|
+
# @return [Chart]
|
|
13
|
+
attr_reader :chart
|
|
14
|
+
|
|
15
|
+
# The title of the series
|
|
16
|
+
# @return [SeriesTitle]
|
|
17
|
+
attr_reader :title
|
|
18
|
+
|
|
19
|
+
# Creates a new series
|
|
20
|
+
# @param [Chart] chart
|
|
21
|
+
# @option options [Integer] order
|
|
22
|
+
# @option options [String] title
|
|
23
|
+
def initialize(chart, options={})
|
|
24
|
+
@order = nil
|
|
25
|
+
self.chart = chart
|
|
26
|
+
@chart.series << self
|
|
27
|
+
parse_options options
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# The index of this series in the chart's series.
|
|
31
|
+
# @return [Integer]
|
|
32
|
+
def index
|
|
33
|
+
@chart.series.index(self)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# The order of this series in the chart's series. By default the order is the index of the series.
|
|
37
|
+
# @return [Integer]
|
|
38
|
+
def order
|
|
39
|
+
@order || index
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @see order
|
|
43
|
+
def order=(v) Axlsx::validate_unsigned_int(v); @order = v; end
|
|
44
|
+
|
|
45
|
+
# @see title
|
|
46
|
+
def title=(v)
|
|
47
|
+
v = SeriesTitle.new(v) if v.is_a?(String) || v.is_a?(Cell)
|
|
48
|
+
DataTypeValidator.validate "#{self.class}.title", SeriesTitle, v
|
|
49
|
+
@title = v
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
|
|
54
|
+
# assigns the chart for this series
|
|
55
|
+
def chart=(v) DataTypeValidator.validate "Series.chart", Chart, v; @chart = v; end
|
|
56
|
+
|
|
57
|
+
# Serializes the object
|
|
58
|
+
# @param [String] str
|
|
59
|
+
# @return [String]
|
|
60
|
+
def to_xml_string(str = '')
|
|
61
|
+
str << '<c:ser>'
|
|
62
|
+
str << ('<c:idx val="' << index.to_s << '"/>')
|
|
63
|
+
str << ('<c:order val="' << (order || index).to_s << '"/>')
|
|
64
|
+
title.to_xml_string(str) unless title.nil?
|
|
65
|
+
yield if block_given?
|
|
66
|
+
str << '</c:ser>'
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# A series title is a Title with a slightly different serialization than chart titles.
|
|
4
|
-
class SeriesTitle < Title
|
|
5
|
-
|
|
6
|
-
# Serializes the object
|
|
7
|
-
# @param [String] str
|
|
8
|
-
# @return [String]
|
|
9
|
-
def to_xml_string(str = '')
|
|
10
|
-
clean_value = Axlsx::trust_input ? @text.to_s : ::CGI.escapeHTML(Axlsx::sanitize(@text.to_s))
|
|
11
|
-
|
|
12
|
-
str << '<c:tx>'
|
|
13
|
-
str << '<c:strRef>'
|
|
14
|
-
str << ('<c:f>' << Axlsx::cell_range([@cell]) << '</c:f>')
|
|
15
|
-
str << '<c:strCache>'
|
|
16
|
-
str << '<c:ptCount val="1"/>'
|
|
17
|
-
str << '<c:pt idx="0">'
|
|
18
|
-
str << ('<c:v>' << clean_value << '</c:v>')
|
|
19
|
-
str << '</c:pt>'
|
|
20
|
-
str << '</c:strCache>'
|
|
21
|
-
str << '</c:strRef>'
|
|
22
|
-
str << '</c:tx>'
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A series title is a Title with a slightly different serialization than chart titles.
|
|
4
|
+
class SeriesTitle < Title
|
|
5
|
+
|
|
6
|
+
# Serializes the object
|
|
7
|
+
# @param [String] str
|
|
8
|
+
# @return [String]
|
|
9
|
+
def to_xml_string(str = '')
|
|
10
|
+
clean_value = Axlsx::trust_input ? @text.to_s : ::CGI.escapeHTML(Axlsx::sanitize(@text.to_s))
|
|
11
|
+
|
|
12
|
+
str << '<c:tx>'
|
|
13
|
+
str << '<c:strRef>'
|
|
14
|
+
str << ('<c:f>' << Axlsx::cell_range([@cell]) << '</c:f>')
|
|
15
|
+
str << '<c:strCache>'
|
|
16
|
+
str << '<c:ptCount val="1"/>'
|
|
17
|
+
str << '<c:pt idx="0">'
|
|
18
|
+
str << ('<c:v>' << clean_value << '</c:v>')
|
|
19
|
+
str << '</c:pt>'
|
|
20
|
+
str << '</c:strCache>'
|
|
21
|
+
str << '</c:strRef>'
|
|
22
|
+
str << '</c:tx>'
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
module Axlsx
|
|
3
|
-
|
|
4
|
-
#This specifies the last string data used for a chart. (e.g. strLit and strCache)
|
|
5
|
-
# This class is extended for NumData to include the formatCode attribute required for numLit and numCache
|
|
6
|
-
class StrData
|
|
7
|
-
|
|
8
|
-
include Axlsx::OptionsParser
|
|
9
|
-
|
|
10
|
-
# creates a new StrVal object
|
|
11
|
-
# @option options [Array] :data
|
|
12
|
-
# @option options [String] :tag_name
|
|
13
|
-
def initialize(options={})
|
|
14
|
-
@tag_prefix = :str
|
|
15
|
-
@type = StrVal
|
|
16
|
-
@pt = SimpleTypedList.new(@type)
|
|
17
|
-
parse_options options
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
|
|
21
|
-
# @param [Array] values An array of cells or values.
|
|
22
|
-
def data=(values=[])
|
|
23
|
-
@tag_name = values.first.is_a?(Cell) ? :strCache : :strLit
|
|
24
|
-
values.each do |value|
|
|
25
|
-
v = value.is_a?(Cell) ? value.value : value
|
|
26
|
-
@pt << @type.new(:v => v)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# serialize the object
|
|
31
|
-
def to_xml_string(str = "")
|
|
32
|
-
str << ('<c:' << @tag_name.to_s << '>')
|
|
33
|
-
str << ('<c:ptCount val="' << @pt.size.to_s << '"/>')
|
|
34
|
-
@pt.each_with_index do |value, index|
|
|
35
|
-
value.to_xml_string index, str
|
|
36
|
-
end
|
|
37
|
-
str << ('</c:' << @tag_name.to_s << '>')
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
end
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
#This specifies the last string data used for a chart. (e.g. strLit and strCache)
|
|
5
|
+
# This class is extended for NumData to include the formatCode attribute required for numLit and numCache
|
|
6
|
+
class StrData
|
|
7
|
+
|
|
8
|
+
include Axlsx::OptionsParser
|
|
9
|
+
|
|
10
|
+
# creates a new StrVal object
|
|
11
|
+
# @option options [Array] :data
|
|
12
|
+
# @option options [String] :tag_name
|
|
13
|
+
def initialize(options={})
|
|
14
|
+
@tag_prefix = :str
|
|
15
|
+
@type = StrVal
|
|
16
|
+
@pt = SimpleTypedList.new(@type)
|
|
17
|
+
parse_options options
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
|
|
21
|
+
# @param [Array] values An array of cells or values.
|
|
22
|
+
def data=(values=[])
|
|
23
|
+
@tag_name = values.first.is_a?(Cell) ? :strCache : :strLit
|
|
24
|
+
values.each do |value|
|
|
25
|
+
v = value.is_a?(Cell) ? value.value : value
|
|
26
|
+
@pt << @type.new(:v => v)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# serialize the object
|
|
31
|
+
def to_xml_string(str = "")
|
|
32
|
+
str << ('<c:' << @tag_name.to_s << '>')
|
|
33
|
+
str << ('<c:ptCount val="' << @pt.size.to_s << '"/>')
|
|
34
|
+
@pt.each_with_index do |value, index|
|
|
35
|
+
value.to_xml_string index, str
|
|
36
|
+
end
|
|
37
|
+
str << ('</c:' << @tag_name.to_s << '>')
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|