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,132 +1,132 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
# CellAlignment stores information about the cell alignment of a style Xf Object.
|
|
6
|
-
# @note Using Styles#add_style is the recommended way to manage cell alignment.
|
|
7
|
-
# @see Styles#add_style
|
|
8
|
-
class CellAlignment
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
include Axlsx::SerializedAttributes
|
|
12
|
-
include Axlsx::OptionsParser
|
|
13
|
-
|
|
14
|
-
serializable_attributes :horizontal, :vertical, :text_rotation, :wrap_text, :indent, :relative_indent, :justify_last_line, :shrink_to_fit, :reading_order
|
|
15
|
-
# Create a new cell_alignment object
|
|
16
|
-
# @option options [Symbol] horizontal
|
|
17
|
-
# @option options [Symbol] vertical
|
|
18
|
-
# @option options [Integer] text_rotation
|
|
19
|
-
# @option options [Boolean] wrap_text
|
|
20
|
-
# @option options [Integer] indent
|
|
21
|
-
# @option options [Integer] relative_indent
|
|
22
|
-
# @option options [Boolean] justify_last_line
|
|
23
|
-
# @option options [Boolean] shrink_to_fit
|
|
24
|
-
# @option options [Integer] reading_order
|
|
25
|
-
def initialize(options={})
|
|
26
|
-
parse_options options
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# The horizontal alignment of the cell.
|
|
32
|
-
# @note
|
|
33
|
-
# The horizontal cell alignement style must be one of
|
|
34
|
-
# :general
|
|
35
|
-
# :left
|
|
36
|
-
# :center
|
|
37
|
-
# :right
|
|
38
|
-
# :fill
|
|
39
|
-
# :justify
|
|
40
|
-
# :centerContinuous
|
|
41
|
-
# :distributed
|
|
42
|
-
# @return [Symbol]
|
|
43
|
-
attr_reader :horizontal
|
|
44
|
-
|
|
45
|
-
# The vertical alignment of the cell.
|
|
46
|
-
# @note
|
|
47
|
-
# The vertical cell allingment style must be one of the following:
|
|
48
|
-
# :top
|
|
49
|
-
# :center
|
|
50
|
-
# :bottom
|
|
51
|
-
# :justify
|
|
52
|
-
# :distributed
|
|
53
|
-
# @return [Symbol]
|
|
54
|
-
attr_reader :vertical
|
|
55
|
-
|
|
56
|
-
# The textRotation of the cell.
|
|
57
|
-
# @return [Integer]
|
|
58
|
-
attr_reader :text_rotation
|
|
59
|
-
alias :textRotation :text_rotation
|
|
60
|
-
|
|
61
|
-
# Indicate if the text of the cell should wrap
|
|
62
|
-
# @return [Boolean]
|
|
63
|
-
attr_reader :wrap_text
|
|
64
|
-
alias :wrapText :wrap_text
|
|
65
|
-
|
|
66
|
-
# The amount of indent
|
|
67
|
-
# @return [Integer]
|
|
68
|
-
attr_reader :indent
|
|
69
|
-
|
|
70
|
-
# The amount of relativeIndent
|
|
71
|
-
# @return [Integer]
|
|
72
|
-
attr_reader :relative_indent
|
|
73
|
-
alias :relativeIndent :relative_indent
|
|
74
|
-
|
|
75
|
-
# Indicate if the last line should be justified.
|
|
76
|
-
# @return [Boolean]
|
|
77
|
-
attr_reader :justify_last_line
|
|
78
|
-
alias :justifyLastLine :justify_last_line
|
|
79
|
-
|
|
80
|
-
# Indicate if the text should be shrunk to the fit in the cell.
|
|
81
|
-
# @return [Boolean]
|
|
82
|
-
attr_reader :shrink_to_fit
|
|
83
|
-
alias :shrinkToFit :shrink_to_fit
|
|
84
|
-
|
|
85
|
-
# The reading order of the text
|
|
86
|
-
# 0 Context Dependent
|
|
87
|
-
# 1 Left-to-Right
|
|
88
|
-
# 2 Right-to-Left
|
|
89
|
-
# @return [Integer]
|
|
90
|
-
attr_reader :reading_order
|
|
91
|
-
alias :readingOrder :reading_order
|
|
92
|
-
|
|
93
|
-
# @see horizontal
|
|
94
|
-
def horizontal=(v) Axlsx::validate_horizontal_alignment v; @horizontal = v end
|
|
95
|
-
# @see vertical
|
|
96
|
-
def vertical=(v) Axlsx::validate_vertical_alignment v; @vertical = v end
|
|
97
|
-
# @see textRotation
|
|
98
|
-
def text_rotation=(v) Axlsx::validate_unsigned_int v; @text_rotation = v end
|
|
99
|
-
alias :textRotation= :text_rotation=
|
|
100
|
-
|
|
101
|
-
# @see wrapText
|
|
102
|
-
def wrap_text=(v) Axlsx::validate_boolean v; @wrap_text = v end
|
|
103
|
-
alias :wrapText= :wrap_text=
|
|
104
|
-
|
|
105
|
-
# @see indent
|
|
106
|
-
def indent=(v) Axlsx::validate_unsigned_int v; @indent = v end
|
|
107
|
-
|
|
108
|
-
# @see relativeIndent
|
|
109
|
-
def relative_indent=(v) Axlsx::validate_int v; @relative_indent = v end
|
|
110
|
-
alias :relativeIndent= :relative_indent=
|
|
111
|
-
|
|
112
|
-
# @see justifyLastLine
|
|
113
|
-
def justify_last_line=(v) Axlsx::validate_boolean v; @justify_last_line = v end
|
|
114
|
-
alias :justifyLastLine= :justify_last_line=
|
|
115
|
-
|
|
116
|
-
# @see shrinkToFit
|
|
117
|
-
def shrink_to_fit=(v) Axlsx::validate_boolean v; @shrink_to_fit = v end
|
|
118
|
-
alias :shrinkToFit= :shrink_to_fit=
|
|
119
|
-
|
|
120
|
-
# @see readingOrder
|
|
121
|
-
def reading_order=(v) Axlsx::validate_unsigned_int v; @reading_order = v end
|
|
122
|
-
alias :readingOrder= :reading_order=
|
|
123
|
-
|
|
124
|
-
# Serializes the object
|
|
125
|
-
# @param [String] str
|
|
126
|
-
# @return [String]
|
|
127
|
-
def to_xml_string(str = '')
|
|
128
|
-
serialized_tag('alignment', str)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
end
|
|
132
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# CellAlignment stores information about the cell alignment of a style Xf Object.
|
|
6
|
+
# @note Using Styles#add_style is the recommended way to manage cell alignment.
|
|
7
|
+
# @see Styles#add_style
|
|
8
|
+
class CellAlignment
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
include Axlsx::SerializedAttributes
|
|
12
|
+
include Axlsx::OptionsParser
|
|
13
|
+
|
|
14
|
+
serializable_attributes :horizontal, :vertical, :text_rotation, :wrap_text, :indent, :relative_indent, :justify_last_line, :shrink_to_fit, :reading_order
|
|
15
|
+
# Create a new cell_alignment object
|
|
16
|
+
# @option options [Symbol] horizontal
|
|
17
|
+
# @option options [Symbol] vertical
|
|
18
|
+
# @option options [Integer] text_rotation
|
|
19
|
+
# @option options [Boolean] wrap_text
|
|
20
|
+
# @option options [Integer] indent
|
|
21
|
+
# @option options [Integer] relative_indent
|
|
22
|
+
# @option options [Boolean] justify_last_line
|
|
23
|
+
# @option options [Boolean] shrink_to_fit
|
|
24
|
+
# @option options [Integer] reading_order
|
|
25
|
+
def initialize(options={})
|
|
26
|
+
parse_options options
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# The horizontal alignment of the cell.
|
|
32
|
+
# @note
|
|
33
|
+
# The horizontal cell alignement style must be one of
|
|
34
|
+
# :general
|
|
35
|
+
# :left
|
|
36
|
+
# :center
|
|
37
|
+
# :right
|
|
38
|
+
# :fill
|
|
39
|
+
# :justify
|
|
40
|
+
# :centerContinuous
|
|
41
|
+
# :distributed
|
|
42
|
+
# @return [Symbol]
|
|
43
|
+
attr_reader :horizontal
|
|
44
|
+
|
|
45
|
+
# The vertical alignment of the cell.
|
|
46
|
+
# @note
|
|
47
|
+
# The vertical cell allingment style must be one of the following:
|
|
48
|
+
# :top
|
|
49
|
+
# :center
|
|
50
|
+
# :bottom
|
|
51
|
+
# :justify
|
|
52
|
+
# :distributed
|
|
53
|
+
# @return [Symbol]
|
|
54
|
+
attr_reader :vertical
|
|
55
|
+
|
|
56
|
+
# The textRotation of the cell.
|
|
57
|
+
# @return [Integer]
|
|
58
|
+
attr_reader :text_rotation
|
|
59
|
+
alias :textRotation :text_rotation
|
|
60
|
+
|
|
61
|
+
# Indicate if the text of the cell should wrap
|
|
62
|
+
# @return [Boolean]
|
|
63
|
+
attr_reader :wrap_text
|
|
64
|
+
alias :wrapText :wrap_text
|
|
65
|
+
|
|
66
|
+
# The amount of indent
|
|
67
|
+
# @return [Integer]
|
|
68
|
+
attr_reader :indent
|
|
69
|
+
|
|
70
|
+
# The amount of relativeIndent
|
|
71
|
+
# @return [Integer]
|
|
72
|
+
attr_reader :relative_indent
|
|
73
|
+
alias :relativeIndent :relative_indent
|
|
74
|
+
|
|
75
|
+
# Indicate if the last line should be justified.
|
|
76
|
+
# @return [Boolean]
|
|
77
|
+
attr_reader :justify_last_line
|
|
78
|
+
alias :justifyLastLine :justify_last_line
|
|
79
|
+
|
|
80
|
+
# Indicate if the text should be shrunk to the fit in the cell.
|
|
81
|
+
# @return [Boolean]
|
|
82
|
+
attr_reader :shrink_to_fit
|
|
83
|
+
alias :shrinkToFit :shrink_to_fit
|
|
84
|
+
|
|
85
|
+
# The reading order of the text
|
|
86
|
+
# 0 Context Dependent
|
|
87
|
+
# 1 Left-to-Right
|
|
88
|
+
# 2 Right-to-Left
|
|
89
|
+
# @return [Integer]
|
|
90
|
+
attr_reader :reading_order
|
|
91
|
+
alias :readingOrder :reading_order
|
|
92
|
+
|
|
93
|
+
# @see horizontal
|
|
94
|
+
def horizontal=(v) Axlsx::validate_horizontal_alignment v; @horizontal = v end
|
|
95
|
+
# @see vertical
|
|
96
|
+
def vertical=(v) Axlsx::validate_vertical_alignment v; @vertical = v end
|
|
97
|
+
# @see textRotation
|
|
98
|
+
def text_rotation=(v) Axlsx::validate_unsigned_int v; @text_rotation = v end
|
|
99
|
+
alias :textRotation= :text_rotation=
|
|
100
|
+
|
|
101
|
+
# @see wrapText
|
|
102
|
+
def wrap_text=(v) Axlsx::validate_boolean v; @wrap_text = v end
|
|
103
|
+
alias :wrapText= :wrap_text=
|
|
104
|
+
|
|
105
|
+
# @see indent
|
|
106
|
+
def indent=(v) Axlsx::validate_unsigned_int v; @indent = v end
|
|
107
|
+
|
|
108
|
+
# @see relativeIndent
|
|
109
|
+
def relative_indent=(v) Axlsx::validate_int v; @relative_indent = v end
|
|
110
|
+
alias :relativeIndent= :relative_indent=
|
|
111
|
+
|
|
112
|
+
# @see justifyLastLine
|
|
113
|
+
def justify_last_line=(v) Axlsx::validate_boolean v; @justify_last_line = v end
|
|
114
|
+
alias :justifyLastLine= :justify_last_line=
|
|
115
|
+
|
|
116
|
+
# @see shrinkToFit
|
|
117
|
+
def shrink_to_fit=(v) Axlsx::validate_boolean v; @shrink_to_fit = v end
|
|
118
|
+
alias :shrinkToFit= :shrink_to_fit=
|
|
119
|
+
|
|
120
|
+
# @see readingOrder
|
|
121
|
+
def reading_order=(v) Axlsx::validate_unsigned_int v; @reading_order = v end
|
|
122
|
+
alias :readingOrder= :reading_order=
|
|
123
|
+
|
|
124
|
+
# Serializes the object
|
|
125
|
+
# @param [String] str
|
|
126
|
+
# @return [String]
|
|
127
|
+
def to_xml_string(str = '')
|
|
128
|
+
serialized_tag('alignment', str)
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
end
|
|
132
|
+
end
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# CellProtection stores information about locking or hiding cells in spreadsheet.
|
|
4
|
-
# @note Using Styles#add_style is the recommended way to manage cell protection.
|
|
5
|
-
# @see Styles#add_style
|
|
6
|
-
class CellProtection
|
|
7
|
-
|
|
8
|
-
include Axlsx::OptionsParser
|
|
9
|
-
include Axlsx::SerializedAttributes
|
|
10
|
-
|
|
11
|
-
serializable_attributes :hidden, :locked
|
|
12
|
-
|
|
13
|
-
# specifies locking for cells that have the style containing this protection
|
|
14
|
-
# @return [Boolean]
|
|
15
|
-
attr_reader :hidden
|
|
16
|
-
|
|
17
|
-
# specifies if the cells that have the style containing this protection
|
|
18
|
-
# @return [Boolean]
|
|
19
|
-
attr_reader :locked
|
|
20
|
-
|
|
21
|
-
# Creates a new CellProtection
|
|
22
|
-
# @option options [Boolean] hidden value for hidden protection
|
|
23
|
-
# @option options [Boolean] locked value for locked protection
|
|
24
|
-
def initialize(options={})
|
|
25
|
-
parse_options options
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
# @see hidden
|
|
29
|
-
def hidden=(v) Axlsx::validate_boolean v; @hidden = v end
|
|
30
|
-
# @see locked
|
|
31
|
-
def locked=(v) Axlsx::validate_boolean v; @locked = v end
|
|
32
|
-
|
|
33
|
-
# Serializes the object
|
|
34
|
-
# @param [String] str
|
|
35
|
-
# @return [String]
|
|
36
|
-
def to_xml_string(str = '')
|
|
37
|
-
serialized_tag('protection', str)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
end
|
|
41
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# CellProtection stores information about locking or hiding cells in spreadsheet.
|
|
4
|
+
# @note Using Styles#add_style is the recommended way to manage cell protection.
|
|
5
|
+
# @see Styles#add_style
|
|
6
|
+
class CellProtection
|
|
7
|
+
|
|
8
|
+
include Axlsx::OptionsParser
|
|
9
|
+
include Axlsx::SerializedAttributes
|
|
10
|
+
|
|
11
|
+
serializable_attributes :hidden, :locked
|
|
12
|
+
|
|
13
|
+
# specifies locking for cells that have the style containing this protection
|
|
14
|
+
# @return [Boolean]
|
|
15
|
+
attr_reader :hidden
|
|
16
|
+
|
|
17
|
+
# specifies if the cells that have the style containing this protection
|
|
18
|
+
# @return [Boolean]
|
|
19
|
+
attr_reader :locked
|
|
20
|
+
|
|
21
|
+
# Creates a new CellProtection
|
|
22
|
+
# @option options [Boolean] hidden value for hidden protection
|
|
23
|
+
# @option options [Boolean] locked value for locked protection
|
|
24
|
+
def initialize(options={})
|
|
25
|
+
parse_options options
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @see hidden
|
|
29
|
+
def hidden=(v) Axlsx::validate_boolean v; @hidden = v end
|
|
30
|
+
# @see locked
|
|
31
|
+
def locked=(v) Axlsx::validate_boolean v; @locked = v end
|
|
32
|
+
|
|
33
|
+
# Serializes the object
|
|
34
|
+
# @param [String] str
|
|
35
|
+
# @return [String]
|
|
36
|
+
def to_xml_string(str = '')
|
|
37
|
+
serialized_tag('protection', str)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# CellStyle defines named styles that reference defined formatting records and can be used in your worksheet.
|
|
4
|
-
# @note Using Styles#add_style is the recommended way to manage cell styling.
|
|
5
|
-
# @see Styles#add_style
|
|
6
|
-
class CellStyle
|
|
7
|
-
|
|
8
|
-
include Axlsx::OptionsParser
|
|
9
|
-
include Axlsx::SerializedAttributes
|
|
10
|
-
|
|
11
|
-
# Creats a new CellStyle object
|
|
12
|
-
# @option options [String] name
|
|
13
|
-
# @option options [Integer] xfId
|
|
14
|
-
# @option options [Integer] buildinId
|
|
15
|
-
# @option options [Integer] iLevel
|
|
16
|
-
# @option options [Boolean] hidden
|
|
17
|
-
# @option options [Boolean] customBuiltIn
|
|
18
|
-
def initialize(options={})
|
|
19
|
-
parse_options options
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
serializable_attributes :name, :xfId, :buildinId, :iLevel, :hidden, :customBuilin
|
|
23
|
-
|
|
24
|
-
# The name of this cell style
|
|
25
|
-
# @return [String]
|
|
26
|
-
attr_reader :name
|
|
27
|
-
|
|
28
|
-
# The formatting record id this named style utilizes
|
|
29
|
-
# @return [Integer]
|
|
30
|
-
# @see Axlsx::Xf
|
|
31
|
-
attr_reader :xfId
|
|
32
|
-
|
|
33
|
-
# The buildinId to use when this named style is applied
|
|
34
|
-
# @return [Integer]
|
|
35
|
-
# @see Axlsx::NumFmt
|
|
36
|
-
attr_reader :builtinId
|
|
37
|
-
|
|
38
|
-
# Determines if this formatting is for an outline style, and what level of the outline it is to be applied to.
|
|
39
|
-
# @return [Integer]
|
|
40
|
-
attr_reader :iLevel
|
|
41
|
-
|
|
42
|
-
# Determines if this named style should show in the list of styles when using excel
|
|
43
|
-
# @return [Boolean]
|
|
44
|
-
attr_reader :hidden
|
|
45
|
-
|
|
46
|
-
# Indicates that the build in style reference has been customized.
|
|
47
|
-
# @return [Boolean]
|
|
48
|
-
attr_reader :customBuiltin
|
|
49
|
-
|
|
50
|
-
# @see name
|
|
51
|
-
def name=(v) Axlsx::validate_string v; @name = v end
|
|
52
|
-
# @see xfId
|
|
53
|
-
def xfId=(v) Axlsx::validate_unsigned_int v; @xfId = v end
|
|
54
|
-
# @see builtinId
|
|
55
|
-
def builtinId=(v) Axlsx::validate_unsigned_int v; @builtinId = v end
|
|
56
|
-
# @see iLivel
|
|
57
|
-
def iLevel=(v) Axlsx::validate_unsigned_int v; @iLevel = v end
|
|
58
|
-
# @see hidden
|
|
59
|
-
def hidden=(v) Axlsx::validate_boolean v; @hidden = v end
|
|
60
|
-
# @see customBuiltin
|
|
61
|
-
def customBuiltin=(v) Axlsx::validate_boolean v; @customBuiltin = v end
|
|
62
|
-
|
|
63
|
-
# Serializes the object
|
|
64
|
-
# @param [String] str
|
|
65
|
-
# @return [String]
|
|
66
|
-
def to_xml_string(str = '')
|
|
67
|
-
serialized_tag('cellStyle', str)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# CellStyle defines named styles that reference defined formatting records and can be used in your worksheet.
|
|
4
|
+
# @note Using Styles#add_style is the recommended way to manage cell styling.
|
|
5
|
+
# @see Styles#add_style
|
|
6
|
+
class CellStyle
|
|
7
|
+
|
|
8
|
+
include Axlsx::OptionsParser
|
|
9
|
+
include Axlsx::SerializedAttributes
|
|
10
|
+
|
|
11
|
+
# Creats a new CellStyle object
|
|
12
|
+
# @option options [String] name
|
|
13
|
+
# @option options [Integer] xfId
|
|
14
|
+
# @option options [Integer] buildinId
|
|
15
|
+
# @option options [Integer] iLevel
|
|
16
|
+
# @option options [Boolean] hidden
|
|
17
|
+
# @option options [Boolean] customBuiltIn
|
|
18
|
+
def initialize(options={})
|
|
19
|
+
parse_options options
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
serializable_attributes :name, :xfId, :buildinId, :iLevel, :hidden, :customBuilin
|
|
23
|
+
|
|
24
|
+
# The name of this cell style
|
|
25
|
+
# @return [String]
|
|
26
|
+
attr_reader :name
|
|
27
|
+
|
|
28
|
+
# The formatting record id this named style utilizes
|
|
29
|
+
# @return [Integer]
|
|
30
|
+
# @see Axlsx::Xf
|
|
31
|
+
attr_reader :xfId
|
|
32
|
+
|
|
33
|
+
# The buildinId to use when this named style is applied
|
|
34
|
+
# @return [Integer]
|
|
35
|
+
# @see Axlsx::NumFmt
|
|
36
|
+
attr_reader :builtinId
|
|
37
|
+
|
|
38
|
+
# Determines if this formatting is for an outline style, and what level of the outline it is to be applied to.
|
|
39
|
+
# @return [Integer]
|
|
40
|
+
attr_reader :iLevel
|
|
41
|
+
|
|
42
|
+
# Determines if this named style should show in the list of styles when using excel
|
|
43
|
+
# @return [Boolean]
|
|
44
|
+
attr_reader :hidden
|
|
45
|
+
|
|
46
|
+
# Indicates that the build in style reference has been customized.
|
|
47
|
+
# @return [Boolean]
|
|
48
|
+
attr_reader :customBuiltin
|
|
49
|
+
|
|
50
|
+
# @see name
|
|
51
|
+
def name=(v) Axlsx::validate_string v; @name = v end
|
|
52
|
+
# @see xfId
|
|
53
|
+
def xfId=(v) Axlsx::validate_unsigned_int v; @xfId = v end
|
|
54
|
+
# @see builtinId
|
|
55
|
+
def builtinId=(v) Axlsx::validate_unsigned_int v; @builtinId = v end
|
|
56
|
+
# @see iLivel
|
|
57
|
+
def iLevel=(v) Axlsx::validate_unsigned_int v; @iLevel = v end
|
|
58
|
+
# @see hidden
|
|
59
|
+
def hidden=(v) Axlsx::validate_boolean v; @hidden = v end
|
|
60
|
+
# @see customBuiltin
|
|
61
|
+
def customBuiltin=(v) Axlsx::validate_boolean v; @customBuiltin = v end
|
|
62
|
+
|
|
63
|
+
# Serializes the object
|
|
64
|
+
# @param [String] str
|
|
65
|
+
# @return [String]
|
|
66
|
+
def to_xml_string(str = '')
|
|
67
|
+
serialized_tag('cellStyle', str)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
|
-
module Axlsx
|
|
3
|
-
# The color class represents a color used for borders, fills an fonts
|
|
4
|
-
class Color
|
|
5
|
-
|
|
6
|
-
include Axlsx::OptionsParser
|
|
7
|
-
include Axlsx::SerializedAttributes
|
|
8
|
-
|
|
9
|
-
# Creates a new Color object
|
|
10
|
-
# @option options [Boolean] auto
|
|
11
|
-
# @option options [String] rgb
|
|
12
|
-
# @option options [Float] tint
|
|
13
|
-
def initialize(options={})
|
|
14
|
-
@rgb = "FF000000"
|
|
15
|
-
parse_options options
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
serializable_attributes :auto, :rgb, :tint
|
|
19
|
-
|
|
20
|
-
# Determines if the color is system color dependant
|
|
21
|
-
# @return [Boolean]
|
|
22
|
-
attr_reader :auto
|
|
23
|
-
|
|
24
|
-
# The color as defined in rgb terms.
|
|
25
|
-
# @note
|
|
26
|
-
# rgb colors need to conform to ST_UnsignedIntHex. That basically means put 'FF' before you color
|
|
27
|
-
# When assigning the rgb value the behavior is much like CSS selectors and can use shorthand versions as follows:
|
|
28
|
-
# If you provide a two character value it will be repeated for each r, g, b assignment
|
|
29
|
-
# If you provide data that is not 2 characters in length, and is less than 8 characters it will be padded with "F"
|
|
30
|
-
# @example
|
|
31
|
-
# Color.new :rgb => "FF000000"
|
|
32
|
-
# => #<Axlsx::Color:0x102106b68 @rgb="FF000000">
|
|
33
|
-
# Color.new :rgb => "0A"
|
|
34
|
-
# => #<Axlsx::Color:0x102106b68 @rgb="FF0A0A0A">
|
|
35
|
-
# Color.new :rgb => "00BB"
|
|
36
|
-
# => #<Axlsx::Color:0x102106b68 @rgb="FFFF00BB">
|
|
37
|
-
# @return [String]
|
|
38
|
-
attr_reader :rgb
|
|
39
|
-
|
|
40
|
-
# no support for theme just yet
|
|
41
|
-
# @return [Integer]
|
|
42
|
-
#attr_reader :theme
|
|
43
|
-
|
|
44
|
-
# The tint value.
|
|
45
|
-
# @note valid values are between -1.0 and 1.0
|
|
46
|
-
# @return [Float]
|
|
47
|
-
attr_reader :tint
|
|
48
|
-
|
|
49
|
-
# @see auto
|
|
50
|
-
def auto=(v) Axlsx::validate_boolean v; @auto = v end
|
|
51
|
-
# @see color
|
|
52
|
-
def rgb=(v)
|
|
53
|
-
Axlsx::validate_string(v)
|
|
54
|
-
v = v.upcase
|
|
55
|
-
v = v * 3 if v.size == 2
|
|
56
|
-
v = v.rjust(8, 'FF')
|
|
57
|
-
raise ArgumentError, "Invalid color rgb value: #{v}." unless v.match(/[0-9A-F]{8}/)
|
|
58
|
-
@rgb = v
|
|
59
|
-
end
|
|
60
|
-
# @see tint
|
|
61
|
-
def tint=(v) Axlsx::validate_float v; @tint = v end
|
|
62
|
-
|
|
63
|
-
# This version does not support themes
|
|
64
|
-
# def theme=(v) Axlsx::validate_unsigned_integer v; @theme = v end
|
|
65
|
-
|
|
66
|
-
# Indexed colors are for backward compatability which I am choosing not to support
|
|
67
|
-
# def indexed=(v) Axlsx::validate_unsigned_integer v; @indexed = v end
|
|
68
|
-
|
|
69
|
-
# Serializes the object
|
|
70
|
-
# @param [String] str
|
|
71
|
-
# @return [String]
|
|
72
|
-
def to_xml_string(str = '', tag_name = 'color')
|
|
73
|
-
serialized_tag('' + tag_name + '', str)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The color class represents a color used for borders, fills an fonts
|
|
4
|
+
class Color
|
|
5
|
+
|
|
6
|
+
include Axlsx::OptionsParser
|
|
7
|
+
include Axlsx::SerializedAttributes
|
|
8
|
+
|
|
9
|
+
# Creates a new Color object
|
|
10
|
+
# @option options [Boolean] auto
|
|
11
|
+
# @option options [String] rgb
|
|
12
|
+
# @option options [Float] tint
|
|
13
|
+
def initialize(options={})
|
|
14
|
+
@rgb = "FF000000"
|
|
15
|
+
parse_options options
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
serializable_attributes :auto, :rgb, :tint
|
|
19
|
+
|
|
20
|
+
# Determines if the color is system color dependant
|
|
21
|
+
# @return [Boolean]
|
|
22
|
+
attr_reader :auto
|
|
23
|
+
|
|
24
|
+
# The color as defined in rgb terms.
|
|
25
|
+
# @note
|
|
26
|
+
# rgb colors need to conform to ST_UnsignedIntHex. That basically means put 'FF' before you color
|
|
27
|
+
# When assigning the rgb value the behavior is much like CSS selectors and can use shorthand versions as follows:
|
|
28
|
+
# If you provide a two character value it will be repeated for each r, g, b assignment
|
|
29
|
+
# If you provide data that is not 2 characters in length, and is less than 8 characters it will be padded with "F"
|
|
30
|
+
# @example
|
|
31
|
+
# Color.new :rgb => "FF000000"
|
|
32
|
+
# => #<Axlsx::Color:0x102106b68 @rgb="FF000000">
|
|
33
|
+
# Color.new :rgb => "0A"
|
|
34
|
+
# => #<Axlsx::Color:0x102106b68 @rgb="FF0A0A0A">
|
|
35
|
+
# Color.new :rgb => "00BB"
|
|
36
|
+
# => #<Axlsx::Color:0x102106b68 @rgb="FFFF00BB">
|
|
37
|
+
# @return [String]
|
|
38
|
+
attr_reader :rgb
|
|
39
|
+
|
|
40
|
+
# no support for theme just yet
|
|
41
|
+
# @return [Integer]
|
|
42
|
+
#attr_reader :theme
|
|
43
|
+
|
|
44
|
+
# The tint value.
|
|
45
|
+
# @note valid values are between -1.0 and 1.0
|
|
46
|
+
# @return [Float]
|
|
47
|
+
attr_reader :tint
|
|
48
|
+
|
|
49
|
+
# @see auto
|
|
50
|
+
def auto=(v) Axlsx::validate_boolean v; @auto = v end
|
|
51
|
+
# @see color
|
|
52
|
+
def rgb=(v)
|
|
53
|
+
Axlsx::validate_string(v)
|
|
54
|
+
v = v.upcase
|
|
55
|
+
v = v * 3 if v.size == 2
|
|
56
|
+
v = v.rjust(8, 'FF')
|
|
57
|
+
raise ArgumentError, "Invalid color rgb value: #{v}." unless v.match(/[0-9A-F]{8}/)
|
|
58
|
+
@rgb = v
|
|
59
|
+
end
|
|
60
|
+
# @see tint
|
|
61
|
+
def tint=(v) Axlsx::validate_float v; @tint = v end
|
|
62
|
+
|
|
63
|
+
# This version does not support themes
|
|
64
|
+
# def theme=(v) Axlsx::validate_unsigned_integer v; @theme = v end
|
|
65
|
+
|
|
66
|
+
# Indexed colors are for backward compatability which I am choosing not to support
|
|
67
|
+
# def indexed=(v) Axlsx::validate_unsigned_integer v; @indexed = v end
|
|
68
|
+
|
|
69
|
+
# Serializes the object
|
|
70
|
+
# @param [String] str
|
|
71
|
+
# @return [String]
|
|
72
|
+
def to_xml_string(str = '', tag_name = 'color')
|
|
73
|
+
serialized_tag('' + tag_name + '', str)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|