bonio-axlsx 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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 +258 -0
- data/Rakefile +30 -0
- data/examples/2010_comments.rb +17 -0
- data/examples/anchor_swapping.rb +28 -0
- data/examples/auto_filter.rb +25 -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 +89 -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 +875 -0
- data/examples/extractive.rb +45 -0
- data/examples/image1.jpeg +0 -0
- data/examples/ios_preview.rb +14 -0
- data/examples/merge_cells.rb +17 -0
- data/examples/no_grid_with_borders.rb +18 -0
- data/examples/page_setup.rb +11 -0
- data/examples/pivot_table.rb +39 -0
- data/examples/pivot_test.rb +63 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/split.rb +16 -0
- data/examples/styles.rb +66 -0
- data/examples/underline.rb +13 -0
- data/examples/wrap_text.rb +21 -0
- data/lib/axlsx.rb +168 -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 +190 -0
- data/lib/axlsx/drawing/bar_3D_chart.rb +151 -0
- data/lib/axlsx/drawing/bar_series.rb +82 -0
- data/lib/axlsx/drawing/bubble_chart.rb +59 -0
- data/lib/axlsx/drawing/bubble_series.rb +63 -0
- data/lib/axlsx/drawing/cat_axis.rb +85 -0
- data/lib/axlsx/drawing/chart.rb +274 -0
- data/lib/axlsx/drawing/d_lbls.rb +90 -0
- data/lib/axlsx/drawing/drawing.rb +164 -0
- data/lib/axlsx/drawing/graphic_frame.rb +54 -0
- data/lib/axlsx/drawing/hyperlink.rb +100 -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 +110 -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 +34 -0
- data/lib/axlsx/drawing/one_cell_anchor.rb +98 -0
- data/lib/axlsx/drawing/pic.rb +213 -0
- data/lib/axlsx/drawing/picture_locking.rb +42 -0
- data/lib/axlsx/drawing/pie_3D_chart.rb +47 -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 +98 -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 +34 -0
- data/lib/axlsx/drawing/title.rb +96 -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 +363 -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 +132 -0
- data/lib/axlsx/stylesheet/cell_protection.rb +41 -0
- data/lib/axlsx/stylesheet/cell_style.rb +72 -0
- data/lib/axlsx/stylesheet/color.rb +76 -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 +86 -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 +77 -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 +397 -0
- data/lib/axlsx/util/mime_type_utils.rb +11 -0
- data/lib/axlsx/util/options_parser.rb +16 -0
- data/lib/axlsx/util/parser.rb +44 -0
- data/lib/axlsx/util/serialized_attributes.rb +89 -0
- data/lib/axlsx/util/simple_typed_list.rb +179 -0
- data/lib/axlsx/util/storage.rb +146 -0
- data/lib/axlsx/util/string.rb +7 -0
- data/lib/axlsx/util/validators.rb +311 -0
- data/lib/axlsx/version.rb +5 -0
- data/lib/axlsx/workbook/defined_name.rb +128 -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 +375 -0
- data/lib/axlsx/workbook/workbook_view.rb +78 -0
- data/lib/axlsx/workbook/workbook_views.rb +22 -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 +244 -0
- data/lib/axlsx/workbook/worksheet/break.rb +35 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +475 -0
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +166 -0
- data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -0
- data/lib/axlsx/workbook/worksheet/cfvos.rb +15 -0
- data/lib/axlsx/workbook/worksheet/col.rb +141 -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 +91 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +82 -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 +129 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -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 +52 -0
- data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -0
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -0
- data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -0
- data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -0
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +139 -0
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +289 -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 +39 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/rich_text.rb +35 -0
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +254 -0
- data/lib/axlsx/workbook/worksheet/row.rb +161 -0
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
- data/lib/axlsx/workbook/worksheet/selection.rb +101 -0
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -0
- data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +60 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -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 +49 -0
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +799 -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 +112 -0
- data/test/drawing/tc_bar_3D_chart.rb +71 -0
- data/test/drawing/tc_bar_series.rb +37 -0
- data/test/drawing/tc_bubble_chart.rb +44 -0
- data/test/drawing/tc_bubble_series.rb +21 -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 +23 -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 +71 -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 +106 -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 +45 -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 +30 -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 +82 -0
- data/test/tc_helper.rb +10 -0
- data/test/tc_package.rb +233 -0
- data/test/util/tc_mime_type_utils.rb +13 -0
- data/test/util/tc_serialized_attributes.rb +19 -0
- data/test/util/tc_simple_typed_list.rb +77 -0
- data/test/util/tc_validators.rb +210 -0
- data/test/workbook/tc_defined_name.rb +49 -0
- data/test/workbook/tc_shared_strings_table.rb +58 -0
- data/test/workbook/tc_workbook.rb +145 -0
- data/test/workbook/tc_workbook_view.rb +50 -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 +373 -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_outline_pr.rb +19 -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 +140 -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_rich_text.rb +44 -0
- data/test/workbook/worksheet/tc_rich_text_run.rb +172 -0
- data/test/workbook/worksheet/tc_row.rb +122 -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 +49 -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 +594 -0
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
- metadata +582 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
# A single table style definition and is a collection for tableStyleElements
|
4
|
+
# @note Table are not supported in this version and only the defaults required for a valid workbook are created.
|
5
|
+
class TableStyle < SimpleTypedList
|
6
|
+
|
7
|
+
include Axlsx::OptionsParser
|
8
|
+
include Axlsx::SerializedAttributes
|
9
|
+
|
10
|
+
# creates a new TableStyle object
|
11
|
+
# @raise [ArgumentError] if name option is not provided.
|
12
|
+
# @param [String] name
|
13
|
+
# @option options [Boolean] pivot
|
14
|
+
# @option options [Boolean] table
|
15
|
+
def initialize(name, options={})
|
16
|
+
self.name = name
|
17
|
+
parse_options options
|
18
|
+
super TableStyleElement
|
19
|
+
end
|
20
|
+
|
21
|
+
serializable_attributes :name, :pivot, :table
|
22
|
+
|
23
|
+
# The name of this table style
|
24
|
+
# @return [string]
|
25
|
+
attr_reader :name
|
26
|
+
|
27
|
+
# indicates if this style should be applied to pivot tables
|
28
|
+
# @return [Boolean]
|
29
|
+
attr_reader :pivot
|
30
|
+
|
31
|
+
# indicates if this style should be applied to tables
|
32
|
+
# @return [Boolean]
|
33
|
+
attr_reader :table
|
34
|
+
|
35
|
+
# @see name
|
36
|
+
def name=(v) Axlsx::validate_string v; @name=v end
|
37
|
+
# @see pivot
|
38
|
+
def pivot=(v) Axlsx::validate_boolean v; @pivot=v end
|
39
|
+
# @see table
|
40
|
+
def table=(v) Axlsx::validate_boolean v; @table=v end
|
41
|
+
|
42
|
+
# Serializes the object
|
43
|
+
# @param [String] str
|
44
|
+
# @return [String]
|
45
|
+
def to_xml_string(str = '')
|
46
|
+
str << '<tableStyle '
|
47
|
+
serialized_attributes str, {:count => self.size}
|
48
|
+
str << '>'
|
49
|
+
each { |table_style_el| table_style_el.to_xml_string(str) }
|
50
|
+
str << '</tableStyle>'
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
# an element of style that belongs to a table style.
|
4
|
+
# @note tables and table styles are not supported in this version. This class exists in preparation for that support.
|
5
|
+
class TableStyleElement
|
6
|
+
|
7
|
+
include Axlsx::OptionsParser
|
8
|
+
include Axlsx::SerializedAttributes
|
9
|
+
|
10
|
+
# creates a new TableStyleElement object
|
11
|
+
# @option options [Symbol] type
|
12
|
+
# @option options [Integer] size
|
13
|
+
# @option options [Integer] dxfId
|
14
|
+
def initialize(options={})
|
15
|
+
parse_options options
|
16
|
+
end
|
17
|
+
|
18
|
+
serializable_attributes :type, :size, :dxfId
|
19
|
+
|
20
|
+
# The type of style element. The following type are allowed
|
21
|
+
# :wholeTable
|
22
|
+
# :headerRow
|
23
|
+
# :totalRow
|
24
|
+
# :firstColumn
|
25
|
+
# :lastColumn
|
26
|
+
# :firstRowStripe
|
27
|
+
# :secondRowStripe
|
28
|
+
# :firstColumnStripe
|
29
|
+
# :secondColumnStripe
|
30
|
+
# :firstHeaderCell
|
31
|
+
# :lastHeaderCell
|
32
|
+
# :firstTotalCell
|
33
|
+
# :lastTotalCell
|
34
|
+
# :firstSubtotalColumn
|
35
|
+
# :secondSubtotalColumn
|
36
|
+
# :thirdSubtotalColumn
|
37
|
+
# :firstSubtotalRow
|
38
|
+
# :secondSubtotalRow
|
39
|
+
# :thirdSubtotalRow
|
40
|
+
# :blankRow
|
41
|
+
# :firstColumnSubheading
|
42
|
+
# :secondColumnSubheading
|
43
|
+
# :thirdColumnSubheading
|
44
|
+
# :firstRowSubheading
|
45
|
+
# :secondRowSubheading
|
46
|
+
# :thirdRowSubheading
|
47
|
+
# :pageFieldLabels
|
48
|
+
# :pageFieldValues
|
49
|
+
# @return [Symbol]
|
50
|
+
attr_reader :type
|
51
|
+
|
52
|
+
# Number of rows or columns used in striping when the type is firstRowStripe, secondRowStripe, firstColumnStripe, or secondColumnStripe.
|
53
|
+
# @return [Integer]
|
54
|
+
attr_reader :size
|
55
|
+
|
56
|
+
# The dxfId this style element points to
|
57
|
+
# @return [Integer]
|
58
|
+
attr_reader :dxfId
|
59
|
+
|
60
|
+
# @see type
|
61
|
+
def type=(v) Axlsx::validate_table_element_type v; @type = v end
|
62
|
+
|
63
|
+
# @see size
|
64
|
+
def size=(v) Axlsx::validate_unsigned_int v; @size = v end
|
65
|
+
|
66
|
+
# @see dxfId
|
67
|
+
def dxfId=(v) Axlsx::validate_unsigned_int v; @dxfId = v end
|
68
|
+
|
69
|
+
# Serializes the object
|
70
|
+
# @param [String] str
|
71
|
+
# @return [String]
|
72
|
+
def to_xml_string(str = '')
|
73
|
+
serialized_tag('tableStyleElement', str)
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
# TableStyles represents a collection of style definitions for table styles and pivot table styles.
|
4
|
+
# @note Support for custom table styles does not exist in this version. Many of the classes required are defined in preparation for future release. Please do not attempt to add custom table styles.
|
5
|
+
class TableStyles < SimpleTypedList
|
6
|
+
|
7
|
+
include Axlsx::SerializedAttributes
|
8
|
+
|
9
|
+
# Creates a new TableStyles object that is a container for TableStyle objects
|
10
|
+
# @option options [String] defaultTableStyle
|
11
|
+
# @option options [String] defaultPivotStyle
|
12
|
+
def initialize(options={})
|
13
|
+
@defaultTableStyle = options[:defaultTableStyle] || "TableStyleMedium9"
|
14
|
+
@defaultPivotStyle = options[:defaultPivotStyle] || "PivotStyleLight16"
|
15
|
+
super TableStyle
|
16
|
+
end
|
17
|
+
|
18
|
+
serializable_attributes :defaultTableStyle, :defaultPivotStyle
|
19
|
+
|
20
|
+
# The default table style. The default value is 'TableStyleMedium9'
|
21
|
+
# @return [String]
|
22
|
+
attr_reader :defaultTableStyle
|
23
|
+
|
24
|
+
# The default pivot table style. The default value is 'PivotStyleLight6'
|
25
|
+
# @return [String]
|
26
|
+
attr_reader :defaultPivotStyle
|
27
|
+
|
28
|
+
# @see defaultTableStyle
|
29
|
+
def defaultTableStyle=(v) Axlsx::validate_string(v); @defaultTableStyle = v; end
|
30
|
+
# @see defaultPivotStyle
|
31
|
+
def defaultPivotStyle=(v) Axlsx::validate_string(v); @defaultPivotStyle = v; end
|
32
|
+
|
33
|
+
# Serializes the object
|
34
|
+
# @param [String] str
|
35
|
+
# @return [String]
|
36
|
+
def to_xml_string(str = '')
|
37
|
+
str << '<tableStyles '
|
38
|
+
serialized_attributes str, {:count => self.size }
|
39
|
+
str << '>'
|
40
|
+
each { |table_style| table_style.to_xml_string(str) }
|
41
|
+
str << '</tableStyles>'
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
# The Xf class defines a 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 Xf
|
6
|
+
#does not support extList (ExtensionList)
|
7
|
+
|
8
|
+
include Axlsx::SerializedAttributes
|
9
|
+
include Axlsx::OptionsParser
|
10
|
+
# Creates a new Xf object
|
11
|
+
# @option options [Integer] numFmtId
|
12
|
+
# @option options [Integer] fontId
|
13
|
+
# @option options [Integer] fillId
|
14
|
+
# @option options [Integer] borderId
|
15
|
+
# @option options [Integer] xfId
|
16
|
+
# @option options [Boolean] quotePrefix
|
17
|
+
# @option options [Boolean] pivotButton
|
18
|
+
# @option options [Boolean] applyNumberFormat
|
19
|
+
# @option options [Boolean] applyFont
|
20
|
+
# @option options [Boolean] applyFill
|
21
|
+
# @option options [Boolean] applyBorder
|
22
|
+
# @option options [Boolean] applyAlignment
|
23
|
+
# @option options [Boolean] applyProtection
|
24
|
+
# @option options [CellAlignment] alignment
|
25
|
+
# @option options [CellProtection] protection
|
26
|
+
def initialize(options={})
|
27
|
+
parse_options options
|
28
|
+
end
|
29
|
+
|
30
|
+
serializable_attributes :numFmtId, :fontId, :fillId, :borderId, :xfId, :quotePrefix,
|
31
|
+
:pivotButton, :applyNumberFormat, :applyFont, :applyFill, :applyBorder, :applyAlignment,
|
32
|
+
:applyProtection
|
33
|
+
|
34
|
+
# The cell alignment for this style
|
35
|
+
# @return [CellAlignment]
|
36
|
+
# @see CellAlignment
|
37
|
+
attr_reader :alignment
|
38
|
+
|
39
|
+
# The cell protection for this style
|
40
|
+
# @return [CellProtection]
|
41
|
+
# @see CellProtection
|
42
|
+
attr_reader :protection
|
43
|
+
|
44
|
+
# id of the numFmt to apply to this style
|
45
|
+
# @return [Integer]
|
46
|
+
attr_reader :numFmtId
|
47
|
+
|
48
|
+
# index (0 based) of the font to be used in this style
|
49
|
+
# @return [Integer]
|
50
|
+
attr_reader :fontId
|
51
|
+
|
52
|
+
# index (0 based) of the fill to be used in this style
|
53
|
+
# @return [Integer]
|
54
|
+
attr_reader :fillId
|
55
|
+
|
56
|
+
# index (0 based) of the border to be used in this style
|
57
|
+
# @return [Integer]
|
58
|
+
attr_reader :borderId
|
59
|
+
|
60
|
+
# index (0 based) of cellStylesXfs item to be used in this style. Only applies to cellXfs items
|
61
|
+
# @return [Integer]
|
62
|
+
attr_reader :xfId
|
63
|
+
|
64
|
+
# indecates if text should be prefixed by a single quote in the cell
|
65
|
+
# @return [Boolean]
|
66
|
+
attr_reader :quotePrefix
|
67
|
+
|
68
|
+
# indicates if the cell has a pivot table drop down button
|
69
|
+
# @return [Boolean]
|
70
|
+
attr_reader :pivotButton
|
71
|
+
|
72
|
+
# indicates if the numFmtId should be applied
|
73
|
+
# @return [Boolean]
|
74
|
+
attr_reader :applyNumberFormat
|
75
|
+
|
76
|
+
# indicates if the fontId should be applied
|
77
|
+
# @return [Boolean]
|
78
|
+
attr_reader :applyFont
|
79
|
+
|
80
|
+
# indicates if the fillId should be applied
|
81
|
+
# @return [Boolean]
|
82
|
+
attr_reader :applyFill
|
83
|
+
|
84
|
+
# indicates if the borderId should be applied
|
85
|
+
# @return [Boolean]
|
86
|
+
attr_reader :applyBorder
|
87
|
+
|
88
|
+
# Indicates if the alignment options should be applied
|
89
|
+
# @return [Boolean]
|
90
|
+
attr_reader :applyAlignment
|
91
|
+
|
92
|
+
# Indicates if the protection options should be applied
|
93
|
+
# @return [Boolean]
|
94
|
+
attr_reader :applyProtection
|
95
|
+
|
96
|
+
# @see Xf#alignment
|
97
|
+
def alignment=(v) DataTypeValidator.validate "Xf.alignment", CellAlignment, v; @alignment = v end
|
98
|
+
|
99
|
+
# @see protection
|
100
|
+
def protection=(v) DataTypeValidator.validate "Xf.protection", CellProtection, v; @protection = v end
|
101
|
+
|
102
|
+
# @see numFmtId
|
103
|
+
def numFmtId=(v) Axlsx::validate_unsigned_int v; @numFmtId = v end
|
104
|
+
|
105
|
+
# @see fontId
|
106
|
+
def fontId=(v) Axlsx::validate_unsigned_int v; @fontId = v end
|
107
|
+
# @see fillId
|
108
|
+
def fillId=(v) Axlsx::validate_unsigned_int v; @fillId = v end
|
109
|
+
# @see borderId
|
110
|
+
def borderId=(v) Axlsx::validate_unsigned_int v; @borderId = v end
|
111
|
+
# @see xfId
|
112
|
+
def xfId=(v) Axlsx::validate_unsigned_int v; @xfId = v end
|
113
|
+
# @see quotePrefix
|
114
|
+
def quotePrefix=(v) Axlsx::validate_boolean v; @quotePrefix = v end
|
115
|
+
# @see pivotButton
|
116
|
+
def pivotButton=(v) Axlsx::validate_boolean v; @pivotButton = v end
|
117
|
+
# @see applyNumberFormat
|
118
|
+
def applyNumberFormat=(v) Axlsx::validate_boolean v; @applyNumberFormat = v end
|
119
|
+
# @see applyFont
|
120
|
+
def applyFont=(v) Axlsx::validate_boolean v; @applyFont = v end
|
121
|
+
# @see applyFill
|
122
|
+
def applyFill=(v) Axlsx::validate_boolean v; @applyFill = v end
|
123
|
+
|
124
|
+
# @see applyBorder
|
125
|
+
def applyBorder=(v) Axlsx::validate_boolean v; @applyBorder = v end
|
126
|
+
|
127
|
+
# @see applyAlignment
|
128
|
+
def applyAlignment=(v) Axlsx::validate_boolean v; @applyAlignment = v end
|
129
|
+
|
130
|
+
# @see applyProtection
|
131
|
+
def applyProtection=(v) Axlsx::validate_boolean v; @applyProtection = v end
|
132
|
+
|
133
|
+
# Serializes the object
|
134
|
+
# @param [String] str
|
135
|
+
# @return [String]
|
136
|
+
def to_xml_string(str = '')
|
137
|
+
str << '<xf '
|
138
|
+
serialized_attributes str
|
139
|
+
str << '>'
|
140
|
+
alignment.to_xml_string(str) if self.alignment
|
141
|
+
protection.to_xml_string(str) if self.protection
|
142
|
+
str << '</xf>'
|
143
|
+
end
|
144
|
+
|
145
|
+
|
146
|
+
end
|
147
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Axlsx
|
2
|
+
# This module defines some of the more common validating attribute
|
3
|
+
# accessors that we use in Axlsx
|
4
|
+
#
|
5
|
+
# When this module is included in your class you can simply call
|
6
|
+
#
|
7
|
+
# string_attr_access :foo
|
8
|
+
#
|
9
|
+
# To generate a new, validating set of accessors for foo.
|
10
|
+
module Accessors
|
11
|
+
def self.included(base)
|
12
|
+
base.send :extend, ClassMethods
|
13
|
+
end
|
14
|
+
|
15
|
+
# Defines the class level xxx_attr_accessor methods
|
16
|
+
module ClassMethods
|
17
|
+
|
18
|
+
# Creates one or more string validated attr_accessors
|
19
|
+
# @param [Array] symbols An array of symbols representing the
|
20
|
+
# names of the attributes you will add to your class.
|
21
|
+
def string_attr_accessor(*symbols)
|
22
|
+
validated_attr_accessor(symbols, :validate_string)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
# Creates one or more usigned integer attr_accessors
|
27
|
+
# @param [Array] symbols An array of symbols representing the
|
28
|
+
# names of the attributes you will add to your class
|
29
|
+
def unsigned_int_attr_accessor(*symbols)
|
30
|
+
validated_attr_accessor(symbols, :validate_unsigned_int)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Creates one or more float (double?) attr_accessors
|
34
|
+
# @param [Array] symbols An array of symbols representing the
|
35
|
+
# names of the attributes you will add to your class
|
36
|
+
def float_attr_accessor(*symbols)
|
37
|
+
validated_attr_accessor(symbols, :validate_float)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Creates on or more boolean validated attr_accessors
|
41
|
+
# @param [Array] symbols An array of symbols representing the
|
42
|
+
# names of the attributes you will add to your class.
|
43
|
+
def boolean_attr_accessor(*symbols)
|
44
|
+
validated_attr_accessor(symbols, :validate_boolean)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Template for defining validated write accessors
|
48
|
+
SETTER = "def %s=(value) Axlsx::%s(value); @%s = value; end".freeze
|
49
|
+
|
50
|
+
# Creates the reader and writer access methods
|
51
|
+
# @param [Array] symbols The names of the attributes to create
|
52
|
+
# @param [String] validator The axlsx validation method to use when
|
53
|
+
# validating assignation.
|
54
|
+
# @see lib/axlsx/util/validators.rb
|
55
|
+
def validated_attr_accessor(symbols, validator)
|
56
|
+
symbols.each do |symbol|
|
57
|
+
attr_reader symbol
|
58
|
+
module_eval(SETTER % [symbol, validator, symbol], __FILE__, __LINE__)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
@@ -0,0 +1,397 @@
|
|
1
|
+
module Axlsx
|
2
|
+
|
3
|
+
# XML Encoding
|
4
|
+
ENCODING = "UTF-8".freeze
|
5
|
+
|
6
|
+
# spreadsheetML namespace
|
7
|
+
XML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main".freeze
|
8
|
+
|
9
|
+
# content-types namespace
|
10
|
+
XML_NS_T = "http://schemas.openxmlformats.org/package/2006/content-types".freeze
|
11
|
+
|
12
|
+
# extended-properties namespace
|
13
|
+
APP_NS = "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties".freeze
|
14
|
+
|
15
|
+
# doc props namespace
|
16
|
+
APP_NS_VT = "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes".freeze
|
17
|
+
|
18
|
+
# core properties namespace
|
19
|
+
CORE_NS = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties".freeze
|
20
|
+
|
21
|
+
# dc elements (core) namespace
|
22
|
+
CORE_NS_DC = "http://purl.org/dc/elements/1.1/".freeze
|
23
|
+
|
24
|
+
# dcmit (core) namespcace
|
25
|
+
CORE_NS_DCMIT = "http://purl.org/dc/dcmitype/".freeze
|
26
|
+
|
27
|
+
# dc terms namespace
|
28
|
+
CORE_NS_DCT = "http://purl.org/dc/terms/".freeze
|
29
|
+
|
30
|
+
# xml schema namespace
|
31
|
+
CORE_NS_XSI = "http://www.w3.org/2001/XMLSchema-instance".freeze
|
32
|
+
|
33
|
+
# Digital signature namespace
|
34
|
+
DIGITAL_SIGNATURE_NS = "http://schemas.openxmlformats.org/package/2006/digital-signature".freeze
|
35
|
+
|
36
|
+
# spreadsheet drawing namespace
|
37
|
+
XML_NS_XDR = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing".freeze
|
38
|
+
|
39
|
+
# drawing namespace
|
40
|
+
XML_NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main".freeze
|
41
|
+
|
42
|
+
# chart namespace
|
43
|
+
XML_NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart".freeze
|
44
|
+
|
45
|
+
# relationships namespace
|
46
|
+
XML_NS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships".freeze
|
47
|
+
|
48
|
+
# relationships name space
|
49
|
+
RELS_R = "http://schemas.openxmlformats.org/package/2006/relationships".freeze
|
50
|
+
|
51
|
+
# table rels namespace
|
52
|
+
TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table".freeze
|
53
|
+
|
54
|
+
# pivot table rels namespace
|
55
|
+
PIVOT_TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable".freeze
|
56
|
+
|
57
|
+
# pivot table cache definition namespace
|
58
|
+
PIVOT_TABLE_CACHE_DEFINITION_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition".freeze
|
59
|
+
|
60
|
+
# workbook rels namespace
|
61
|
+
WORKBOOK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument".freeze
|
62
|
+
|
63
|
+
# worksheet rels namespace
|
64
|
+
WORKSHEET_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet".freeze
|
65
|
+
|
66
|
+
# app rels namespace
|
67
|
+
APP_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties".freeze
|
68
|
+
|
69
|
+
# core rels namespace
|
70
|
+
CORE_R = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties".freeze
|
71
|
+
|
72
|
+
# digital signature rels namespace
|
73
|
+
DIGITAL_SIGNATURE_R = "http://schemas.openxmlformats.org/package/2006/relationships/digital- signature/signature".freeze
|
74
|
+
|
75
|
+
# styles rels namespace
|
76
|
+
STYLES_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles".freeze
|
77
|
+
|
78
|
+
# shared strings namespace
|
79
|
+
SHARED_STRINGS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings".freeze
|
80
|
+
|
81
|
+
# drawing rels namespace
|
82
|
+
DRAWING_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing".freeze
|
83
|
+
|
84
|
+
# chart rels namespace
|
85
|
+
CHART_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart".freeze
|
86
|
+
|
87
|
+
# image rels namespace
|
88
|
+
IMAGE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image".freeze
|
89
|
+
|
90
|
+
# hyperlink rels namespace
|
91
|
+
HYPERLINK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink".freeze
|
92
|
+
|
93
|
+
# comment rels namespace
|
94
|
+
COMMENT_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments".freeze
|
95
|
+
|
96
|
+
# comment relation for nil target
|
97
|
+
COMMENT_R_NULL = "http://purl.oclc.org/ooxml/officeDocument/relationships/comments".freeze
|
98
|
+
|
99
|
+
#vml drawing relation namespace
|
100
|
+
VML_DRAWING_R = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'
|
101
|
+
|
102
|
+
# VML Drawing content type
|
103
|
+
VML_DRAWING_CT = "application/vnd.openxmlformats-officedocument.vmlDrawing".freeze
|
104
|
+
|
105
|
+
# table content type
|
106
|
+
TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml".freeze
|
107
|
+
|
108
|
+
# pivot table content type
|
109
|
+
PIVOT_TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml".freeze
|
110
|
+
|
111
|
+
# pivot table cache definition content type
|
112
|
+
PIVOT_TABLE_CACHE_DEFINITION_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml".freeze
|
113
|
+
|
114
|
+
# workbook content type
|
115
|
+
WORKBOOK_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml".freeze
|
116
|
+
|
117
|
+
# app content type
|
118
|
+
APP_CT = "application/vnd.openxmlformats-officedocument.extended-properties+xml".freeze
|
119
|
+
|
120
|
+
# rels content type
|
121
|
+
RELS_CT = "application/vnd.openxmlformats-package.relationships+xml".freeze
|
122
|
+
|
123
|
+
# styles content type
|
124
|
+
STYLES_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml".freeze
|
125
|
+
|
126
|
+
# xml content type
|
127
|
+
XML_CT = "application/xml".freeze
|
128
|
+
|
129
|
+
# worksheet content type
|
130
|
+
WORKSHEET_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml".freeze
|
131
|
+
|
132
|
+
# shared strings content type
|
133
|
+
SHARED_STRINGS_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml".freeze
|
134
|
+
|
135
|
+
# core content type
|
136
|
+
CORE_CT = "application/vnd.openxmlformats-package.core-properties+xml".freeze
|
137
|
+
|
138
|
+
# digital signature xml content type
|
139
|
+
DIGITAL_SIGNATURE_XML_CT = "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml".freeze
|
140
|
+
|
141
|
+
# digital signature origin content type
|
142
|
+
DIGITAL_SIGNATURE_ORIGIN_CT = "application/vnd.openxmlformats-package.digital-signature-origin".freeze
|
143
|
+
|
144
|
+
# digital signature certificate content type
|
145
|
+
DIGITAL_SIGNATURE_CERTIFICATE_CT = "application/vnd.openxmlformats-package.digital-signature-certificate".freeze
|
146
|
+
|
147
|
+
# chart content type
|
148
|
+
CHART_CT = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml".freeze
|
149
|
+
|
150
|
+
# comments content type
|
151
|
+
COMMENT_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml".freeze
|
152
|
+
|
153
|
+
# jpeg content type
|
154
|
+
JPEG_CT = "image/jpeg".freeze
|
155
|
+
|
156
|
+
# gif content type
|
157
|
+
GIF_CT = "image/gif".freeze
|
158
|
+
|
159
|
+
# png content type
|
160
|
+
PNG_CT = "image/png".freeze
|
161
|
+
|
162
|
+
#drawing content type
|
163
|
+
DRAWING_CT = "application/vnd.openxmlformats-officedocument.drawing+xml".freeze
|
164
|
+
|
165
|
+
|
166
|
+
# xml content type extensions
|
167
|
+
XML_EX = "xml".freeze
|
168
|
+
|
169
|
+
# jpeg extension
|
170
|
+
JPEG_EX = "jpeg".freeze
|
171
|
+
|
172
|
+
# gif extension
|
173
|
+
GIF_EX = "gif".freeze
|
174
|
+
|
175
|
+
# png extension
|
176
|
+
PNG_EX = "png".freeze
|
177
|
+
|
178
|
+
# rels content type extension
|
179
|
+
RELS_EX = "rels".freeze
|
180
|
+
|
181
|
+
# workbook part
|
182
|
+
WORKBOOK_PN = "xl/workbook.xml".freeze
|
183
|
+
|
184
|
+
# styles part
|
185
|
+
STYLES_PN = "styles.xml".freeze
|
186
|
+
|
187
|
+
# shared_strings part
|
188
|
+
SHARED_STRINGS_PN = "sharedStrings.xml".freeze
|
189
|
+
|
190
|
+
# app part
|
191
|
+
APP_PN = "docProps/app.xml".freeze
|
192
|
+
|
193
|
+
# core part
|
194
|
+
CORE_PN = "docProps/core.xml".freeze
|
195
|
+
|
196
|
+
# content types part
|
197
|
+
CONTENT_TYPES_PN = "[Content_Types].xml".freeze
|
198
|
+
|
199
|
+
# rels part
|
200
|
+
RELS_PN = "_rels/.rels".freeze
|
201
|
+
|
202
|
+
# workbook rels part
|
203
|
+
WORKBOOK_RELS_PN = "xl/_rels/workbook.xml.rels".freeze
|
204
|
+
|
205
|
+
# worksheet part
|
206
|
+
WORKSHEET_PN = "worksheets/sheet%d.xml".freeze
|
207
|
+
|
208
|
+
# worksheet rels part
|
209
|
+
WORKSHEET_RELS_PN = "worksheets/_rels/sheet%d.xml.rels".freeze
|
210
|
+
|
211
|
+
# drawing part
|
212
|
+
DRAWING_PN = "drawings/drawing%d.xml".freeze
|
213
|
+
|
214
|
+
# drawing rels part
|
215
|
+
DRAWING_RELS_PN = "drawings/_rels/drawing%d.xml.rels".freeze
|
216
|
+
|
217
|
+
# vml drawing part
|
218
|
+
VML_DRAWING_PN = "drawings/vmlDrawing%d.vml".freeze
|
219
|
+
|
220
|
+
# drawing part
|
221
|
+
TABLE_PN = "tables/table%d.xml".freeze
|
222
|
+
|
223
|
+
# pivot table parts
|
224
|
+
PIVOT_TABLE_PN = "pivotTables/pivotTable%d.xml".freeze
|
225
|
+
|
226
|
+
# pivot table cache definition part name
|
227
|
+
PIVOT_TABLE_CACHE_DEFINITION_PN = "pivotCache/pivotCacheDefinition%d.xml".freeze
|
228
|
+
|
229
|
+
# pivot table rels parts
|
230
|
+
PIVOT_TABLE_RELS_PN = "pivotTables/_rels/pivotTable%d.xml.rels".freeze
|
231
|
+
|
232
|
+
# chart part
|
233
|
+
CHART_PN = "charts/chart%d.xml".freeze
|
234
|
+
|
235
|
+
# chart part
|
236
|
+
IMAGE_PN = "media/image%d.%s".freeze
|
237
|
+
|
238
|
+
# comment part
|
239
|
+
COMMENT_PN = "comments%d.xml".freeze
|
240
|
+
|
241
|
+
# location of schema files for validation
|
242
|
+
SCHEMA_BASE = (File.dirname(__FILE__)+'/../../schema/').freeze
|
243
|
+
|
244
|
+
# App validation schema
|
245
|
+
APP_XSD = (SCHEMA_BASE + "shared-documentPropertiesExtended.xsd").freeze
|
246
|
+
|
247
|
+
# core validation schema
|
248
|
+
CORE_XSD = (SCHEMA_BASE + "opc-coreProperties.xsd").freeze
|
249
|
+
|
250
|
+
# content types validation schema
|
251
|
+
CONTENT_TYPES_XSD = (SCHEMA_BASE + "opc-contentTypes.xsd").freeze
|
252
|
+
|
253
|
+
# rels validation schema
|
254
|
+
RELS_XSD = (SCHEMA_BASE + "opc-relationships.xsd").freeze
|
255
|
+
|
256
|
+
# spreadsheetML validation schema
|
257
|
+
SML_XSD = (SCHEMA_BASE + "sml.xsd").freeze
|
258
|
+
|
259
|
+
# drawing validation schema
|
260
|
+
DRAWING_XSD = (SCHEMA_BASE + "dml-spreadsheetDrawing.xsd").freeze
|
261
|
+
|
262
|
+
# number format id for pecentage formatting using the default formatting id.
|
263
|
+
NUM_FMT_PERCENT = 9
|
264
|
+
|
265
|
+
# number format id for date format like 2011/11/13
|
266
|
+
NUM_FMT_YYYYMMDD = 100
|
267
|
+
|
268
|
+
# number format id for time format the creates 2011/11/13 12:23:10
|
269
|
+
NUM_FMT_YYYYMMDDHHMMSS = 101
|
270
|
+
|
271
|
+
# cellXfs id for thin borders around the cell
|
272
|
+
STYLE_THIN_BORDER = 1
|
273
|
+
|
274
|
+
# cellXfs id for default date styling
|
275
|
+
STYLE_DATE = 2
|
276
|
+
|
277
|
+
# error messages RestrictionValidor
|
278
|
+
ERR_RESTRICTION = "Invalid Data: %s. %s must be one of %s.".freeze
|
279
|
+
|
280
|
+
# error message DataTypeValidator
|
281
|
+
ERR_TYPE = "Invalid Data %s for %s. must be %s.".freeze
|
282
|
+
|
283
|
+
# error message for RegexValidator
|
284
|
+
ERR_REGEX = "Invalid Data. %s does not match %s.".freeze
|
285
|
+
|
286
|
+
# error message for RangeValidator
|
287
|
+
ERR_RANGE = "Invalid Data. %s must be between %s and %s, (inclusive:%s) you gave: %s".freeze
|
288
|
+
|
289
|
+
# error message for sheets that use a name which is longer than 31 bytes
|
290
|
+
ERR_SHEET_NAME_TOO_LONG = "Your worksheet name '%s' is too long. Worksheet names must be 31 characters (bytes) or less".freeze
|
291
|
+
|
292
|
+
# error message for sheets that use a name which include invalid characters
|
293
|
+
ERR_SHEET_NAME_CHARACTER_FORBIDDEN = "Your worksheet name '%s' contains a character which is not allowed by MS Excel and will cause repair warnings. Please change the name of your sheet.".freeze
|
294
|
+
|
295
|
+
# error message for duplicate sheet names
|
296
|
+
ERR_DUPLICATE_SHEET_NAME = "There is already a worksheet in this workbook named '%s'. Please use a unique name".freeze
|
297
|
+
|
298
|
+
# error message when user does not provide color and or style options for border in Style#add_sytle
|
299
|
+
ERR_INVALID_BORDER_OPTIONS = "border hash must include both style and color. e.g. :border => { :color => 'FF000000', :style => :thin }. You provided: %s".freeze
|
300
|
+
|
301
|
+
# error message for invalid border id reference
|
302
|
+
ERR_INVALID_BORDER_ID = "The border id you specified (%s) does not exist. Please add a border with Style#add_style before referencing its index.".freeze
|
303
|
+
|
304
|
+
# error message for invalid angles
|
305
|
+
ERR_ANGLE = "Angles must be a value between -90 and 90. You provided: %s".freeze
|
306
|
+
|
307
|
+
# error message for non 'integerish' value
|
308
|
+
ERR_INTEGERISH = "You value must be, or be castable via to_i, an Integer. You provided %s".freeze
|
309
|
+
|
310
|
+
# Regex to match forbidden control characters
|
311
|
+
# The following will be automatically stripped from worksheets.
|
312
|
+
#
|
313
|
+
# x00 Null
|
314
|
+
# x01 Start Of Heading
|
315
|
+
# x02 Start Of Text
|
316
|
+
# x03End Of Text
|
317
|
+
# x04 End Of Transmission
|
318
|
+
# x05 Enquiry
|
319
|
+
# x06 Acknowledge
|
320
|
+
# x07 Bell
|
321
|
+
# x08 Backspace
|
322
|
+
# x0B Line Tabulation
|
323
|
+
# x0C Form Feed
|
324
|
+
# x0E Shift Out
|
325
|
+
# x0F Shift In
|
326
|
+
# x10 Data Link Escape
|
327
|
+
# x11 Device Control One
|
328
|
+
# x12 Device Control Two
|
329
|
+
# x13 Device Control Three
|
330
|
+
# x14 Device Control Four
|
331
|
+
# x15 Negative Acknowledge
|
332
|
+
# x16 Synchronous Idle
|
333
|
+
# x17 End Of Transmission Block
|
334
|
+
# x18 Cancel
|
335
|
+
# x19 End Of Medium
|
336
|
+
# x1A Substitute
|
337
|
+
# x1B Escape
|
338
|
+
# x1C Information Separator Four
|
339
|
+
# x1D Information Separator Three
|
340
|
+
# x1E Information Separator Two
|
341
|
+
# x1F Information Separator One
|
342
|
+
#
|
343
|
+
# The following are not dealt with.
|
344
|
+
# If you have this in your data, expect excel to blow up!
|
345
|
+
#
|
346
|
+
# x7F Delete
|
347
|
+
# x80 Control 0080
|
348
|
+
# x81 Control 0081
|
349
|
+
# x82 Break Permitted Here
|
350
|
+
# x83 No Break Here
|
351
|
+
# x84 Control 0084
|
352
|
+
# x85 Next Line (Nel)
|
353
|
+
# x86 Start Of Selected Area
|
354
|
+
# x87 End Of Selected Area
|
355
|
+
# x88 Character Tabulation Set
|
356
|
+
# x89 Character Tabulation With Justification
|
357
|
+
# x8A Line Tabulation Set
|
358
|
+
# x8B Partial Line Forward
|
359
|
+
# x8C Partial Line Backward
|
360
|
+
# x8D Reverse Line Feed
|
361
|
+
# x8E Single Shift Two
|
362
|
+
# x8F Single Shift Three
|
363
|
+
# x90 Device Control String
|
364
|
+
# x91 Private Use One
|
365
|
+
# x92 Private Use Two
|
366
|
+
# x93 Set Transmit State
|
367
|
+
# x94 Cancel Character
|
368
|
+
# x95 Message Waiting
|
369
|
+
# x96 Start Of Guarded Area
|
370
|
+
# x97 End Of Guarded Area
|
371
|
+
# x98 Start Of String
|
372
|
+
# x99 Control 0099
|
373
|
+
# x9A Single Character Introducer
|
374
|
+
# x9B Control Sequence Introducer
|
375
|
+
# x9C String Terminator
|
376
|
+
# x9D Operating System Command
|
377
|
+
# x9E Privacy Message
|
378
|
+
# x9F Application Program Command
|
379
|
+
#
|
380
|
+
# The following are allowed:
|
381
|
+
#
|
382
|
+
# x0A Line Feed (Lf)
|
383
|
+
# x0D Carriage Return (Cr)
|
384
|
+
# x09 Character Tabulation
|
385
|
+
# @see http://www.codetable.net/asciikeycodes
|
386
|
+
pattern = "\x0-\x08\x0B\x0C\x0E-\x1F"
|
387
|
+
pattern = pattern.respond_to?(:encode) ? pattern.encode('UTF-8') : pattern
|
388
|
+
|
389
|
+
# The regular expression used to remove control characters from worksheets
|
390
|
+
CONTROL_CHARS = pattern.freeze
|
391
|
+
|
392
|
+
ISO_8601_REGEX = /\A(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?\Z/.freeze
|
393
|
+
|
394
|
+
FLOAT_REGEX = /\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\Z/.freeze
|
395
|
+
|
396
|
+
NUMERIC_REGEX = /\A[+-]?\d+?\Z/.freeze
|
397
|
+
end
|