caxlsx 2.0.2
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 +7 -0
- data/.yardopts +9 -0
- data/.yardopts_guide +19 -0
- data/CHANGELOG.md +239 -0
- data/LICENSE +22 -0
- data/README.md +256 -0
- data/Rakefile +31 -0
- data/examples/2010_comments.rb +17 -0
- data/examples/anchor_swapping.rb +28 -0
- data/examples/auto_filter.rb +16 -0
- data/examples/basic_charts.rb +58 -0
- data/examples/chart_colors.rb +88 -0
- data/examples/colored_links.rb +59 -0
- data/examples/conditional_formatting/example_conditional_formatting.rb +74 -0
- data/examples/conditional_formatting/getting_barred.rb +37 -0
- data/examples/conditional_formatting/hitting_the_high_notes.rb +37 -0
- data/examples/conditional_formatting/scaled_colors.rb +39 -0
- data/examples/conditional_formatting/stop_and_go.rb +37 -0
- data/examples/data_validation.rb +50 -0
- data/examples/example.rb +777 -0
- data/examples/extractive.rb +45 -0
- data/examples/image1.jpeg +0 -0
- data/examples/ios_preview.rb +14 -0
- data/examples/page_setup.rb +11 -0
- data/examples/pivot_table.rb +39 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/styles.rb +66 -0
- data/examples/underline.rb +13 -0
- data/examples/wrap_text.rb +21 -0
- data/lib/axlsx.rb +152 -0
- data/lib/axlsx/content_type/abstract_content_type.rb +32 -0
- data/lib/axlsx/content_type/content_type.rb +26 -0
- data/lib/axlsx/content_type/default.rb +25 -0
- data/lib/axlsx/content_type/override.rb +25 -0
- data/lib/axlsx/doc_props/app.rb +235 -0
- data/lib/axlsx/doc_props/core.rb +39 -0
- data/lib/axlsx/drawing/ax_data_source.rb +26 -0
- data/lib/axlsx/drawing/axes.rb +61 -0
- data/lib/axlsx/drawing/axis.rb +187 -0
- data/lib/axlsx/drawing/bar_3D_chart.rb +151 -0
- data/lib/axlsx/drawing/bar_series.rb +82 -0
- data/lib/axlsx/drawing/cat_axis.rb +85 -0
- data/lib/axlsx/drawing/chart.rb +232 -0
- data/lib/axlsx/drawing/d_lbls.rb +90 -0
- data/lib/axlsx/drawing/drawing.rb +162 -0
- data/lib/axlsx/drawing/graphic_frame.rb +54 -0
- data/lib/axlsx/drawing/hyperlink.rb +102 -0
- data/lib/axlsx/drawing/line_3D_chart.rb +68 -0
- data/lib/axlsx/drawing/line_chart.rb +99 -0
- data/lib/axlsx/drawing/line_series.rb +81 -0
- data/lib/axlsx/drawing/marker.rb +84 -0
- data/lib/axlsx/drawing/num_data.rb +52 -0
- data/lib/axlsx/drawing/num_data_source.rb +62 -0
- data/lib/axlsx/drawing/num_val.rb +32 -0
- data/lib/axlsx/drawing/one_cell_anchor.rb +98 -0
- data/lib/axlsx/drawing/pic.rb +205 -0
- data/lib/axlsx/drawing/picture_locking.rb +44 -0
- data/lib/axlsx/drawing/pie_3D_chart.rb +48 -0
- data/lib/axlsx/drawing/pie_series.rb +74 -0
- data/lib/axlsx/drawing/scaling.rb +60 -0
- data/lib/axlsx/drawing/scatter_chart.rb +74 -0
- data/lib/axlsx/drawing/scatter_series.rb +65 -0
- data/lib/axlsx/drawing/ser_axis.rb +45 -0
- data/lib/axlsx/drawing/series.rb +69 -0
- data/lib/axlsx/drawing/series_title.rb +23 -0
- data/lib/axlsx/drawing/str_data.rb +42 -0
- data/lib/axlsx/drawing/str_val.rb +32 -0
- data/lib/axlsx/drawing/title.rb +78 -0
- data/lib/axlsx/drawing/two_cell_anchor.rb +92 -0
- data/lib/axlsx/drawing/val_axis.rb +37 -0
- data/lib/axlsx/drawing/view_3D.rb +115 -0
- data/lib/axlsx/drawing/vml_drawing.rb +42 -0
- data/lib/axlsx/drawing/vml_shape.rb +66 -0
- data/lib/axlsx/package.rb +352 -0
- data/lib/axlsx/rels/relationship.rb +129 -0
- data/lib/axlsx/rels/relationships.rb +29 -0
- data/lib/axlsx/stylesheet/border.rb +71 -0
- data/lib/axlsx/stylesheet/border_pr.rb +71 -0
- data/lib/axlsx/stylesheet/cell_alignment.rb +134 -0
- data/lib/axlsx/stylesheet/cell_protection.rb +43 -0
- data/lib/axlsx/stylesheet/cell_style.rb +74 -0
- data/lib/axlsx/stylesheet/color.rb +78 -0
- data/lib/axlsx/stylesheet/dxf.rb +79 -0
- data/lib/axlsx/stylesheet/fill.rb +35 -0
- data/lib/axlsx/stylesheet/font.rb +148 -0
- data/lib/axlsx/stylesheet/gradient_fill.rb +103 -0
- data/lib/axlsx/stylesheet/gradient_stop.rb +37 -0
- data/lib/axlsx/stylesheet/num_fmt.rb +79 -0
- data/lib/axlsx/stylesheet/pattern_fill.rb +73 -0
- data/lib/axlsx/stylesheet/styles.rb +420 -0
- data/lib/axlsx/stylesheet/table_style.rb +54 -0
- data/lib/axlsx/stylesheet/table_style_element.rb +79 -0
- data/lib/axlsx/stylesheet/table_styles.rb +46 -0
- data/lib/axlsx/stylesheet/xf.rb +147 -0
- data/lib/axlsx/util/accessors.rb +64 -0
- data/lib/axlsx/util/constants.rb +392 -0
- data/lib/axlsx/util/options_parser.rb +15 -0
- data/lib/axlsx/util/parser.rb +44 -0
- data/lib/axlsx/util/serialized_attributes.rb +79 -0
- data/lib/axlsx/util/simple_typed_list.rb +203 -0
- data/lib/axlsx/util/storage.rb +146 -0
- data/lib/axlsx/util/validators.rb +300 -0
- data/lib/axlsx/version.rb +5 -0
- data/lib/axlsx/workbook/defined_name.rb +129 -0
- data/lib/axlsx/workbook/defined_names.rb +21 -0
- data/lib/axlsx/workbook/shared_strings_table.rb +77 -0
- data/lib/axlsx/workbook/workbook.rb +354 -0
- data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -0
- data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -0
- data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +246 -0
- data/lib/axlsx/workbook/worksheet/break.rb +37 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +416 -0
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +144 -0
- data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
- data/lib/axlsx/workbook/worksheet/cfvos.rb +15 -0
- data/lib/axlsx/workbook/worksheet/col.rb +144 -0
- data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -0
- data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -0
- data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
- data/lib/axlsx/workbook/worksheet/comment.rb +92 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -0
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -0
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
- data/lib/axlsx/workbook/worksheet/data_bar.rb +131 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +244 -0
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
- data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -0
- data/lib/axlsx/workbook/worksheet/dimension.rb +64 -0
- data/lib/axlsx/workbook/worksheet/header_footer.rb +54 -0
- data/lib/axlsx/workbook/worksheet/icon_set.rb +83 -0
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
- data/lib/axlsx/workbook/worksheet/page_margins.rb +99 -0
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +242 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +141 -0
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +273 -0
- data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -0
- data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -0
- data/lib/axlsx/workbook/worksheet/print_options.rb +41 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +49 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/row.rb +172 -0
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
- data/lib/axlsx/workbook/worksheet/selection.rb +103 -0
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
- data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +60 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +69 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +120 -0
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -0
- data/lib/axlsx/workbook/worksheet/table.rb +102 -0
- data/lib/axlsx/workbook/worksheet/table_style_info.rb +51 -0
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +769 -0
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -0
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -0
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -0
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -0
- data/lib/schema/dc.xsd +118 -0
- data/lib/schema/dcmitype.xsd +52 -0
- data/lib/schema/dcterms.xsd +331 -0
- data/lib/schema/dml-chart.xsd +1499 -0
- data/lib/schema/dml-chartDrawing.xsd +146 -0
- data/lib/schema/dml-compatibility.xsd +14 -0
- data/lib/schema/dml-diagram.xsd +1091 -0
- data/lib/schema/dml-lockedCanvas.xsd +11 -0
- data/lib/schema/dml-main.xsd +3048 -0
- data/lib/schema/dml-picture.xsd +23 -0
- data/lib/schema/dml-spreadsheetDrawing.xsd +185 -0
- data/lib/schema/dml-wordprocessingDrawing.xsd +185 -0
- data/lib/schema/opc-contentTypes.xsd +42 -0
- data/lib/schema/opc-coreProperties.xsd +54 -0
- data/lib/schema/opc-digSig.xsd +49 -0
- data/lib/schema/opc-relationships.xsd +33 -0
- data/lib/schema/pml.xsd +1676 -0
- data/lib/schema/shared-additionalCharacteristics.xsd +28 -0
- data/lib/schema/shared-bibliography.xsd +144 -0
- data/lib/schema/shared-commonSimpleTypes.xsd +166 -0
- data/lib/schema/shared-customXmlDataProperties.xsd +25 -0
- data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -0
- data/lib/schema/shared-documentPropertiesCustom.xsd +59 -0
- data/lib/schema/shared-documentPropertiesExtended.xsd +56 -0
- data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -0
- data/lib/schema/shared-math.xsd +582 -0
- data/lib/schema/shared-relationshipReference.xsd +25 -0
- data/lib/schema/sml.xsd +4434 -0
- data/lib/schema/vml-main.xsd +569 -0
- data/lib/schema/vml-officeDrawing.xsd +509 -0
- data/lib/schema/vml-presentationDrawing.xsd +12 -0
- data/lib/schema/vml-spreadsheetDrawing.xsd +108 -0
- data/lib/schema/vml-wordprocessingDrawing.xsd +96 -0
- data/lib/schema/wml.xsd +3644 -0
- data/lib/schema/xml.xsd +116 -0
- data/test/benchmark.rb +72 -0
- data/test/content_type/tc_content_type.rb +76 -0
- data/test/content_type/tc_default.rb +16 -0
- data/test/content_type/tc_override.rb +14 -0
- data/test/doc_props/tc_app.rb +43 -0
- data/test/doc_props/tc_core.rb +42 -0
- data/test/drawing/tc_axes.rb +8 -0
- data/test/drawing/tc_axis.rb +85 -0
- data/test/drawing/tc_bar_3D_chart.rb +71 -0
- data/test/drawing/tc_bar_series.rb +37 -0
- data/test/drawing/tc_cat_axis.rb +31 -0
- data/test/drawing/tc_cat_axis_data.rb +27 -0
- data/test/drawing/tc_chart.rb +110 -0
- data/test/drawing/tc_d_lbls.rb +57 -0
- data/test/drawing/tc_data_source.rb +17 -0
- data/test/drawing/tc_drawing.rb +80 -0
- data/test/drawing/tc_graphic_frame.rb +27 -0
- data/test/drawing/tc_hyperlink.rb +64 -0
- data/test/drawing/tc_line_3d_chart.rb +47 -0
- data/test/drawing/tc_line_chart.rb +39 -0
- data/test/drawing/tc_line_series.rb +30 -0
- data/test/drawing/tc_marker.rb +44 -0
- data/test/drawing/tc_named_axis_data.rb +27 -0
- data/test/drawing/tc_num_data.rb +31 -0
- data/test/drawing/tc_num_val.rb +29 -0
- data/test/drawing/tc_one_cell_anchor.rb +66 -0
- data/test/drawing/tc_pic.rb +107 -0
- data/test/drawing/tc_picture_locking.rb +72 -0
- data/test/drawing/tc_pie_3D_chart.rb +28 -0
- data/test/drawing/tc_pie_series.rb +32 -0
- data/test/drawing/tc_scaling.rb +36 -0
- data/test/drawing/tc_scatter_chart.rb +48 -0
- data/test/drawing/tc_scatter_series.rb +21 -0
- data/test/drawing/tc_ser_axis.rb +31 -0
- data/test/drawing/tc_series.rb +23 -0
- data/test/drawing/tc_series_title.rb +33 -0
- data/test/drawing/tc_str_data.rb +18 -0
- data/test/drawing/tc_str_val.rb +21 -0
- data/test/drawing/tc_title.rb +49 -0
- data/test/drawing/tc_two_cell_anchor.rb +36 -0
- data/test/drawing/tc_val_axis.rb +24 -0
- data/test/drawing/tc_view_3D.rb +54 -0
- data/test/drawing/tc_vml_drawing.rb +25 -0
- data/test/drawing/tc_vml_shape.rb +106 -0
- data/test/profile.rb +24 -0
- data/test/rels/tc_relationship.rb +44 -0
- data/test/rels/tc_relationships.rb +37 -0
- data/test/stylesheet/tc_border.rb +37 -0
- data/test/stylesheet/tc_border_pr.rb +32 -0
- data/test/stylesheet/tc_cell_alignment.rb +81 -0
- data/test/stylesheet/tc_cell_protection.rb +29 -0
- data/test/stylesheet/tc_cell_style.rb +57 -0
- data/test/stylesheet/tc_color.rb +43 -0
- data/test/stylesheet/tc_dxf.rb +81 -0
- data/test/stylesheet/tc_fill.rb +18 -0
- data/test/stylesheet/tc_font.rb +121 -0
- data/test/stylesheet/tc_gradient_fill.rb +72 -0
- data/test/stylesheet/tc_gradient_stop.rb +31 -0
- data/test/stylesheet/tc_num_fmt.rb +30 -0
- data/test/stylesheet/tc_pattern_fill.rb +43 -0
- data/test/stylesheet/tc_styles.rb +235 -0
- data/test/stylesheet/tc_table_style.rb +44 -0
- data/test/stylesheet/tc_table_style_element.rb +45 -0
- data/test/stylesheet/tc_table_styles.rb +29 -0
- data/test/stylesheet/tc_xf.rb +120 -0
- data/test/tc_axlsx.rb +72 -0
- data/test/tc_helper.rb +10 -0
- data/test/tc_package.rb +227 -0
- data/test/util/tc_serialized_attributes.rb +19 -0
- data/test/util/tc_simple_typed_list.rb +78 -0
- data/test/util/tc_validators.rb +186 -0
- data/test/workbook/tc_defined_name.rb +41 -0
- data/test/workbook/tc_shared_strings_table.rb +44 -0
- data/test/workbook/tc_workbook.rb +125 -0
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -0
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -0
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -0
- data/test/workbook/worksheet/tc_break.rb +49 -0
- data/test/workbook/worksheet/tc_cell.rb +319 -0
- data/test/workbook/worksheet/tc_cfvo.rb +31 -0
- data/test/workbook/worksheet/tc_col.rb +78 -0
- data/test/workbook/worksheet/tc_color_scale.rb +58 -0
- data/test/workbook/worksheet/tc_comment.rb +72 -0
- data/test/workbook/worksheet/tc_comments.rb +57 -0
- data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -0
- data/test/workbook/worksheet/tc_data_bar.rb +46 -0
- data/test/workbook/worksheet/tc_data_validation.rb +265 -0
- data/test/workbook/worksheet/tc_date_time_converter.rb +124 -0
- data/test/workbook/worksheet/tc_header_footer.rb +151 -0
- data/test/workbook/worksheet/tc_icon_set.rb +45 -0
- data/test/workbook/worksheet/tc_page_margins.rb +97 -0
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -0
- data/test/workbook/worksheet/tc_page_setup.rb +143 -0
- data/test/workbook/worksheet/tc_pane.rb +54 -0
- data/test/workbook/worksheet/tc_pivot_table.rb +120 -0
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +54 -0
- data/test/workbook/worksheet/tc_print_options.rb +72 -0
- data/test/workbook/worksheet/tc_protected_range.rb +17 -0
- data/test/workbook/worksheet/tc_row.rb +117 -0
- data/test/workbook/worksheet/tc_selection.rb +55 -0
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -0
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -0
- data/test/workbook/worksheet/tc_sheet_pr.rb +27 -0
- data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
- data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
- data/test/workbook/worksheet/tc_table.rb +68 -0
- data/test/workbook/worksheet/tc_table_style_info.rb +53 -0
- data/test/workbook/worksheet/tc_worksheet.rb +538 -0
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
- metadata +546 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The Dxf class defines an incremental formatting record for use in Styles. The recommended way to manage styles for your workbook is with Styles#add_style
|
|
4
|
+
# @see Styles#add_style
|
|
5
|
+
class Dxf
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
|
|
9
|
+
# The order in which the child elements is put in the XML seems to
|
|
10
|
+
# be important for Excel
|
|
11
|
+
CHILD_ELEMENTS = [:font, :numFmt, :fill, :alignment, :border, :protection]
|
|
12
|
+
#does not support extList (ExtensionList)
|
|
13
|
+
|
|
14
|
+
# The cell alignment for this style
|
|
15
|
+
# @return [CellAlignment]
|
|
16
|
+
# @see CellAlignment
|
|
17
|
+
attr_reader :alignment
|
|
18
|
+
|
|
19
|
+
# The cell protection for this style
|
|
20
|
+
# @return [CellProtection]
|
|
21
|
+
# @see CellProtection
|
|
22
|
+
attr_reader :protection
|
|
23
|
+
|
|
24
|
+
# the child NumFmt to be used to this style
|
|
25
|
+
# @return [NumFmt]
|
|
26
|
+
attr_reader :numFmt
|
|
27
|
+
|
|
28
|
+
# the child font to be used for this style
|
|
29
|
+
# @return [Font]
|
|
30
|
+
attr_reader :font
|
|
31
|
+
|
|
32
|
+
# the child fill to be used in this style
|
|
33
|
+
# @return [Fill]
|
|
34
|
+
attr_reader :fill
|
|
35
|
+
|
|
36
|
+
# the border to be used in this style
|
|
37
|
+
# @return [Border]
|
|
38
|
+
attr_reader :border
|
|
39
|
+
|
|
40
|
+
# Creates a new Xf object
|
|
41
|
+
# @option options [Border] border
|
|
42
|
+
# @option options [NumFmt] numFmt
|
|
43
|
+
# @option options [Fill] fill
|
|
44
|
+
# @option options [Font] font
|
|
45
|
+
# @option options [CellAlignment] alignment
|
|
46
|
+
# @option options [CellProtection] protection
|
|
47
|
+
def initialize(options={})
|
|
48
|
+
parse_options options
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# @see Dxf#alignment
|
|
52
|
+
def alignment=(v) DataTypeValidator.validate "Dxf.alignment", CellAlignment, v; @alignment = v end
|
|
53
|
+
# @see protection
|
|
54
|
+
def protection=(v) DataTypeValidator.validate "Dxf.protection", CellProtection, v; @protection = v end
|
|
55
|
+
# @see numFmt
|
|
56
|
+
def numFmt=(v) DataTypeValidator.validate "Dxf.numFmt", NumFmt, v; @numFmt = v end
|
|
57
|
+
# @see font
|
|
58
|
+
def font=(v) DataTypeValidator.validate "Dxf.font", Font, v; @font = v end
|
|
59
|
+
# @see border
|
|
60
|
+
def border=(v) DataTypeValidator.validate "Dxf.border", Border, v; @border = v end
|
|
61
|
+
# @see fill
|
|
62
|
+
def fill=(v) DataTypeValidator.validate "Dxf.fill", Fill, v; @fill = v end
|
|
63
|
+
|
|
64
|
+
# Serializes the object
|
|
65
|
+
# @param [String] str
|
|
66
|
+
# @return [String]
|
|
67
|
+
def to_xml_string(str = '')
|
|
68
|
+
str << '<dxf>'
|
|
69
|
+
# Dxf elements have no attributes. All of the instance variables
|
|
70
|
+
# are child elements.
|
|
71
|
+
CHILD_ELEMENTS.each do |element|
|
|
72
|
+
self.send(element).to_xml_string(str) if self.send(element)
|
|
73
|
+
end
|
|
74
|
+
str << '</dxf>'
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The Fill is a formatting object that manages the background color, and pattern for cells.
|
|
4
|
+
# @note The recommended way to manage styles in your workbook is to use Styles#add_style.
|
|
5
|
+
# @see Styles#add_style
|
|
6
|
+
# @see PatternFill
|
|
7
|
+
# @see GradientFill
|
|
8
|
+
class Fill
|
|
9
|
+
|
|
10
|
+
# The type of fill
|
|
11
|
+
# @return [PatternFill, GradientFill]
|
|
12
|
+
attr_reader :fill_type
|
|
13
|
+
|
|
14
|
+
# Creates a new Fill object
|
|
15
|
+
# @param [PatternFill, GradientFill] fill_type
|
|
16
|
+
# @raise [ArgumentError] if the fill_type parameter is not a PatternFill or a GradientFill instance
|
|
17
|
+
def initialize(fill_type)
|
|
18
|
+
self.fill_type = fill_type
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Serializes the object
|
|
22
|
+
# @param [String] str
|
|
23
|
+
# @return [String]
|
|
24
|
+
def to_xml_string(str = '')
|
|
25
|
+
str << '<fill>'
|
|
26
|
+
@fill_type.to_xml_string(str)
|
|
27
|
+
str << '</fill>'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @see fill_type
|
|
31
|
+
def fill_type=(v) DataTypeValidator.validate "Fill.fill_type", [PatternFill, GradientFill], v; @fill_type = v; end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The Font class details a font instance for use in styling cells.
|
|
4
|
+
# @note The recommended way to manage fonts, and other styles is Styles#add_style
|
|
5
|
+
# @see Styles#add_style
|
|
6
|
+
class Font
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
|
|
9
|
+
# Creates a new Font
|
|
10
|
+
# @option options [String] name
|
|
11
|
+
# @option options [Integer] charset
|
|
12
|
+
# @option options [Integer] family
|
|
13
|
+
# @option options [Integer] family
|
|
14
|
+
# @option options [Boolean] b
|
|
15
|
+
# @option options [Boolean] i
|
|
16
|
+
# @option options [Boolean] u
|
|
17
|
+
# @option options [Boolean] strike
|
|
18
|
+
# @option options [Boolean] outline
|
|
19
|
+
# @option options [Boolean] shadow
|
|
20
|
+
# @option options [Boolean] condense
|
|
21
|
+
# @option options [Boolean] extend
|
|
22
|
+
# @option options [Color] color
|
|
23
|
+
# @option options [Integer] sz
|
|
24
|
+
def initialize(options={})
|
|
25
|
+
parse_options options
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# The name of the font
|
|
29
|
+
# @return [String]
|
|
30
|
+
attr_reader :name
|
|
31
|
+
|
|
32
|
+
# The charset of the font
|
|
33
|
+
# @return [Integer]
|
|
34
|
+
# @note
|
|
35
|
+
# The following values are defined in the OOXML specification and are OS dependant values
|
|
36
|
+
# 0 ANSI_CHARSET
|
|
37
|
+
# 1 DEFAULT_CHARSET
|
|
38
|
+
# 2 SYMBOL_CHARSET
|
|
39
|
+
# 77 MAC_CHARSET
|
|
40
|
+
# 128 SHIFTJIS_CHARSET
|
|
41
|
+
# 129 HANGUL_CHARSET
|
|
42
|
+
# 130 JOHAB_CHARSET
|
|
43
|
+
# 134 GB2312_CHARSET
|
|
44
|
+
# 136 CHINESEBIG5_CHARSET
|
|
45
|
+
# 161 GREEK_CHARSET
|
|
46
|
+
# 162 TURKISH_CHARSET
|
|
47
|
+
# 163 VIETNAMESE_CHARSET
|
|
48
|
+
# 177 HEBREW_CHARSET
|
|
49
|
+
# 178 ARABIC_CHARSET
|
|
50
|
+
# 186 BALTIC_CHARSET
|
|
51
|
+
# 204 RUSSIAN_CHARSET
|
|
52
|
+
# 222 THAI_CHARSET
|
|
53
|
+
# 238 EASTEUROPE_CHARSET
|
|
54
|
+
# 255 OEM_CHARSET
|
|
55
|
+
attr_reader :charset
|
|
56
|
+
|
|
57
|
+
# The font's family
|
|
58
|
+
# @note
|
|
59
|
+
# The following are defined OOXML specification
|
|
60
|
+
# 0 Not applicable.
|
|
61
|
+
# 1 Roman
|
|
62
|
+
# 2 Swiss
|
|
63
|
+
# 3 Modern
|
|
64
|
+
# 4 Script
|
|
65
|
+
# 5 Decorative
|
|
66
|
+
# 6..14 Reserved for future use
|
|
67
|
+
# @return [Integer]
|
|
68
|
+
attr_reader :family
|
|
69
|
+
|
|
70
|
+
# Indicates if the font should be rendered in *bold*
|
|
71
|
+
# @return [Boolean]
|
|
72
|
+
attr_reader :b
|
|
73
|
+
|
|
74
|
+
# Indicates if the font should be rendered italicized
|
|
75
|
+
# @return [Boolean]
|
|
76
|
+
attr_reader :i
|
|
77
|
+
|
|
78
|
+
# Indicates if the font should be rendered underlined
|
|
79
|
+
# @return [Boolean]
|
|
80
|
+
attr_reader :u
|
|
81
|
+
|
|
82
|
+
# Indicates if the font should be rendered with a strikthrough
|
|
83
|
+
# @return [Boolean]
|
|
84
|
+
attr_reader :strike
|
|
85
|
+
|
|
86
|
+
# Indicates if the font should be rendered with an outline
|
|
87
|
+
# @return [Boolean]
|
|
88
|
+
attr_reader :outline
|
|
89
|
+
|
|
90
|
+
# Indicates if the font should be rendered with a shadow
|
|
91
|
+
# @return [Boolean]
|
|
92
|
+
attr_reader :shadow
|
|
93
|
+
|
|
94
|
+
# Indicates if the font should be condensed
|
|
95
|
+
# @return [Boolean]
|
|
96
|
+
attr_reader :condense
|
|
97
|
+
|
|
98
|
+
# The font's extend property
|
|
99
|
+
# @return [Boolean]
|
|
100
|
+
attr_reader :extend
|
|
101
|
+
|
|
102
|
+
# The color of the font
|
|
103
|
+
# @return [Color]
|
|
104
|
+
attr_reader :color
|
|
105
|
+
|
|
106
|
+
# The size of the font.
|
|
107
|
+
# @return [Integer]
|
|
108
|
+
attr_reader :sz
|
|
109
|
+
|
|
110
|
+
# @see name
|
|
111
|
+
def name=(v) Axlsx::validate_string v; @name = v end
|
|
112
|
+
# @see charset
|
|
113
|
+
def charset=(v) Axlsx::validate_unsigned_int v; @charset = v end
|
|
114
|
+
# @see family
|
|
115
|
+
def family=(v) Axlsx::validate_unsigned_int v; @family = v end
|
|
116
|
+
# @see b
|
|
117
|
+
def b=(v) Axlsx::validate_boolean v; @b = v end
|
|
118
|
+
# @see i
|
|
119
|
+
def i=(v) Axlsx::validate_boolean v; @i = v end
|
|
120
|
+
# @see u
|
|
121
|
+
def u=(v) Axlsx::validate_boolean v; @u = v end
|
|
122
|
+
# @see strike
|
|
123
|
+
def strike=(v) Axlsx::validate_boolean v; @strike = v end
|
|
124
|
+
# @see outline
|
|
125
|
+
def outline=(v) Axlsx::validate_boolean v; @outline = v end
|
|
126
|
+
# @see shadow
|
|
127
|
+
def shadow=(v) Axlsx::validate_boolean v; @shadow = v end
|
|
128
|
+
# @see condense
|
|
129
|
+
def condense=(v) Axlsx::validate_boolean v; @condense = v end
|
|
130
|
+
# @see extend
|
|
131
|
+
def extend=(v) Axlsx::validate_boolean v; @extend = v end
|
|
132
|
+
# @see color
|
|
133
|
+
def color=(v) DataTypeValidator.validate "Font.color", Color, v; @color=v end
|
|
134
|
+
# @see sz
|
|
135
|
+
def sz=(v) Axlsx::validate_unsigned_int v; @sz=v end
|
|
136
|
+
|
|
137
|
+
# Serializes the object
|
|
138
|
+
# @param [String] str
|
|
139
|
+
# @return [String]
|
|
140
|
+
def to_xml_string(str = '')
|
|
141
|
+
str << '<font>'
|
|
142
|
+
instance_values.each do |k, v|
|
|
143
|
+
v.is_a?(Color) ? v.to_xml_string(str) : (str << '<' << k.to_s << ' val="' << v.to_s << '"/>')
|
|
144
|
+
end
|
|
145
|
+
str << '</font>'
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A GradientFill defines the color and positioning for gradiant cell fill.
|
|
4
|
+
# @see Open Office XML Part 1 §18.8.24
|
|
5
|
+
class GradientFill
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
include Axlsx::SerializedAttributes
|
|
9
|
+
|
|
10
|
+
# Creates a new GradientFill object
|
|
11
|
+
# @option options [Symbol] type
|
|
12
|
+
# @option options [Float] degree
|
|
13
|
+
# @option options [Float] left
|
|
14
|
+
# @option options [Float] right
|
|
15
|
+
# @option options [Float] top
|
|
16
|
+
# @option options [Float] bottom
|
|
17
|
+
def initialize(options={})
|
|
18
|
+
options[:type] ||= :linear
|
|
19
|
+
parse_options options
|
|
20
|
+
@stop = SimpleTypedList.new GradientStop
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
serializable_attributes :type, :degree, :left, :right, :top, :bottom
|
|
24
|
+
|
|
25
|
+
# The type of gradient.
|
|
26
|
+
# @note
|
|
27
|
+
# valid options are
|
|
28
|
+
# :linear
|
|
29
|
+
# :path
|
|
30
|
+
# @return [Symbol]
|
|
31
|
+
attr_reader :type
|
|
32
|
+
|
|
33
|
+
# Angle of the linear gradient
|
|
34
|
+
# @return [Float]
|
|
35
|
+
attr_reader :degree
|
|
36
|
+
|
|
37
|
+
# Percentage format left
|
|
38
|
+
# @return [Float]
|
|
39
|
+
attr_reader :left
|
|
40
|
+
|
|
41
|
+
# Percentage format right
|
|
42
|
+
# @return [Float]
|
|
43
|
+
attr_reader :right
|
|
44
|
+
|
|
45
|
+
# Percentage format top
|
|
46
|
+
# @return [Float]
|
|
47
|
+
attr_reader :top
|
|
48
|
+
|
|
49
|
+
# Percentage format bottom
|
|
50
|
+
# @return [Float]
|
|
51
|
+
attr_reader :bottom
|
|
52
|
+
|
|
53
|
+
# Collection of stop objects
|
|
54
|
+
# @return [SimpleTypedList]
|
|
55
|
+
attr_reader :stop
|
|
56
|
+
|
|
57
|
+
# @see type
|
|
58
|
+
def type=(v) Axlsx::validate_gradient_type v; @type = v end
|
|
59
|
+
|
|
60
|
+
# @see degree
|
|
61
|
+
def degree=(v) Axlsx::validate_float v; @degree = v end
|
|
62
|
+
|
|
63
|
+
# @see left
|
|
64
|
+
def left=(v)
|
|
65
|
+
validate_format_percentage "GradientFill.left", v
|
|
66
|
+
@left = v
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# @see right
|
|
70
|
+
def right=(v)
|
|
71
|
+
validate_format_percentage "GradientFill.right", v
|
|
72
|
+
@right = v
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# @see top
|
|
76
|
+
def top=(v)
|
|
77
|
+
validate_format_percentage "GradientFill.top", v
|
|
78
|
+
@top = v
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# @see bottom
|
|
82
|
+
def bottom=(v)
|
|
83
|
+
validate_format_percentage "GradientFill.bottom", v
|
|
84
|
+
@bottom = v
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# validates that the value provided is between 0.0 and 1.0
|
|
88
|
+
def validate_format_percentage(name, value)
|
|
89
|
+
DataTypeValidator.validate name, Float, value, lambda { |arg| arg >= 0.0 && arg <= 1.0}
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Serializes the object
|
|
93
|
+
# @param [String] str
|
|
94
|
+
# @return [String]
|
|
95
|
+
def to_xml_string(str = '')
|
|
96
|
+
str << '<gradientFill '
|
|
97
|
+
serialized_attributes str
|
|
98
|
+
str << '>'
|
|
99
|
+
@stop.each { |s| s.to_xml_string(str) }
|
|
100
|
+
str << '</gradientFill>'
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The GradientStop object represents a color point in a gradient.
|
|
4
|
+
# @see Open Office XML Part 1 §18.8.24
|
|
5
|
+
class GradientStop
|
|
6
|
+
# The color for this gradient stop
|
|
7
|
+
# @return [Color]
|
|
8
|
+
# @see Color
|
|
9
|
+
attr_reader :color
|
|
10
|
+
|
|
11
|
+
# The position of the color
|
|
12
|
+
# @return [Float]
|
|
13
|
+
attr_reader :position
|
|
14
|
+
|
|
15
|
+
# Creates a new GradientStop object
|
|
16
|
+
# @param [Color] color
|
|
17
|
+
# @param [Float] position
|
|
18
|
+
def initialize(color, position)
|
|
19
|
+
self.color = color
|
|
20
|
+
self.position = position
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# @see color
|
|
24
|
+
def color=(v) DataTypeValidator.validate "GradientStop.color", Color, v; @color=v end
|
|
25
|
+
# @see position
|
|
26
|
+
def position=(v) DataTypeValidator.validate "GradientStop.position", Float, v, lambda { |arg| arg >= 0 && arg <= 1}; @position = v end
|
|
27
|
+
|
|
28
|
+
# Serializes the object
|
|
29
|
+
# @param [String] str
|
|
30
|
+
# @return [String]
|
|
31
|
+
def to_xml_string(str = '')
|
|
32
|
+
str << '<stop position="' << position.to_s << '">'
|
|
33
|
+
self.color.to_xml_string(str)
|
|
34
|
+
str << '</stop>'
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A NumFmt object defines an identifier and formatting code for data in cells.
|
|
4
|
+
# @note The recommended way to manage styles is Styles#add_style
|
|
5
|
+
class NumFmt
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
include Axlsx::SerializedAttributes
|
|
9
|
+
|
|
10
|
+
# Creates a new NumFmt object
|
|
11
|
+
# @param [Hash] options Options for the number format object
|
|
12
|
+
# @option [Integer] numFmtId The predefined format id or new format id for this format
|
|
13
|
+
# @option [String] formatCode The format code for this number format
|
|
14
|
+
def initialize(options={})
|
|
15
|
+
@numFmtId = 0
|
|
16
|
+
@formatCode = ""
|
|
17
|
+
parse_options options
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
serializable_attributes :formatCode, :numFmtId
|
|
21
|
+
|
|
22
|
+
# @return [String] The formatting to use for this number format.
|
|
23
|
+
# @see http://support.microsoft.com/kb/264372
|
|
24
|
+
attr_reader :formatCode
|
|
25
|
+
|
|
26
|
+
# @return [Integer] An unsigned integer referencing a standard or custom number format.
|
|
27
|
+
# @note
|
|
28
|
+
# These are the known formats I can dig up. The constant NUM_FMT_PERCENT is 9, and uses the default % formatting. Axlsx also defines a few formats for date and time that are commonly used in asia as NUM_FMT_YYYYMMDD and NUM_FRM_YYYYMMDDHHMMSS.
|
|
29
|
+
# 1 0
|
|
30
|
+
# 2 0.00
|
|
31
|
+
# 3 #,##0
|
|
32
|
+
# 4 #,##0.00
|
|
33
|
+
# 5 $#,##0_);($#,##0)
|
|
34
|
+
# 6 $#,##0_);[Red]($#,##0)
|
|
35
|
+
# 7 $#,##0.00_);($#,##0.00)
|
|
36
|
+
# 8 $#,##0.00_);[Red]($#,##0.00)
|
|
37
|
+
# 9 0%
|
|
38
|
+
# 10 0.00%
|
|
39
|
+
# 11 0.00E+00
|
|
40
|
+
# 12 # ?/?
|
|
41
|
+
# 13 # ??/??
|
|
42
|
+
# 14 m/d/yyyy
|
|
43
|
+
# 15 d-mmm-yy
|
|
44
|
+
# 16 d-mmm
|
|
45
|
+
# 17 mmm-yy
|
|
46
|
+
# 18 h:mm AM/PM
|
|
47
|
+
# 19 h:mm:ss AM/PM
|
|
48
|
+
# 20 h:mm
|
|
49
|
+
# 21 h:mm:ss
|
|
50
|
+
# 22 m/d/yyyy h:mm
|
|
51
|
+
# 37 #,##0_);(#,##0)
|
|
52
|
+
# 38 #,##0_);[Red](#,##0)
|
|
53
|
+
# 39 #,##0.00_);(#,##0.00)
|
|
54
|
+
# 40 #,##0.00_);[Red](#,##0.00)
|
|
55
|
+
# 45 mm:ss
|
|
56
|
+
# 46 [h]:mm:ss
|
|
57
|
+
# 47 mm:ss.0
|
|
58
|
+
# 48 ##0.0E+0
|
|
59
|
+
# 49 @
|
|
60
|
+
# @see Axlsx
|
|
61
|
+
attr_reader :numFmtId
|
|
62
|
+
|
|
63
|
+
# @see numFmtId
|
|
64
|
+
def numFmtId=(v) Axlsx::validate_unsigned_int v; @numFmtId = v end
|
|
65
|
+
|
|
66
|
+
# @see formatCode
|
|
67
|
+
def formatCode=(v) Axlsx::validate_string v; @formatCode = v end
|
|
68
|
+
|
|
69
|
+
# Serializes the object
|
|
70
|
+
# @param [String] str
|
|
71
|
+
# @return [String]
|
|
72
|
+
def to_xml_string(str = '')
|
|
73
|
+
str << '<numFmt '
|
|
74
|
+
serialized_attributes str
|
|
75
|
+
str << '/>'
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
end
|
|
79
|
+
end
|