caxlsx 3.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +9 -9
- data/.yardopts_guide +18 -18
- data/CHANGELOG.md +354 -343
- data/LICENSE +21 -21
- data/README.md +168 -172
- 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 +276 -276
- data/lib/axlsx/drawing/d_lbls.rb +90 -90
- data/lib/axlsx/drawing/drawing.rb +167 -167
- data/lib/axlsx/drawing/graphic_frame.rb +54 -54
- data/lib/axlsx/drawing/hyperlink.rb +100 -100
- data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
- data/lib/axlsx/drawing/line_chart.rb +99 -99
- data/lib/axlsx/drawing/line_series.rb +110 -110
- data/lib/axlsx/drawing/marker.rb +84 -84
- data/lib/axlsx/drawing/num_data.rb +52 -52
- data/lib/axlsx/drawing/num_data_source.rb +62 -62
- data/lib/axlsx/drawing/num_val.rb +34 -34
- data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
- data/lib/axlsx/drawing/pic.rb +211 -211
- data/lib/axlsx/drawing/picture_locking.rb +42 -42
- data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
- data/lib/axlsx/drawing/pie_series.rb +74 -74
- data/lib/axlsx/drawing/scaling.rb +60 -60
- data/lib/axlsx/drawing/scatter_chart.rb +74 -74
- data/lib/axlsx/drawing/scatter_series.rb +129 -98
- data/lib/axlsx/drawing/ser_axis.rb +45 -45
- data/lib/axlsx/drawing/series.rb +69 -69
- data/lib/axlsx/drawing/series_title.rb +25 -25
- data/lib/axlsx/drawing/str_data.rb +42 -42
- data/lib/axlsx/drawing/str_val.rb +34 -34
- data/lib/axlsx/drawing/title.rb +97 -97
- data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
- data/lib/axlsx/drawing/val_axis.rb +37 -37
- data/lib/axlsx/drawing/view_3D.rb +115 -115
- data/lib/axlsx/drawing/vml_drawing.rb +42 -42
- data/lib/axlsx/drawing/vml_shape.rb +66 -66
- data/lib/axlsx/package.rb +388 -388
- data/lib/axlsx/rels/relationship.rb +130 -130
- data/lib/axlsx/rels/relationships.rb +32 -32
- data/lib/axlsx/stylesheet/border.rb +73 -71
- data/lib/axlsx/stylesheet/border_pr.rb +71 -71
- data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
- data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
- data/lib/axlsx/stylesheet/cell_style.rb +72 -72
- data/lib/axlsx/stylesheet/color.rb +76 -76
- data/lib/axlsx/stylesheet/dxf.rb +79 -79
- data/lib/axlsx/stylesheet/fill.rb +35 -35
- data/lib/axlsx/stylesheet/font.rb +156 -156
- data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
- data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
- data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
- data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
- data/lib/axlsx/stylesheet/styles.rb +494 -420
- data/lib/axlsx/stylesheet/table_style.rb +54 -54
- data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
- data/lib/axlsx/stylesheet/table_styles.rb +46 -46
- data/lib/axlsx/stylesheet/xf.rb +147 -147
- data/lib/axlsx/util/accessors.rb +64 -64
- data/lib/axlsx/util/constants.rb +410 -401
- data/lib/axlsx/util/mime_type_utils.rb +11 -11
- data/lib/axlsx/util/options_parser.rb +16 -16
- data/lib/axlsx/util/serialized_attributes.rb +89 -89
- data/lib/axlsx/util/simple_typed_list.rb +179 -179
- data/lib/axlsx/util/storage.rb +146 -146
- data/lib/axlsx/util/validators.rb +312 -312
- data/lib/axlsx/util/zip_command.rb +73 -73
- data/lib/axlsx/version.rb +5 -5
- data/lib/axlsx/workbook/defined_name.rb +128 -128
- data/lib/axlsx/workbook/defined_names.rb +21 -21
- data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
- data/lib/axlsx/workbook/workbook.rb +395 -370
- data/lib/axlsx/workbook/workbook_view.rb +80 -80
- data/lib/axlsx/workbook/workbook_views.rb +22 -22
- data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
- data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
- data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
- data/lib/axlsx/workbook/worksheet/break.rb +35 -35
- data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
- data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
- data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
- data/lib/axlsx/workbook/worksheet/col.rb +145 -145
- data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
- data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
- data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
- data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
- data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
- data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
- data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
- data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
- data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
- data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
- data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
- data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
- data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
- data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
- data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -294
- 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 +786 -768
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
- data/lib/axlsx.rb +185 -171
- data/lib/caxlsx.rb +2 -2
- data/lib/schema/dc.xsd +118 -118
- data/lib/schema/dcmitype.xsd +51 -51
- data/lib/schema/dcterms.xsd +331 -331
- data/lib/schema/dml-chartDrawing.xsd +146 -146
- data/lib/schema/dml-compatibility.xsd +14 -14
- data/lib/schema/dml-lockedCanvas.xsd +11 -11
- data/lib/schema/dml-main.xsd +3048 -3048
- data/lib/schema/dml-picture.xsd +23 -23
- data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
- data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
- data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
- data/lib/schema/shared-bibliography.xsd +144 -144
- data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
- data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
- data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
- data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
- data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
- data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
- data/lib/schema/shared-relationshipReference.xsd +25 -25
- data/lib/schema/vml-main.xsd +569 -569
- data/lib/schema/vml-officeDrawing.xsd +509 -509
- data/lib/schema/vml-presentationDrawing.xsd +12 -12
- data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
- data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
- data/lib/schema/xml.xsd +116 -116
- data/test/benchmark.rb +72 -72
- data/test/content_type/tc_content_type.rb +76 -76
- data/test/content_type/tc_default.rb +16 -16
- data/test/content_type/tc_override.rb +14 -14
- data/test/doc_props/tc_app.rb +43 -43
- data/test/doc_props/tc_core.rb +42 -42
- data/test/drawing/tc_area_chart.rb +39 -39
- data/test/drawing/tc_area_series.rb +71 -71
- data/test/drawing/tc_axes.rb +7 -7
- data/test/drawing/tc_axis.rb +112 -112
- data/test/drawing/tc_bar_3D_chart.rb +86 -86
- data/test/drawing/tc_bar_chart.rb +86 -86
- data/test/drawing/tc_bar_series.rb +46 -46
- data/test/drawing/tc_bubble_chart.rb +44 -44
- data/test/drawing/tc_bubble_series.rb +21 -21
- data/test/drawing/tc_cat_axis.rb +31 -31
- data/test/drawing/tc_cat_axis_data.rb +27 -27
- data/test/drawing/tc_chart.rb +123 -123
- data/test/drawing/tc_d_lbls.rb +57 -57
- data/test/drawing/tc_data_source.rb +23 -23
- data/test/drawing/tc_drawing.rb +80 -80
- data/test/drawing/tc_graphic_frame.rb +27 -27
- data/test/drawing/tc_hyperlink.rb +64 -64
- data/test/drawing/tc_line_3d_chart.rb +47 -47
- data/test/drawing/tc_line_chart.rb +39 -39
- data/test/drawing/tc_line_series.rb +71 -71
- data/test/drawing/tc_marker.rb +44 -44
- data/test/drawing/tc_named_axis_data.rb +27 -27
- data/test/drawing/tc_num_data.rb +31 -31
- data/test/drawing/tc_num_val.rb +29 -29
- data/test/drawing/tc_one_cell_anchor.rb +66 -66
- data/test/drawing/tc_pic.rb +103 -103
- data/test/drawing/tc_picture_locking.rb +72 -72
- data/test/drawing/tc_pie_3D_chart.rb +28 -28
- data/test/drawing/tc_pie_series.rb +33 -33
- data/test/drawing/tc_scaling.rb +36 -36
- data/test/drawing/tc_scatter_chart.rb +48 -48
- data/test/drawing/tc_scatter_series.rb +74 -56
- data/test/drawing/tc_ser_axis.rb +31 -31
- data/test/drawing/tc_series.rb +23 -23
- data/test/drawing/tc_series_title.rb +54 -54
- data/test/drawing/tc_str_data.rb +18 -18
- data/test/drawing/tc_str_val.rb +30 -30
- data/test/drawing/tc_title.rb +70 -70
- data/test/drawing/tc_two_cell_anchor.rb +36 -36
- data/test/drawing/tc_val_axis.rb +24 -24
- data/test/drawing/tc_view_3D.rb +54 -54
- data/test/drawing/tc_vml_drawing.rb +25 -25
- data/test/drawing/tc_vml_shape.rb +106 -106
- data/test/profile.rb +24 -24
- data/test/rels/tc_relationship.rb +52 -52
- data/test/rels/tc_relationships.rb +37 -37
- data/test/stylesheet/tc_border.rb +37 -37
- data/test/stylesheet/tc_border_pr.rb +32 -32
- data/test/stylesheet/tc_cell_alignment.rb +81 -81
- data/test/stylesheet/tc_cell_protection.rb +29 -29
- data/test/stylesheet/tc_cell_style.rb +57 -57
- data/test/stylesheet/tc_color.rb +43 -43
- data/test/stylesheet/tc_dxf.rb +81 -81
- data/test/stylesheet/tc_fill.rb +18 -18
- data/test/stylesheet/tc_font.rb +133 -133
- data/test/stylesheet/tc_gradient_fill.rb +72 -72
- data/test/stylesheet/tc_gradient_stop.rb +31 -31
- data/test/stylesheet/tc_num_fmt.rb +30 -30
- data/test/stylesheet/tc_pattern_fill.rb +43 -43
- data/test/stylesheet/tc_styles.rb +309 -261
- data/test/stylesheet/tc_table_style.rb +44 -44
- data/test/stylesheet/tc_table_style_element.rb +45 -45
- data/test/stylesheet/tc_table_styles.rb +29 -29
- data/test/stylesheet/tc_xf.rb +120 -120
- data/test/tc_axlsx.rb +109 -109
- data/test/tc_helper.rb +10 -10
- data/test/tc_package.rb +317 -314
- data/test/util/tc_mime_type_utils.rb +13 -13
- data/test/util/tc_serialized_attributes.rb +19 -19
- data/test/util/tc_simple_typed_list.rb +77 -77
- data/test/util/tc_validators.rb +210 -210
- data/test/workbook/tc_defined_name.rb +49 -49
- data/test/workbook/tc_shared_strings_table.rb +59 -59
- data/test/workbook/tc_workbook.rb +165 -160
- data/test/workbook/tc_workbook_view.rb +50 -50
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
- data/test/workbook/worksheet/tc_break.rb +49 -49
- data/test/workbook/worksheet/tc_cell.rb +465 -453
- data/test/workbook/worksheet/tc_cfvo.rb +31 -31
- data/test/workbook/worksheet/tc_col.rb +93 -93
- data/test/workbook/worksheet/tc_color_scale.rb +58 -58
- data/test/workbook/worksheet/tc_comment.rb +72 -72
- data/test/workbook/worksheet/tc_comments.rb +57 -57
- data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
- data/test/workbook/worksheet/tc_data_bar.rb +46 -46
- data/test/workbook/worksheet/tc_data_validation.rb +265 -265
- data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
- data/test/workbook/worksheet/tc_header_footer.rb +151 -151
- data/test/workbook/worksheet/tc_icon_set.rb +45 -45
- data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
- data/test/workbook/worksheet/tc_page_margins.rb +97 -97
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
- data/test/workbook/worksheet/tc_page_setup.rb +143 -143
- data/test/workbook/worksheet/tc_pane.rb +54 -54
- data/test/workbook/worksheet/tc_pivot_table.rb +180 -143
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -62
- data/test/workbook/worksheet/tc_print_options.rb +72 -72
- data/test/workbook/worksheet/tc_protected_range.rb +17 -17
- data/test/workbook/worksheet/tc_rich_text.rb +44 -44
- data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
- data/test/workbook/worksheet/tc_row.rb +160 -160
- data/test/workbook/worksheet/tc_selection.rb +55 -55
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
- data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
- data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
- data/test/workbook/worksheet/tc_table.rb +77 -77
- data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
- data/test/workbook/worksheet/tc_worksheet.rb +632 -601
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
- metadata +101 -101
data/lib/axlsx/drawing/axis.rb
CHANGED
@@ -1,190 +1,190 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
module Axlsx
|
3
|
-
|
4
|
-
# the access class defines common properties and values for a chart axis.
|
5
|
-
class Axis
|
6
|
-
|
7
|
-
include Axlsx::OptionsParser
|
8
|
-
|
9
|
-
# Creates an Axis object
|
10
|
-
# @option options [Axis] cross_axis the perpendicular axis
|
11
|
-
# @option options [Symbol] ax_pos
|
12
|
-
# @option options [Symbol] crosses
|
13
|
-
# @option options [Symbol] tick_lbl_pos
|
14
|
-
# @raise [ArgumentError] If axi_id or cross_ax are not unsigned integers
|
15
|
-
def initialize(options={})
|
16
|
-
@id = rand(8 ** 8)
|
17
|
-
@format_code = "General"
|
18
|
-
@delete = @label_rotation = 0
|
19
|
-
@scaling = Scaling.new(:orientation=>:minMax)
|
20
|
-
@title = @color = nil
|
21
|
-
self.ax_pos = :b
|
22
|
-
self.tick_lbl_pos = :nextTo
|
23
|
-
self.format_code = "General"
|
24
|
-
self.crosses = :autoZero
|
25
|
-
self.gridlines = true
|
26
|
-
parse_options options
|
27
|
-
end
|
28
|
-
|
29
|
-
# the fill color to use in the axis shape properties. This should be a 6 character long hex string
|
30
|
-
# e.g. FF0000 for red
|
31
|
-
# @return [String]
|
32
|
-
attr_reader :color
|
33
|
-
|
34
|
-
# the id of the axis.
|
35
|
-
# @return [Integer]
|
36
|
-
attr_reader :id
|
37
|
-
alias :axID :id
|
38
|
-
|
39
|
-
# The perpendicular axis
|
40
|
-
# @return [Integer]
|
41
|
-
attr_reader :cross_axis
|
42
|
-
alias :crossAx :cross_axis
|
43
|
-
|
44
|
-
# The scaling of the axis
|
45
|
-
# @see Scaling
|
46
|
-
# @return [Scaling]
|
47
|
-
attr_reader :scaling
|
48
|
-
|
49
|
-
# The position of the axis
|
50
|
-
# must be one of [:l, :r, :t, :b]
|
51
|
-
# @return [Symbol]
|
52
|
-
attr_reader :ax_pos
|
53
|
-
alias :axPos :ax_pos
|
54
|
-
|
55
|
-
# the position of the tick labels
|
56
|
-
# must be one of [:nextTo, :high, :low]
|
57
|
-
# @return [Symbol]
|
58
|
-
attr_reader :tick_lbl_pos
|
59
|
-
alias :tickLblPos :tick_lbl_pos
|
60
|
-
|
61
|
-
# The number format format code for this axis
|
62
|
-
# default :General
|
63
|
-
# @return [String]
|
64
|
-
attr_reader :format_code
|
65
|
-
|
66
|
-
# specifies how the perpendicular axis is crossed
|
67
|
-
# must be one of [:autoZero, :min, :max]
|
68
|
-
# @return [Symbol]
|
69
|
-
attr_reader :crosses
|
70
|
-
|
71
|
-
# specifies how the degree of label rotation
|
72
|
-
# @return [Integer]
|
73
|
-
attr_reader :label_rotation
|
74
|
-
|
75
|
-
# specifies if gridlines should be shown in the chart
|
76
|
-
# @return [Boolean]
|
77
|
-
attr_reader :gridlines
|
78
|
-
|
79
|
-
# specifies if gridlines should be shown in the chart
|
80
|
-
# @return [Boolean]
|
81
|
-
attr_reader :delete
|
82
|
-
|
83
|
-
# the title for the axis. This can be a cell or a fixed string.
|
84
|
-
attr_reader :title
|
85
|
-
|
86
|
-
# The color for this axis. This value is used when rendering the axis line in the chart.
|
87
|
-
# colors should be in 6 character rbg format
|
88
|
-
# @return [String] the rbg color assinged.
|
89
|
-
# @see color
|
90
|
-
def color=(color_rgb)
|
91
|
-
@color = color_rgb
|
92
|
-
end
|
93
|
-
|
94
|
-
# The crossing axis for this axis
|
95
|
-
# @param [Axis] axis
|
96
|
-
def cross_axis=(axis)
|
97
|
-
DataTypeValidator.validate "#{self.class}.cross_axis", [Axis], axis
|
98
|
-
@cross_axis = axis
|
99
|
-
end
|
100
|
-
|
101
|
-
# The position of the axis
|
102
|
-
# must be one of [:l, :r, :t, :b]
|
103
|
-
def ax_pos=(v) RestrictionValidator.validate "#{self.class}.ax_pos", [:l, :r, :b, :t], v; @ax_pos = v; end
|
104
|
-
alias :axPos= :ax_pos=
|
105
|
-
|
106
|
-
# the position of the tick labels
|
107
|
-
# must be one of [:nextTo, :high, :low1]
|
108
|
-
def tick_lbl_pos=(v) RestrictionValidator.validate "#{self.class}.tick_lbl_pos", [:nextTo, :high, :low, :none], v; @tick_lbl_pos = v; end
|
109
|
-
alias :tickLblPos= :tick_lbl_pos=
|
110
|
-
|
111
|
-
# The number format format code for this axis
|
112
|
-
# default :General
|
113
|
-
def format_code=(v) Axlsx::validate_string(v); @format_code = v; end
|
114
|
-
|
115
|
-
# Specify if gridlines should be shown for this axis
|
116
|
-
# default true
|
117
|
-
def gridlines=(v) Axlsx::validate_boolean(v); @gridlines = v; end
|
118
|
-
|
119
|
-
# Specify if axis should be removed from the chart
|
120
|
-
# default false
|
121
|
-
def delete=(v) Axlsx::validate_boolean(v); @delete = v; end
|
122
|
-
|
123
|
-
# specifies how the perpendicular axis is crossed
|
124
|
-
# must be one of [:autoZero, :min, :max]
|
125
|
-
def crosses=(v) RestrictionValidator.validate "#{self.class}.crosses", [:autoZero, :min, :max], v; @crosses = v; end
|
126
|
-
|
127
|
-
# Specify the degree of label rotation to apply to labels
|
128
|
-
# default true
|
129
|
-
def label_rotation=(v)
|
130
|
-
Axlsx::validate_int(v)
|
131
|
-
adjusted = v.to_i * 60000
|
132
|
-
Axlsx::validate_angle(adjusted)
|
133
|
-
@label_rotation = adjusted
|
134
|
-
end
|
135
|
-
|
136
|
-
# The title object for the chart.
|
137
|
-
# @param [String, Cell] v
|
138
|
-
# @return [Title]
|
139
|
-
def title=(v)
|
140
|
-
DataTypeValidator.validate "#{self.class}.title", [String, Cell], v
|
141
|
-
@title ||= Title.new
|
142
|
-
if v.is_a?(String)
|
143
|
-
@title.text = v
|
144
|
-
elsif v.is_a?(Cell)
|
145
|
-
@title.cell = v
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
# Serializes the object
|
150
|
-
# @param [String] str
|
151
|
-
# @return [String]
|
152
|
-
def to_xml_string(str = '')
|
153
|
-
str << ('<c:axId val="' << @id.to_s << '"/>')
|
154
|
-
@scaling.to_xml_string str
|
155
|
-
str << ('<c:delete val="' << @delete.to_s << '"/>')
|
156
|
-
str << ('<c:axPos val="' << @ax_pos.to_s << '"/>')
|
157
|
-
str << '<c:majorGridlines>'
|
158
|
-
# TODO shape properties need to be extracted into a class
|
159
|
-
if gridlines == false
|
160
|
-
str << '<c:spPr>'
|
161
|
-
str << '<a:ln>'
|
162
|
-
str << '<a:noFill/>'
|
163
|
-
str << '</a:ln>'
|
164
|
-
str << '</c:spPr>'
|
165
|
-
end
|
166
|
-
str << '</c:majorGridlines>'
|
167
|
-
@title.to_xml_string(str) unless @title == nil
|
168
|
-
# Need to set sourceLinked to 0 if we're setting a format code on this row
|
169
|
-
# otherwise it will never take, as it will always prefer the 'General' formatting
|
170
|
-
# of the cells themselves
|
171
|
-
str << ('<c:numFmt formatCode="' << @format_code << '" sourceLinked="' << (@format_code.eql?('General') ? '1' : '0') << '"/>')
|
172
|
-
str << '<c:majorTickMark val="none"/>'
|
173
|
-
str << '<c:minorTickMark val="none"/>'
|
174
|
-
str << ('<c:tickLblPos val="' << @tick_lbl_pos.to_s << '"/>')
|
175
|
-
# TODO - this is also being used for series colors
|
176
|
-
# time to extract this into a class spPr - Shape Properties
|
177
|
-
if @color
|
178
|
-
str << '<c:spPr><a:ln><a:solidFill>'
|
179
|
-
str << ('<a:srgbClr val="' << @color << '"/>')
|
180
|
-
str << '</a:solidFill></a:ln></c:spPr>'
|
181
|
-
end
|
182
|
-
# some potential value in implementing this in full. Very detailed!
|
183
|
-
str << ('<c:txPr><a:bodyPr rot="' << @label_rotation.to_s << '"/><a:lstStyle/><a:p><a:pPr><a:defRPr/></a:pPr><a:endParaRPr/></a:p></c:txPr>')
|
184
|
-
str << ('<c:crossAx val="' << @cross_axis.id.to_s << '"/>')
|
185
|
-
str << ('<c:crosses val="' << @crosses.to_s << '"/>')
|
186
|
-
end
|
187
|
-
|
188
|
-
end
|
189
|
-
|
190
|
-
end
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
|
4
|
+
# the access class defines common properties and values for a chart axis.
|
5
|
+
class Axis
|
6
|
+
|
7
|
+
include Axlsx::OptionsParser
|
8
|
+
|
9
|
+
# Creates an Axis object
|
10
|
+
# @option options [Axis] cross_axis the perpendicular axis
|
11
|
+
# @option options [Symbol] ax_pos
|
12
|
+
# @option options [Symbol] crosses
|
13
|
+
# @option options [Symbol] tick_lbl_pos
|
14
|
+
# @raise [ArgumentError] If axi_id or cross_ax are not unsigned integers
|
15
|
+
def initialize(options={})
|
16
|
+
@id = rand(8 ** 8)
|
17
|
+
@format_code = "General"
|
18
|
+
@delete = @label_rotation = 0
|
19
|
+
@scaling = Scaling.new(:orientation=>:minMax)
|
20
|
+
@title = @color = nil
|
21
|
+
self.ax_pos = :b
|
22
|
+
self.tick_lbl_pos = :nextTo
|
23
|
+
self.format_code = "General"
|
24
|
+
self.crosses = :autoZero
|
25
|
+
self.gridlines = true
|
26
|
+
parse_options options
|
27
|
+
end
|
28
|
+
|
29
|
+
# the fill color to use in the axis shape properties. This should be a 6 character long hex string
|
30
|
+
# e.g. FF0000 for red
|
31
|
+
# @return [String]
|
32
|
+
attr_reader :color
|
33
|
+
|
34
|
+
# the id of the axis.
|
35
|
+
# @return [Integer]
|
36
|
+
attr_reader :id
|
37
|
+
alias :axID :id
|
38
|
+
|
39
|
+
# The perpendicular axis
|
40
|
+
# @return [Integer]
|
41
|
+
attr_reader :cross_axis
|
42
|
+
alias :crossAx :cross_axis
|
43
|
+
|
44
|
+
# The scaling of the axis
|
45
|
+
# @see Scaling
|
46
|
+
# @return [Scaling]
|
47
|
+
attr_reader :scaling
|
48
|
+
|
49
|
+
# The position of the axis
|
50
|
+
# must be one of [:l, :r, :t, :b]
|
51
|
+
# @return [Symbol]
|
52
|
+
attr_reader :ax_pos
|
53
|
+
alias :axPos :ax_pos
|
54
|
+
|
55
|
+
# the position of the tick labels
|
56
|
+
# must be one of [:nextTo, :high, :low]
|
57
|
+
# @return [Symbol]
|
58
|
+
attr_reader :tick_lbl_pos
|
59
|
+
alias :tickLblPos :tick_lbl_pos
|
60
|
+
|
61
|
+
# The number format format code for this axis
|
62
|
+
# default :General
|
63
|
+
# @return [String]
|
64
|
+
attr_reader :format_code
|
65
|
+
|
66
|
+
# specifies how the perpendicular axis is crossed
|
67
|
+
# must be one of [:autoZero, :min, :max]
|
68
|
+
# @return [Symbol]
|
69
|
+
attr_reader :crosses
|
70
|
+
|
71
|
+
# specifies how the degree of label rotation
|
72
|
+
# @return [Integer]
|
73
|
+
attr_reader :label_rotation
|
74
|
+
|
75
|
+
# specifies if gridlines should be shown in the chart
|
76
|
+
# @return [Boolean]
|
77
|
+
attr_reader :gridlines
|
78
|
+
|
79
|
+
# specifies if gridlines should be shown in the chart
|
80
|
+
# @return [Boolean]
|
81
|
+
attr_reader :delete
|
82
|
+
|
83
|
+
# the title for the axis. This can be a cell or a fixed string.
|
84
|
+
attr_reader :title
|
85
|
+
|
86
|
+
# The color for this axis. This value is used when rendering the axis line in the chart.
|
87
|
+
# colors should be in 6 character rbg format
|
88
|
+
# @return [String] the rbg color assinged.
|
89
|
+
# @see color
|
90
|
+
def color=(color_rgb)
|
91
|
+
@color = color_rgb
|
92
|
+
end
|
93
|
+
|
94
|
+
# The crossing axis for this axis
|
95
|
+
# @param [Axis] axis
|
96
|
+
def cross_axis=(axis)
|
97
|
+
DataTypeValidator.validate "#{self.class}.cross_axis", [Axis], axis
|
98
|
+
@cross_axis = axis
|
99
|
+
end
|
100
|
+
|
101
|
+
# The position of the axis
|
102
|
+
# must be one of [:l, :r, :t, :b]
|
103
|
+
def ax_pos=(v) RestrictionValidator.validate "#{self.class}.ax_pos", [:l, :r, :b, :t], v; @ax_pos = v; end
|
104
|
+
alias :axPos= :ax_pos=
|
105
|
+
|
106
|
+
# the position of the tick labels
|
107
|
+
# must be one of [:nextTo, :high, :low1]
|
108
|
+
def tick_lbl_pos=(v) RestrictionValidator.validate "#{self.class}.tick_lbl_pos", [:nextTo, :high, :low, :none], v; @tick_lbl_pos = v; end
|
109
|
+
alias :tickLblPos= :tick_lbl_pos=
|
110
|
+
|
111
|
+
# The number format format code for this axis
|
112
|
+
# default :General
|
113
|
+
def format_code=(v) Axlsx::validate_string(v); @format_code = v; end
|
114
|
+
|
115
|
+
# Specify if gridlines should be shown for this axis
|
116
|
+
# default true
|
117
|
+
def gridlines=(v) Axlsx::validate_boolean(v); @gridlines = v; end
|
118
|
+
|
119
|
+
# Specify if axis should be removed from the chart
|
120
|
+
# default false
|
121
|
+
def delete=(v) Axlsx::validate_boolean(v); @delete = v; end
|
122
|
+
|
123
|
+
# specifies how the perpendicular axis is crossed
|
124
|
+
# must be one of [:autoZero, :min, :max]
|
125
|
+
def crosses=(v) RestrictionValidator.validate "#{self.class}.crosses", [:autoZero, :min, :max], v; @crosses = v; end
|
126
|
+
|
127
|
+
# Specify the degree of label rotation to apply to labels
|
128
|
+
# default true
|
129
|
+
def label_rotation=(v)
|
130
|
+
Axlsx::validate_int(v)
|
131
|
+
adjusted = v.to_i * 60000
|
132
|
+
Axlsx::validate_angle(adjusted)
|
133
|
+
@label_rotation = adjusted
|
134
|
+
end
|
135
|
+
|
136
|
+
# The title object for the chart.
|
137
|
+
# @param [String, Cell] v
|
138
|
+
# @return [Title]
|
139
|
+
def title=(v)
|
140
|
+
DataTypeValidator.validate "#{self.class}.title", [String, Cell], v
|
141
|
+
@title ||= Title.new
|
142
|
+
if v.is_a?(String)
|
143
|
+
@title.text = v
|
144
|
+
elsif v.is_a?(Cell)
|
145
|
+
@title.cell = v
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
# Serializes the object
|
150
|
+
# @param [String] str
|
151
|
+
# @return [String]
|
152
|
+
def to_xml_string(str = '')
|
153
|
+
str << ('<c:axId val="' << @id.to_s << '"/>')
|
154
|
+
@scaling.to_xml_string str
|
155
|
+
str << ('<c:delete val="' << @delete.to_s << '"/>')
|
156
|
+
str << ('<c:axPos val="' << @ax_pos.to_s << '"/>')
|
157
|
+
str << '<c:majorGridlines>'
|
158
|
+
# TODO shape properties need to be extracted into a class
|
159
|
+
if gridlines == false
|
160
|
+
str << '<c:spPr>'
|
161
|
+
str << '<a:ln>'
|
162
|
+
str << '<a:noFill/>'
|
163
|
+
str << '</a:ln>'
|
164
|
+
str << '</c:spPr>'
|
165
|
+
end
|
166
|
+
str << '</c:majorGridlines>'
|
167
|
+
@title.to_xml_string(str) unless @title == nil
|
168
|
+
# Need to set sourceLinked to 0 if we're setting a format code on this row
|
169
|
+
# otherwise it will never take, as it will always prefer the 'General' formatting
|
170
|
+
# of the cells themselves
|
171
|
+
str << ('<c:numFmt formatCode="' << @format_code << '" sourceLinked="' << (@format_code.eql?('General') ? '1' : '0') << '"/>')
|
172
|
+
str << '<c:majorTickMark val="none"/>'
|
173
|
+
str << '<c:minorTickMark val="none"/>'
|
174
|
+
str << ('<c:tickLblPos val="' << @tick_lbl_pos.to_s << '"/>')
|
175
|
+
# TODO - this is also being used for series colors
|
176
|
+
# time to extract this into a class spPr - Shape Properties
|
177
|
+
if @color
|
178
|
+
str << '<c:spPr><a:ln><a:solidFill>'
|
179
|
+
str << ('<a:srgbClr val="' << @color << '"/>')
|
180
|
+
str << '</a:solidFill></a:ln></c:spPr>'
|
181
|
+
end
|
182
|
+
# some potential value in implementing this in full. Very detailed!
|
183
|
+
str << ('<c:txPr><a:bodyPr rot="' << @label_rotation.to_s << '"/><a:lstStyle/><a:p><a:pPr><a:defRPr/></a:pPr><a:endParaRPr/></a:p></c:txPr>')
|
184
|
+
str << ('<c:crossAx val="' << @cross_axis.id.to_s << '"/>')
|
185
|
+
str << ('<c:crosses val="' << @crosses.to_s << '"/>')
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
189
|
+
|
190
|
+
end
|