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
|
-
module Axlsx
|
|
2
|
-
# Conditional Format Rule data bar object
|
|
3
|
-
# Describes a data bar conditional formatting rule.
|
|
4
|
-
|
|
5
|
-
# @note The recommended way to manage these rules is via Worksheet#add_conditional_formatting
|
|
6
|
-
# @see Worksheet#add_conditional_formatting
|
|
7
|
-
# @see ConditionalFormattingRule#initialize
|
|
8
|
-
class DataBar
|
|
9
|
-
|
|
10
|
-
include Axlsx::OptionsParser
|
|
11
|
-
include Axlsx::SerializedAttributes
|
|
12
|
-
|
|
13
|
-
class << self
|
|
14
|
-
# This differs from ColorScale. There must be exactly two cfvos one color
|
|
15
|
-
def default_cfvos
|
|
16
|
-
[{:type => :min, :val => "0"},
|
|
17
|
-
{:type => :max, :val => "0"}]
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# Creates a new data bar conditional formatting object
|
|
22
|
-
# @param [Hash] options
|
|
23
|
-
# @option options [Integer] minLength
|
|
24
|
-
# @option options [Integer] maxLength
|
|
25
|
-
# @option options [Boolean] showValue
|
|
26
|
-
# @option options [String] color - the rbg value used to color the bars
|
|
27
|
-
# @param [Array] cfvos hashes defining the gradient interpolation points for this formatting.
|
|
28
|
-
def initialize(options = {}, *cfvos)
|
|
29
|
-
@min_length = 10
|
|
30
|
-
@max_length = 90
|
|
31
|
-
@show_value = true
|
|
32
|
-
parse_options options
|
|
33
|
-
initialize_cfvos(cfvos)
|
|
34
|
-
yield self if block_given?
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
serializable_attributes :min_length, :max_length, :show_value
|
|
38
|
-
|
|
39
|
-
# instance values that must be serialized as their own elements - e.g. not attributes.
|
|
40
|
-
CHILD_ELEMENTS = [:value_objects, :color]
|
|
41
|
-
|
|
42
|
-
# minLength attribute
|
|
43
|
-
# The minimum length of the data bar, as a percentage of the cell width.
|
|
44
|
-
# The default value is 10
|
|
45
|
-
# @return [Integer]
|
|
46
|
-
attr_reader :min_length
|
|
47
|
-
alias :minLength :min_length
|
|
48
|
-
|
|
49
|
-
# maxLength attribute
|
|
50
|
-
# The maximum length of the data bar, as a percentage of the cell width.
|
|
51
|
-
# The default value is 90
|
|
52
|
-
# @return [Integer]
|
|
53
|
-
attr_reader :max_length
|
|
54
|
-
alias :maxLength :max_length
|
|
55
|
-
|
|
56
|
-
# maxLength attribute
|
|
57
|
-
# Indicates whether to show the values of the cells on which this data bar is applied.
|
|
58
|
-
# The default value is true
|
|
59
|
-
# @return [Boolean]
|
|
60
|
-
attr_reader :show_value
|
|
61
|
-
alias :showValue :show_value
|
|
62
|
-
|
|
63
|
-
# A simple typed list of cfvos
|
|
64
|
-
# @return [SimpleTypedList]
|
|
65
|
-
# @see Cfvo
|
|
66
|
-
def value_objects
|
|
67
|
-
@value_objects ||= Cfvos.new
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# color
|
|
71
|
-
# the color object used in the data bar formatting
|
|
72
|
-
# @return [Color]
|
|
73
|
-
def color
|
|
74
|
-
@color ||= Color.new :rgb => "FF0000FF"
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
# @see minLength
|
|
78
|
-
def min_length=(v)
|
|
79
|
-
Axlsx.validate_unsigned_int(v)
|
|
80
|
-
@min_length = v
|
|
81
|
-
end
|
|
82
|
-
alias :minLength= :min_length=
|
|
83
|
-
|
|
84
|
-
# @see maxLength
|
|
85
|
-
def max_length=(v)
|
|
86
|
-
Axlsx.validate_unsigned_int(v)
|
|
87
|
-
@max_length = v
|
|
88
|
-
end
|
|
89
|
-
alias :maxLength= :max_length=
|
|
90
|
-
|
|
91
|
-
# @see showValue
|
|
92
|
-
def show_value=(v)
|
|
93
|
-
Axlsx.validate_boolean(v)
|
|
94
|
-
@show_value = v
|
|
95
|
-
end
|
|
96
|
-
alias :showValue= :show_value=
|
|
97
|
-
|
|
98
|
-
# Sets the color for the data bars.
|
|
99
|
-
# @param [Color|String] v The color object, or rgb string value to apply
|
|
100
|
-
def color=(v)
|
|
101
|
-
@color = v if v.is_a? Color
|
|
102
|
-
self.color.rgb = v if v.is_a? String
|
|
103
|
-
@color
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
# Serialize this object to an xml string
|
|
107
|
-
# @param [String] str
|
|
108
|
-
# @return [String]
|
|
109
|
-
def to_xml_string(str="")
|
|
110
|
-
serialized_tag('dataBar', str) do
|
|
111
|
-
value_objects.to_xml_string(str)
|
|
112
|
-
self.color.to_xml_string(str)
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
private
|
|
117
|
-
|
|
118
|
-
def initialize_cfvos(cfvos)
|
|
119
|
-
self.class.default_cfvos.each_with_index.map do |default, index|
|
|
120
|
-
if index < cfvos.size
|
|
121
|
-
value_objects << Cfvo.new(default.merge(cfvos[index]))
|
|
122
|
-
else
|
|
123
|
-
value_objects << Cfvo.new(default)
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
end
|
|
129
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
# Conditional Format Rule data bar object
|
|
3
|
+
# Describes a data bar conditional formatting rule.
|
|
4
|
+
|
|
5
|
+
# @note The recommended way to manage these rules is via Worksheet#add_conditional_formatting
|
|
6
|
+
# @see Worksheet#add_conditional_formatting
|
|
7
|
+
# @see ConditionalFormattingRule#initialize
|
|
8
|
+
class DataBar
|
|
9
|
+
|
|
10
|
+
include Axlsx::OptionsParser
|
|
11
|
+
include Axlsx::SerializedAttributes
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
# This differs from ColorScale. There must be exactly two cfvos one color
|
|
15
|
+
def default_cfvos
|
|
16
|
+
[{:type => :min, :val => "0"},
|
|
17
|
+
{:type => :max, :val => "0"}]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Creates a new data bar conditional formatting object
|
|
22
|
+
# @param [Hash] options
|
|
23
|
+
# @option options [Integer] minLength
|
|
24
|
+
# @option options [Integer] maxLength
|
|
25
|
+
# @option options [Boolean] showValue
|
|
26
|
+
# @option options [String] color - the rbg value used to color the bars
|
|
27
|
+
# @param [Array] cfvos hashes defining the gradient interpolation points for this formatting.
|
|
28
|
+
def initialize(options = {}, *cfvos)
|
|
29
|
+
@min_length = 10
|
|
30
|
+
@max_length = 90
|
|
31
|
+
@show_value = true
|
|
32
|
+
parse_options options
|
|
33
|
+
initialize_cfvos(cfvos)
|
|
34
|
+
yield self if block_given?
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
serializable_attributes :min_length, :max_length, :show_value
|
|
38
|
+
|
|
39
|
+
# instance values that must be serialized as their own elements - e.g. not attributes.
|
|
40
|
+
CHILD_ELEMENTS = [:value_objects, :color]
|
|
41
|
+
|
|
42
|
+
# minLength attribute
|
|
43
|
+
# The minimum length of the data bar, as a percentage of the cell width.
|
|
44
|
+
# The default value is 10
|
|
45
|
+
# @return [Integer]
|
|
46
|
+
attr_reader :min_length
|
|
47
|
+
alias :minLength :min_length
|
|
48
|
+
|
|
49
|
+
# maxLength attribute
|
|
50
|
+
# The maximum length of the data bar, as a percentage of the cell width.
|
|
51
|
+
# The default value is 90
|
|
52
|
+
# @return [Integer]
|
|
53
|
+
attr_reader :max_length
|
|
54
|
+
alias :maxLength :max_length
|
|
55
|
+
|
|
56
|
+
# maxLength attribute
|
|
57
|
+
# Indicates whether to show the values of the cells on which this data bar is applied.
|
|
58
|
+
# The default value is true
|
|
59
|
+
# @return [Boolean]
|
|
60
|
+
attr_reader :show_value
|
|
61
|
+
alias :showValue :show_value
|
|
62
|
+
|
|
63
|
+
# A simple typed list of cfvos
|
|
64
|
+
# @return [SimpleTypedList]
|
|
65
|
+
# @see Cfvo
|
|
66
|
+
def value_objects
|
|
67
|
+
@value_objects ||= Cfvos.new
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# color
|
|
71
|
+
# the color object used in the data bar formatting
|
|
72
|
+
# @return [Color]
|
|
73
|
+
def color
|
|
74
|
+
@color ||= Color.new :rgb => "FF0000FF"
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# @see minLength
|
|
78
|
+
def min_length=(v)
|
|
79
|
+
Axlsx.validate_unsigned_int(v)
|
|
80
|
+
@min_length = v
|
|
81
|
+
end
|
|
82
|
+
alias :minLength= :min_length=
|
|
83
|
+
|
|
84
|
+
# @see maxLength
|
|
85
|
+
def max_length=(v)
|
|
86
|
+
Axlsx.validate_unsigned_int(v)
|
|
87
|
+
@max_length = v
|
|
88
|
+
end
|
|
89
|
+
alias :maxLength= :max_length=
|
|
90
|
+
|
|
91
|
+
# @see showValue
|
|
92
|
+
def show_value=(v)
|
|
93
|
+
Axlsx.validate_boolean(v)
|
|
94
|
+
@show_value = v
|
|
95
|
+
end
|
|
96
|
+
alias :showValue= :show_value=
|
|
97
|
+
|
|
98
|
+
# Sets the color for the data bars.
|
|
99
|
+
# @param [Color|String] v The color object, or rgb string value to apply
|
|
100
|
+
def color=(v)
|
|
101
|
+
@color = v if v.is_a? Color
|
|
102
|
+
self.color.rgb = v if v.is_a? String
|
|
103
|
+
@color
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Serialize this object to an xml string
|
|
107
|
+
# @param [String] str
|
|
108
|
+
# @return [String]
|
|
109
|
+
def to_xml_string(str="")
|
|
110
|
+
serialized_tag('dataBar', str) do
|
|
111
|
+
value_objects.to_xml_string(str)
|
|
112
|
+
self.color.to_xml_string(str)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
private
|
|
117
|
+
|
|
118
|
+
def initialize_cfvos(cfvos)
|
|
119
|
+
self.class.default_cfvos.each_with_index.map do |default, index|
|
|
120
|
+
if index < cfvos.size
|
|
121
|
+
value_objects << Cfvo.new(default.merge(cfvos[index]))
|
|
122
|
+
else
|
|
123
|
+
value_objects << Cfvo.new(default)
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
end
|
|
129
|
+
end
|