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,32 @@
|
|
1
|
+
module Axlsx
|
2
|
+
|
3
|
+
# This class extracts the common parts from Default and Override
|
4
|
+
class AbstractContentType
|
5
|
+
|
6
|
+
include Axlsx::OptionsParser
|
7
|
+
|
8
|
+
# Initializes an abstract content type
|
9
|
+
# @see Default, Override
|
10
|
+
def initialize(options={})
|
11
|
+
parse_options options
|
12
|
+
end
|
13
|
+
|
14
|
+
# The type of content.
|
15
|
+
# @return [String]
|
16
|
+
attr_reader :content_type
|
17
|
+
alias :ContentType :content_type
|
18
|
+
|
19
|
+
# The content type.
|
20
|
+
# @see Axlsx#validate_content_type
|
21
|
+
def content_type=(v) Axlsx::validate_content_type v; @content_type = v end
|
22
|
+
alias :ContentType= :content_type=
|
23
|
+
|
24
|
+
# Serialize the contenty type to xml
|
25
|
+
def to_xml_string(node_name = '', str = '')
|
26
|
+
str << "<#{node_name} "
|
27
|
+
str << instance_values.map { |key, value| Axlsx::camel(key) << '="' << value.to_s << '"' }.join(' ')
|
28
|
+
str << '/>'
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
require 'axlsx/content_type/abstract_content_type.rb'
|
4
|
+
require 'axlsx/content_type/default.rb'
|
5
|
+
require 'axlsx/content_type/override.rb'
|
6
|
+
|
7
|
+
# ContentTypes used in the package. This is automatically managed by the package package.
|
8
|
+
class ContentType < SimpleTypedList
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
super [Override, Default]
|
12
|
+
end
|
13
|
+
|
14
|
+
# Serializes the object
|
15
|
+
# @param [String] str
|
16
|
+
# @return [String]
|
17
|
+
def to_xml_string(str = '')
|
18
|
+
str << '<?xml version="1.0" encoding="UTF-8"?>'
|
19
|
+
str << ('<Types xmlns="' << XML_NS_T << '">')
|
20
|
+
each { |type| type.to_xml_string(str) }
|
21
|
+
str << '</Types>'
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
|
4
|
+
# An default content part. These parts are automatically created by for you based on the content of your package.
|
5
|
+
class Default < AbstractContentType
|
6
|
+
|
7
|
+
# The serialization node name for this class
|
8
|
+
NODE_NAME = 'Default'
|
9
|
+
|
10
|
+
# The extension of the content type.
|
11
|
+
# @return [String]
|
12
|
+
attr_reader :extension
|
13
|
+
alias :Extension :extension
|
14
|
+
|
15
|
+
# Sets the file extension for this content type.
|
16
|
+
def extension=(v) Axlsx::validate_string v; @extension = v end
|
17
|
+
alias :Extension= :extension=
|
18
|
+
|
19
|
+
# Serializes this object to xml
|
20
|
+
def to_xml_string(str ='')
|
21
|
+
super(NODE_NAME, str)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
|
2
|
+
# encoding: UTF-8
|
3
|
+
module Axlsx
|
4
|
+
|
5
|
+
# An override content part. These parts are automatically created by for you based on the content of your package.
|
6
|
+
class Override < AbstractContentType
|
7
|
+
|
8
|
+
# Serialization node name for this object
|
9
|
+
NODE_NAME = 'Override'
|
10
|
+
|
11
|
+
# The name and location of the part.
|
12
|
+
# @return [String]
|
13
|
+
attr_reader :part_name
|
14
|
+
alias :PartName :part_name
|
15
|
+
|
16
|
+
# The name and location of the part.
|
17
|
+
def part_name=(v) Axlsx::validate_string v; @part_name = v end
|
18
|
+
alias :PartName= :part_name=
|
19
|
+
|
20
|
+
# Serializes this object to xml
|
21
|
+
def to_xml_string(str = '')
|
22
|
+
super(NODE_NAME, str)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,235 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
|
4
|
+
# App represents the app.xml document. The attributes for this object are primarily managed by the application the end user uses to edit the document. None of the attributes are required to serialize a valid xlsx object.
|
5
|
+
# @see shared-documentPropertiesExtended.xsd
|
6
|
+
# @note Support is not implemented for the following complex types:
|
7
|
+
#
|
8
|
+
# HeadingPairs (VectorVariant),
|
9
|
+
# TitlesOfParts (VectorLpstr),
|
10
|
+
# HLinks (VectorVariant),
|
11
|
+
# DigSig (DigSigBlob)
|
12
|
+
class App
|
13
|
+
|
14
|
+
include Axlsx::OptionsParser
|
15
|
+
|
16
|
+
# Creates an App object
|
17
|
+
# @option options [String] template
|
18
|
+
# @option options [String] manager
|
19
|
+
# @option options [Integer] pages
|
20
|
+
# @option options [Integer] words
|
21
|
+
# @option options [Integer] characters
|
22
|
+
# @option options [String] presentation_format
|
23
|
+
# @option options [Integer] lines
|
24
|
+
# @option options [Integer] paragraphs
|
25
|
+
# @option options [Integer] slides
|
26
|
+
# @option options [Integer] notes
|
27
|
+
# @option options [Integer] total_time
|
28
|
+
# @option options [Integer] hidden_slides
|
29
|
+
# @option options [Integer] m_m_clips
|
30
|
+
# @option options [Boolean] scale_crop
|
31
|
+
# @option options [Boolean] links_up_to_date
|
32
|
+
# @option options [Integer] characters_with_spaces
|
33
|
+
# @option options [Boolean] share_doc
|
34
|
+
# @option options [String] hyperlink_base
|
35
|
+
# @option options [String] hyperlinks_changed
|
36
|
+
# @option options [String] application
|
37
|
+
# @option options [String] app_version
|
38
|
+
# @option options [Integer] doc_security
|
39
|
+
def initialize(options={})
|
40
|
+
parse_options options
|
41
|
+
end
|
42
|
+
|
43
|
+
# @return [String] The name of the document template.
|
44
|
+
attr_reader :template
|
45
|
+
alias :Template :template
|
46
|
+
|
47
|
+
# @return [String] The name of the manager for the document.
|
48
|
+
attr_reader :manager
|
49
|
+
alias :Manager :manager
|
50
|
+
|
51
|
+
# @return [String] The name of the company generating the document.
|
52
|
+
attr_reader :company
|
53
|
+
alias :Company :company
|
54
|
+
|
55
|
+
# @return [Integer] The number of pages in the document.
|
56
|
+
attr_reader :pages
|
57
|
+
alias :Pages :pages
|
58
|
+
|
59
|
+
# @return [Integer] The number of words in the document.
|
60
|
+
attr_reader :words
|
61
|
+
alias :Words :words
|
62
|
+
|
63
|
+
# @return [Integer] The number of characters in the document.
|
64
|
+
attr_reader :characters
|
65
|
+
alias :Characters :characters
|
66
|
+
|
67
|
+
# @return [String] The intended format of the presentation.
|
68
|
+
attr_reader :presentation_format
|
69
|
+
alias :PresentationFormat :presentation_format
|
70
|
+
|
71
|
+
# @return [Integer] The number of lines in the document.
|
72
|
+
attr_reader :lines
|
73
|
+
alias :Lines :lines
|
74
|
+
|
75
|
+
# @return [Integer] The number of paragraphs in the document
|
76
|
+
attr_reader :paragraphs
|
77
|
+
alias :Paragraphs :paragraphs
|
78
|
+
|
79
|
+
# @return [Intger] The number of slides in the document.
|
80
|
+
attr_reader :slides
|
81
|
+
alias :Slides :slides
|
82
|
+
|
83
|
+
# @return [Integer] The number of slides that have notes.
|
84
|
+
attr_reader :notes
|
85
|
+
alias :Notes :notes
|
86
|
+
|
87
|
+
# @return [Integer] The total amount of time spent editing.
|
88
|
+
attr_reader :total_time
|
89
|
+
alias :TotalTime :total_time
|
90
|
+
|
91
|
+
# @return [Integer] The number of hidden slides.
|
92
|
+
attr_reader :hidden_slides
|
93
|
+
alias :HiddenSlides :hidden_slides
|
94
|
+
|
95
|
+
# @return [Integer] The total number multimedia clips
|
96
|
+
attr_reader :m_m_clips
|
97
|
+
alias :MMClips :m_m_clips
|
98
|
+
|
99
|
+
# @return [Boolean] The display mode for the document thumbnail.
|
100
|
+
attr_reader :scale_crop
|
101
|
+
alias :ScaleCrop :scale_crop
|
102
|
+
|
103
|
+
# @return [Boolean] The links in the document are up to date.
|
104
|
+
attr_reader :links_up_to_date
|
105
|
+
alias :LinksUpToDate :links_up_to_date
|
106
|
+
|
107
|
+
# @return [Integer] The number of characters in the document including spaces.
|
108
|
+
attr_reader :characters_with_spaces
|
109
|
+
alias :CharactersWithSpaces :characters_with_spaces
|
110
|
+
|
111
|
+
# @return [Boolean] Indicates if the document is shared.
|
112
|
+
attr_reader :shared_doc
|
113
|
+
alias :SharedDoc :shared_doc
|
114
|
+
|
115
|
+
# @return [String] The base for hyper links in the document.
|
116
|
+
attr_reader :hyperlink_base
|
117
|
+
alias :HyperlinkBase :hyperlink_base
|
118
|
+
|
119
|
+
# @return [Boolean] Indicates that the hyper links in the document have been changed.
|
120
|
+
attr_reader :hyperlinks_changed
|
121
|
+
alias :HyperlinksChanged :hyperlinks_changed
|
122
|
+
|
123
|
+
# @return [String] The name of the application
|
124
|
+
attr_reader :application
|
125
|
+
alias :Applicatoin :application
|
126
|
+
|
127
|
+
# @return [String] The version of the application.
|
128
|
+
attr_reader :app_version
|
129
|
+
alias :AppVersion :app_version
|
130
|
+
|
131
|
+
# @return [Integer] Document security
|
132
|
+
attr_reader :doc_security
|
133
|
+
alias :DocSecurity :doc_security
|
134
|
+
|
135
|
+
# Sets the template property of your app.xml file
|
136
|
+
def template=(v) Axlsx::validate_string v; @template = v; end
|
137
|
+
alias :Template= :template=
|
138
|
+
|
139
|
+
# Sets the manager property of your app.xml file
|
140
|
+
def manager=(v) Axlsx::validate_string v; @manager = v; end
|
141
|
+
alias :Manager= :manager=
|
142
|
+
|
143
|
+
# Sets the company property of your app.xml file
|
144
|
+
def company=(v) Axlsx::validate_string v; @company = v; end
|
145
|
+
alias :Company= :company=
|
146
|
+
# Sets the pages property of your app.xml file
|
147
|
+
def pages=(v) Axlsx::validate_int v; @pages = v; end
|
148
|
+
|
149
|
+
# Sets the words property of your app.xml file
|
150
|
+
def words=(v) Axlsx::validate_int v; @words = v; end
|
151
|
+
alias :Words= :words=
|
152
|
+
|
153
|
+
# Sets the characters property of your app.xml file
|
154
|
+
def characters=(v) Axlsx::validate_int v; @characters = v; end
|
155
|
+
alias :Characters= :characters=
|
156
|
+
|
157
|
+
# Sets the presentation_format property of your app.xml file
|
158
|
+
def presentation_format=(v) Axlsx::validate_string v; @presentation_format = v; end
|
159
|
+
alias :PresentationFormat= :presentation_format=
|
160
|
+
|
161
|
+
# Sets the lines property of your app.xml file
|
162
|
+
def lines=(v) Axlsx::validate_int v; @lines = v; end
|
163
|
+
alias :Lines= :lines=
|
164
|
+
|
165
|
+
# Sets the paragraphs property of your app.xml file
|
166
|
+
def paragraphs=(v) Axlsx::validate_int v; @paragraphs = v; end
|
167
|
+
alias :Paragraphs= :paragraphs=
|
168
|
+
|
169
|
+
# sets the slides property of your app.xml file
|
170
|
+
def slides=(v) Axlsx::validate_int v; @slides = v; end
|
171
|
+
alias :Slides= :slides=
|
172
|
+
|
173
|
+
# sets the notes property of your app.xml file
|
174
|
+
def notes=(v) Axlsx::validate_int v; @notes = v; end
|
175
|
+
alias :Notes= :notes=
|
176
|
+
|
177
|
+
# Sets the total_time property of your app.xml file
|
178
|
+
def total_time=(v) Axlsx::validate_int v; @total_time = v; end
|
179
|
+
alias :TotalTime= :total_time=
|
180
|
+
|
181
|
+
# Sets the hidden_slides property of your app.xml file
|
182
|
+
def hidden_slides=(v) Axlsx::validate_int v; @hidden_slides = v; end
|
183
|
+
alias :HiddenSlides= :hidden_slides=
|
184
|
+
|
185
|
+
# Sets the m_m_clips property of your app.xml file
|
186
|
+
def m_m_clips=(v) Axlsx::validate_int v; @m_m_clips = v; end
|
187
|
+
alias :MMClips= :m_m_clips=
|
188
|
+
|
189
|
+
# Sets the scale_crop property of your app.xml file
|
190
|
+
def scale_crop=(v) Axlsx::validate_boolean v; @scale_crop = v; end
|
191
|
+
alias :ScaleCrop= :scale_crop=
|
192
|
+
|
193
|
+
# Sets the links_up_to_date property of your app.xml file
|
194
|
+
def links_up_to_date=(v) Axlsx::validate_boolean v; @links_up_to_date = v; end
|
195
|
+
alias :LinksUpToDate= :links_up_to_date=
|
196
|
+
|
197
|
+
# Sets the characters_with_spaces property of your app.xml file
|
198
|
+
def characters_with_spaces=(v) Axlsx::validate_int v; @characters_with_spaces = v; end
|
199
|
+
alias :CharactersWithSpaces= :characters_with_spaces=
|
200
|
+
|
201
|
+
# Sets the share_doc property of your app.xml file
|
202
|
+
def shared_doc=(v) Axlsx::validate_boolean v; @shared_doc = v; end
|
203
|
+
alias :SharedDoc= :shared_doc=
|
204
|
+
|
205
|
+
# Sets the hyperlink_base property of your app.xml file
|
206
|
+
def hyperlink_base=(v) Axlsx::validate_string v; @hyperlink_base = v; end
|
207
|
+
alias :HyperlinkBase= :hyperlink_base=
|
208
|
+
|
209
|
+
# Sets the HyperLinksChanged property of your app.xml file
|
210
|
+
def hyperlinks_changed=(v) Axlsx::validate_boolean v; @hyperlinks_changed = v; end
|
211
|
+
alias :HyperLinksChanged= :hyperlinks_changed=
|
212
|
+
|
213
|
+
# Sets the app_version property of your app.xml file
|
214
|
+
def app_version=(v) Axlsx::validate_string v; @app_version = v; end
|
215
|
+
alias :AppVersion= :app_version=
|
216
|
+
|
217
|
+
# Sets the doc_security property of your app.xml file
|
218
|
+
def doc_security=(v) Axlsx::validate_int v; @doc_security = v; end
|
219
|
+
alias :DocSecurity= :doc_security=
|
220
|
+
|
221
|
+
# Serialize the app.xml document
|
222
|
+
# @return [String]
|
223
|
+
def to_xml_string(str = '')
|
224
|
+
str << '<?xml version="1.0" encoding="UTF-8"?>'
|
225
|
+
str << ('<Properties xmlns="' << APP_NS << '" xmlns:vt="' << APP_NS_VT << '">')
|
226
|
+
instance_values.each do |key, value|
|
227
|
+
node_name = Axlsx.camel(key)
|
228
|
+
str << "<#{node_name}>#{value}</#{node_name}>"
|
229
|
+
end
|
230
|
+
str << '</Properties>'
|
231
|
+
end
|
232
|
+
|
233
|
+
end
|
234
|
+
|
235
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
|
4
|
+
# The core object for the package.
|
5
|
+
# @note Packages manage their own core object.
|
6
|
+
# @see Package#core
|
7
|
+
class Core
|
8
|
+
|
9
|
+
# Creates a new Core object.
|
10
|
+
# @option options [String] creator
|
11
|
+
# @option options [Time] created
|
12
|
+
def initialize(options={})
|
13
|
+
@creator = options[:creator] || 'axlsx'
|
14
|
+
@created = options[:created]
|
15
|
+
end
|
16
|
+
|
17
|
+
# The author of the document. By default this is 'axlsx'
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :creator
|
20
|
+
|
21
|
+
# Creation time of the document. If nil, the current time will be used.
|
22
|
+
attr_accessor :created
|
23
|
+
|
24
|
+
# serializes the core.xml document
|
25
|
+
# @return [String]
|
26
|
+
def to_xml_string(str = '')
|
27
|
+
str << '<?xml version="1.0" encoding="UTF-8"?>'
|
28
|
+
str << ('<cp:coreProperties xmlns:cp="' << CORE_NS << '" xmlns:dc="' << CORE_NS_DC << '" ')
|
29
|
+
str << ('xmlns:dcmitype="' << CORE_NS_DCMIT << '" xmlns:dcterms="' << CORE_NS_DCT << '" ')
|
30
|
+
str << ('xmlns:xsi="' << CORE_NS_XSI << '">')
|
31
|
+
str << ('<dc:creator>' << self.creator << '</dc:creator>')
|
32
|
+
str << ('<dcterms:created xsi:type="dcterms:W3CDTF">' << (created || Time.now).strftime('%Y-%m-%dT%H:%M:%S') << 'Z</dcterms:created>')
|
33
|
+
str << '<cp:revision>0</cp:revision>'
|
34
|
+
str << '</cp:coreProperties>'
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Axlsx
|
2
|
+
|
3
|
+
# An axis data source that can contain referenced or literal strings or numbers
|
4
|
+
# @note only string data types are supported - mainly because we have not implemented a chart type that requires a numerical axis value
|
5
|
+
class AxDataSource < NumDataSource
|
6
|
+
|
7
|
+
# creates a new NumDataSource object
|
8
|
+
# @option options [Array] data An array of Cells or Numeric objects
|
9
|
+
# @option options [Symbol] tag_name see tag_name
|
10
|
+
def initialize(options={})
|
11
|
+
@tag_name = :cat
|
12
|
+
@data_type = StrData
|
13
|
+
@ref_tag_name = :strRef
|
14
|
+
super(options)
|
15
|
+
end
|
16
|
+
|
17
|
+
# allowed element tag names for serialization
|
18
|
+
# @return [Array]
|
19
|
+
def self.allowed_tag_names
|
20
|
+
[:xVal, :cat]
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Axlsx
|
2
|
+
|
3
|
+
# The Axes class creates and manages axis information and
|
4
|
+
# serialization for charts.
|
5
|
+
class Axes
|
6
|
+
|
7
|
+
# @param [Hash] options options used to generate axis each key
|
8
|
+
# should be an axis name like :val_axis and its value should be the
|
9
|
+
# class of the axis type to construct. The :cat_axis, if there is one,
|
10
|
+
# must come first (we assume a Ruby 1.9+ Hash or an OrderedHash).
|
11
|
+
def initialize(options={})
|
12
|
+
raise(ArgumentError, "CatAxis must come first") if options.keys.include?(:cat_axis) && options.keys.first != :cat_axis
|
13
|
+
options.each do |name, axis_class|
|
14
|
+
add_axis(name, axis_class)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# [] provides assiciative access to a specic axis store in an axes
|
19
|
+
# instance.
|
20
|
+
# @return [Axis]
|
21
|
+
def [](name)
|
22
|
+
axes.assoc(name)[1]
|
23
|
+
end
|
24
|
+
|
25
|
+
# Serializes the object
|
26
|
+
# @param [String] str
|
27
|
+
# @param [Hash] options
|
28
|
+
# @option options ids
|
29
|
+
# If the ids option is specified only the axis identifier is
|
30
|
+
# serialized. Otherwise, each axis is serialized in full.
|
31
|
+
def to_xml_string(str = '', options = {})
|
32
|
+
if options[:ids]
|
33
|
+
# CatAxis must come first in the XML (for Microsoft Excel at least)
|
34
|
+
sorted = axes.sort_by { |name, axis| axis.kind_of?(CatAxis) ? 0 : 1 }
|
35
|
+
sorted.each { |axis| str << ('<c:axId val="' << axis[1].id.to_s << '"/>') }
|
36
|
+
else
|
37
|
+
axes.each { |axis| axis[1].to_xml_string(str) }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Adds an axis to the collection
|
42
|
+
# @param [Symbol] name The name of the axis
|
43
|
+
# @param [Axis] axis_class The axis class to generate
|
44
|
+
def add_axis(name, axis_class)
|
45
|
+
axis = axis_class.new
|
46
|
+
set_cross_axis(axis)
|
47
|
+
axes << [name, axis]
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def axes
|
53
|
+
@axes ||= []
|
54
|
+
end
|
55
|
+
|
56
|
+
def set_cross_axis(axis)
|
57
|
+
axes.first[1].cross_axis = axis if axes.size == 1
|
58
|
+
axis.cross_axis = axes.first[1] unless axes.empty?
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|