axlsx-alt 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.yardopts +9 -0
- data/.yardopts_guide +19 -0
- data/CHANGELOG.md +244 -0
- data/LICENSE +22 -0
- data/README.md +180 -0
- data/Rakefile +29 -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 +67 -0
- data/examples/example.rb +885 -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 +171 -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/area_chart.rb +99 -0
- data/lib/axlsx/drawing/area_series.rb +110 -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_chart.rb +143 -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 +276 -0
- data/lib/axlsx/drawing/d_lbls.rb +90 -0
- data/lib/axlsx/drawing/drawing.rb +167 -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 +99 -0
- data/lib/axlsx/drawing/pic.rb +211 -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 +97 -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 +358 -0
- data/lib/axlsx/rels/relationship.rb +137 -0
- data/lib/axlsx/rels/relationships.rb +32 -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 +400 -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/validators.rb +312 -0
- data/lib/axlsx/version.rb +3 -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 +379 -0
- data/lib/axlsx/workbook/workbook_view.rb +80 -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 +478 -0
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -0
- data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -0
- data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -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 +23 -0
- data/lib/axlsx/workbook/worksheet/comment.rb +90 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +97 -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 +37 -0
- data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -0
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -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 +34 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +756 -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_area_chart.rb +39 -0
- data/test/drawing/tc_area_series.rb +71 -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_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 +123 -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 +103 -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 +56 -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 +54 -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 +103 -0
- data/test/tc_helper.rb +12 -0
- data/test/tc_package.rb +245 -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 +59 -0
- data/test/workbook/tc_workbook.rb +160 -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 +387 -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 +135 -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 +67 -0
- data/test/workbook/worksheet/tc_table_style_info.rb +53 -0
- data/test/workbook/worksheet/tc_worksheet.rb +597 -0
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
- metadata +601 -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]
|
|
14
|
+
@created = options[:created]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# The author of the document. By default this is nil.
|
|
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,99 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# The AreaChart is a two dimentional line chart (who would have guessed?) that you can add to your worksheet.
|
|
5
|
+
# @example Creating a chart
|
|
6
|
+
# # This example creates a line in a single sheet.
|
|
7
|
+
# require "rubygems" # if that is your preferred way to manage gems!
|
|
8
|
+
# require "axlsx"
|
|
9
|
+
#
|
|
10
|
+
# p = Axlsx::Package.new
|
|
11
|
+
# ws = p.workbook.add_worksheet
|
|
12
|
+
# ws.add_row ["This is a chart with no data in the sheet"]
|
|
13
|
+
#
|
|
14
|
+
# chart = ws.add_chart(Axlsx::AreaChart, :start_at=> [0,1], :end_at=>[0,6], :title=>"Most Popular Pets")
|
|
15
|
+
# chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]
|
|
16
|
+
#
|
|
17
|
+
# @see Worksheet#add_chart
|
|
18
|
+
# @see Worksheet#add_row
|
|
19
|
+
# @see Chart#add_series
|
|
20
|
+
# @see Series
|
|
21
|
+
# @see Package#serialize
|
|
22
|
+
class AreaChart < Chart
|
|
23
|
+
|
|
24
|
+
# the category axis
|
|
25
|
+
# @return [CatAxis]
|
|
26
|
+
def cat_axis
|
|
27
|
+
axes[:cat_axis]
|
|
28
|
+
end
|
|
29
|
+
alias :catAxis :cat_axis
|
|
30
|
+
|
|
31
|
+
# the category axis
|
|
32
|
+
# @return [ValAxis]
|
|
33
|
+
def val_axis
|
|
34
|
+
axes[:val_axis]
|
|
35
|
+
end
|
|
36
|
+
alias :valAxis :val_axis
|
|
37
|
+
|
|
38
|
+
# must be one of [:percentStacked, :clustered, :standard, :stacked]
|
|
39
|
+
# @return [Symbol]
|
|
40
|
+
attr_reader :grouping
|
|
41
|
+
|
|
42
|
+
# Creates a new line chart object
|
|
43
|
+
# @param [GraphicFrame] frame The workbook that owns this chart.
|
|
44
|
+
# @option options [Cell, String] title
|
|
45
|
+
# @option options [Boolean] show_legend
|
|
46
|
+
# @option options [Symbol] grouping
|
|
47
|
+
# @see Chart
|
|
48
|
+
def initialize(frame, options={})
|
|
49
|
+
@vary_colors = false
|
|
50
|
+
@grouping = :standard
|
|
51
|
+
super(frame, options)
|
|
52
|
+
@series_type = AreaSeries
|
|
53
|
+
@d_lbls = nil
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @see grouping
|
|
57
|
+
def grouping=(v)
|
|
58
|
+
RestrictionValidator.validate "AreaChart.grouping", [:percentStacked, :standard, :stacked], v
|
|
59
|
+
@grouping = v
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# The node name to use in serialization. As AreaChart is used as the
|
|
63
|
+
# base class for Liine3DChart we need to be sure to serialize the
|
|
64
|
+
# chart based on the actual class type and not a fixed node name.
|
|
65
|
+
# @return [String]
|
|
66
|
+
def node_name
|
|
67
|
+
path = self.class.to_s
|
|
68
|
+
if i = path.rindex('::')
|
|
69
|
+
path = path[(i+2)..-1]
|
|
70
|
+
end
|
|
71
|
+
path[0] = path[0].chr.downcase
|
|
72
|
+
path
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Serializes the object
|
|
76
|
+
# @param [String] str
|
|
77
|
+
# @return [String]
|
|
78
|
+
def to_xml_string(str = '')
|
|
79
|
+
super(str) do
|
|
80
|
+
str << ("<c:" << node_name << ">")
|
|
81
|
+
str << ('<c:grouping val="' << grouping.to_s << '"/>')
|
|
82
|
+
str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
|
|
83
|
+
@series.each { |ser| ser.to_xml_string(str) }
|
|
84
|
+
@d_lbls.to_xml_string(str) if @d_lbls
|
|
85
|
+
yield if block_given?
|
|
86
|
+
axes.to_xml_string(str, :ids => true)
|
|
87
|
+
str << ("</c:" << node_name << ">")
|
|
88
|
+
axes.to_xml_string(str)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# The axes for this chart. AreaCharts have a category and value
|
|
93
|
+
# axis.
|
|
94
|
+
# @return [Axes]
|
|
95
|
+
def axes
|
|
96
|
+
@axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|