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,164 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
require 'axlsx/drawing/d_lbls.rb'
|
4
|
+
require 'axlsx/drawing/title.rb'
|
5
|
+
require 'axlsx/drawing/series_title.rb'
|
6
|
+
require 'axlsx/drawing/series.rb'
|
7
|
+
require 'axlsx/drawing/pie_series.rb'
|
8
|
+
require 'axlsx/drawing/bar_series.rb'
|
9
|
+
require 'axlsx/drawing/line_series.rb'
|
10
|
+
require 'axlsx/drawing/scatter_series.rb'
|
11
|
+
require 'axlsx/drawing/bubble_series.rb'
|
12
|
+
|
13
|
+
require 'axlsx/drawing/scaling.rb'
|
14
|
+
require 'axlsx/drawing/axis.rb'
|
15
|
+
|
16
|
+
require 'axlsx/drawing/str_val.rb'
|
17
|
+
require 'axlsx/drawing/num_val.rb'
|
18
|
+
require 'axlsx/drawing/str_data.rb'
|
19
|
+
require 'axlsx/drawing/num_data.rb'
|
20
|
+
require 'axlsx/drawing/num_data_source.rb'
|
21
|
+
require 'axlsx/drawing/ax_data_source.rb'
|
22
|
+
|
23
|
+
require 'axlsx/drawing/ser_axis.rb'
|
24
|
+
require 'axlsx/drawing/cat_axis.rb'
|
25
|
+
require 'axlsx/drawing/val_axis.rb'
|
26
|
+
require 'axlsx/drawing/axes.rb'
|
27
|
+
|
28
|
+
require 'axlsx/drawing/marker.rb'
|
29
|
+
|
30
|
+
require 'axlsx/drawing/one_cell_anchor.rb'
|
31
|
+
require 'axlsx/drawing/two_cell_anchor.rb'
|
32
|
+
require 'axlsx/drawing/graphic_frame.rb'
|
33
|
+
|
34
|
+
require 'axlsx/drawing/view_3D.rb'
|
35
|
+
require 'axlsx/drawing/chart.rb'
|
36
|
+
require 'axlsx/drawing/pie_3D_chart.rb'
|
37
|
+
require 'axlsx/drawing/bar_3D_chart.rb'
|
38
|
+
require 'axlsx/drawing/line_chart.rb'
|
39
|
+
require 'axlsx/drawing/line_3D_chart.rb'
|
40
|
+
require 'axlsx/drawing/scatter_chart.rb'
|
41
|
+
require 'axlsx/drawing/bubble_chart.rb'
|
42
|
+
|
43
|
+
require 'axlsx/drawing/picture_locking.rb'
|
44
|
+
require 'axlsx/drawing/pic.rb'
|
45
|
+
require 'axlsx/drawing/hyperlink.rb'
|
46
|
+
|
47
|
+
require 'axlsx/drawing/vml_drawing.rb'
|
48
|
+
require 'axlsx/drawing/vml_shape.rb'
|
49
|
+
|
50
|
+
# A Drawing is a canvas for charts and images. Each worksheet has a single drawing that manages anchors.
|
51
|
+
# The anchors reference the charts or images via graphical frames. This is not a trivial relationship so please do follow the advice in the note.
|
52
|
+
# @note The recommended way to manage drawings is to use the Worksheet.add_chart and Worksheet.add_image methods.
|
53
|
+
# @see Worksheet#add_chart
|
54
|
+
# @see Worksheet#add_image
|
55
|
+
# @see Chart
|
56
|
+
# see examples/example.rb for an example of how to create a chart.
|
57
|
+
class Drawing
|
58
|
+
|
59
|
+
# The worksheet that owns the drawing
|
60
|
+
# @return [Worksheet]
|
61
|
+
attr_reader :worksheet
|
62
|
+
|
63
|
+
# A collection of anchors for this drawing
|
64
|
+
# only TwoCellAnchors are supported in this version
|
65
|
+
# @return [SimpleTypedList]
|
66
|
+
attr_reader :anchors
|
67
|
+
|
68
|
+
# Creates a new Drawing object
|
69
|
+
# @param [Worksheet] worksheet The worksheet that owns this drawing
|
70
|
+
def initialize(worksheet)
|
71
|
+
DataTypeValidator.validate "Drawing.worksheet", Worksheet, worksheet
|
72
|
+
@worksheet = worksheet
|
73
|
+
@worksheet.workbook.drawings << self
|
74
|
+
@anchors = SimpleTypedList.new [TwoCellAnchor, OneCellAnchor]
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
# Adds an image to the chart If th end_at option is specified we create a two cell anchor. By default we use a one cell anchor.
|
79
|
+
# @note The recommended way to manage images is to use Worksheet.add_image. Please refer to that method for documentation.
|
80
|
+
# @see Worksheet#add_image
|
81
|
+
# @return [Pic]
|
82
|
+
def add_image(options={})
|
83
|
+
if options[:end_at]
|
84
|
+
TwoCellAnchor.new(self, options).add_pic(options)
|
85
|
+
else
|
86
|
+
OneCellAnchor.new(self, options)
|
87
|
+
end
|
88
|
+
@anchors.last.object
|
89
|
+
end
|
90
|
+
|
91
|
+
# Adds a chart to the drawing.
|
92
|
+
# @note The recommended way to manage charts is to use Worksheet.add_chart. Please refer to that method for documentation.
|
93
|
+
# @see Worksheet#add_chart
|
94
|
+
def add_chart(chart_type, options={})
|
95
|
+
TwoCellAnchor.new(self, options)
|
96
|
+
@anchors.last.add_chart(chart_type, options)
|
97
|
+
end
|
98
|
+
|
99
|
+
# An array of charts that are associated with this drawing's anchors
|
100
|
+
# @return [Array]
|
101
|
+
def charts
|
102
|
+
charts = @anchors.select { |a| a.object.is_a?(GraphicFrame) }
|
103
|
+
charts.map { |a| a.object.chart }
|
104
|
+
end
|
105
|
+
|
106
|
+
# An array of hyperlink objects associated with this drawings images
|
107
|
+
# @return [Array]
|
108
|
+
def hyperlinks
|
109
|
+
links = self.images.select { |a| a.hyperlink.is_a?(Hyperlink) }
|
110
|
+
links.map { |a| a.hyperlink }
|
111
|
+
end
|
112
|
+
|
113
|
+
# An array of image objects that are associated with this drawing's anchors
|
114
|
+
# @return [Array]
|
115
|
+
def images
|
116
|
+
images = @anchors.select { |a| a.object.is_a?(Pic) }
|
117
|
+
images.map { |a| a.object }
|
118
|
+
end
|
119
|
+
|
120
|
+
# The index of this drawing in the owning workbooks's drawings collection.
|
121
|
+
# @return [Integer]
|
122
|
+
def index
|
123
|
+
@worksheet.workbook.drawings.index(self)
|
124
|
+
end
|
125
|
+
|
126
|
+
# The part name for this drawing
|
127
|
+
# @return [String]
|
128
|
+
def pn
|
129
|
+
"#{DRAWING_PN % (index+1)}"
|
130
|
+
end
|
131
|
+
|
132
|
+
# The relational part name for this drawing
|
133
|
+
# #NOTE This should be rewritten to return an Axlsx::Relationship object.
|
134
|
+
# @return [String]
|
135
|
+
def rels_pn
|
136
|
+
"#{DRAWING_RELS_PN % (index+1)}"
|
137
|
+
end
|
138
|
+
|
139
|
+
# A list of objects this drawing holds.
|
140
|
+
# @return [Array]
|
141
|
+
def child_objects
|
142
|
+
charts + images + hyperlinks
|
143
|
+
end
|
144
|
+
|
145
|
+
# The drawing's relationships.
|
146
|
+
# @return [Relationships]
|
147
|
+
def relationships
|
148
|
+
r = Relationships.new
|
149
|
+
child_objects.each { |child| r << child.relationship }
|
150
|
+
r
|
151
|
+
end
|
152
|
+
|
153
|
+
# Serializes the object
|
154
|
+
# @param [String] str
|
155
|
+
# @return [String]
|
156
|
+
def to_xml_string(str = '')
|
157
|
+
str << '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
|
158
|
+
str << ('<xdr:wsDr xmlns:xdr="' << XML_NS_XDR << '" xmlns:a="' << XML_NS_A << '">')
|
159
|
+
anchors.each { |anchor| anchor.to_xml_string(str) }
|
160
|
+
str << '</xdr:wsDr>'
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
# A graphic frame defines a container for a chart object
|
4
|
+
# @note The recommended way to manage charts is Worksheet#add_chart
|
5
|
+
# @see Worksheet#add_chart
|
6
|
+
class GraphicFrame
|
7
|
+
|
8
|
+
# A reference to the chart object associated with this frame
|
9
|
+
# @return [Chart]
|
10
|
+
attr_reader :chart
|
11
|
+
|
12
|
+
# A anchor that holds this frame
|
13
|
+
# @return [TwoCellAnchor]
|
14
|
+
attr_reader :anchor
|
15
|
+
|
16
|
+
# Creates a new GraphicFrame object
|
17
|
+
# @param [TwoCellAnchor] anchor
|
18
|
+
# @param [Class] chart_type
|
19
|
+
def initialize(anchor, chart_type, options)
|
20
|
+
DataTypeValidator.validate "Drawing.chart_type", Chart, chart_type
|
21
|
+
@anchor = anchor
|
22
|
+
@chart = chart_type.new(self, options)
|
23
|
+
end
|
24
|
+
|
25
|
+
# The relationship id for this graphic frame.
|
26
|
+
# @return [String]
|
27
|
+
def rId
|
28
|
+
@anchor.drawing.relationships.for(chart).Id
|
29
|
+
end
|
30
|
+
|
31
|
+
# Serializes the object
|
32
|
+
# @param [String] str
|
33
|
+
# @return [String]
|
34
|
+
def to_xml_string(str = '')
|
35
|
+
# macro attribute should be optional!
|
36
|
+
str << '<xdr:graphicFrame>'
|
37
|
+
str << '<xdr:nvGraphicFramePr>'
|
38
|
+
str << ('<xdr:cNvPr id="' << @anchor.drawing.index.to_s << '" name="' << 'item_' << @anchor.drawing.index.to_s << '"/>')
|
39
|
+
str << '<xdr:cNvGraphicFramePr/>'
|
40
|
+
str << '</xdr:nvGraphicFramePr>'
|
41
|
+
str << '<xdr:xfrm>'
|
42
|
+
str << '<a:off x="0" y="0"/>'
|
43
|
+
str << '<a:ext cx="0" cy="0"/>'
|
44
|
+
str << '</xdr:xfrm>'
|
45
|
+
str << '<a:graphic>'
|
46
|
+
str << ('<a:graphicData uri="' << XML_NS_C << '">')
|
47
|
+
str << ('<c:chart xmlns:c="' << XML_NS_C << '" xmlns:r="' << XML_NS_R << '" r:id="' << rId << '"/>')
|
48
|
+
str << '</a:graphicData>'
|
49
|
+
str << '</a:graphic>'
|
50
|
+
str << '</xdr:graphicFrame>'
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
# a hyperlink object adds an action to an image when clicked so that when the image is clicked the link is fecthed.
|
4
|
+
# @note using the hyperlink option when calling add_image on a drawing object is the recommended way to manage hyperlinks
|
5
|
+
# @see {file:README} README
|
6
|
+
class Hyperlink
|
7
|
+
|
8
|
+
include Axlsx::SerializedAttributes
|
9
|
+
include Axlsx::OptionsParser
|
10
|
+
|
11
|
+
#Creates a hyperlink object
|
12
|
+
# parent must be a Pic for now, although I expect that other object support this tag and its cNvPr parent
|
13
|
+
# @param [Pic] parent
|
14
|
+
# @option options [String] tooltip message shown when hyperlinked object is hovered over with mouse.
|
15
|
+
# @option options [String] tgtFrame Target frame for opening hyperlink
|
16
|
+
# @option options [String] invalidUrl supposedly use to store the href when we know it is an invalid resource.
|
17
|
+
# @option options [String] href the target resource this hyperlink links to. This is actually stored on the relationship.
|
18
|
+
# @option options [String] action A string that can be used to perform specific actions. For excel please see this reference: http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
|
19
|
+
# @option options [Boolean] endSnd terminate any sound events when processing this link
|
20
|
+
# @option options [Boolean] history include this link in the list of visited links for the applications history.
|
21
|
+
# @option options [Boolean] highlightClick indicate that the link has already been visited.
|
22
|
+
def initialize(parent, options={})
|
23
|
+
DataTypeValidator.validate "Hyperlink.parent", [Pic], parent
|
24
|
+
@parent = parent
|
25
|
+
parse_options options
|
26
|
+
yield self if block_given?
|
27
|
+
end
|
28
|
+
|
29
|
+
serializable_attributes :invalid_url, :action, :end_snd, :highlight_click, :history, :tgt_frame, :tooltip
|
30
|
+
|
31
|
+
# The destination of the hyperlink stored in the drawing's relationships document.
|
32
|
+
# @return [String]
|
33
|
+
attr_accessor :href
|
34
|
+
|
35
|
+
# The spec says: Specifies the URL when it has been determined by the generating application that the URL is invalid. That is the generating application can still store the URL but it is known that this URL is not correct.
|
36
|
+
#
|
37
|
+
# What exactly that means is beyond me so if you ever use this, let me know!
|
38
|
+
# @return [String]
|
39
|
+
attr_accessor :invalid_url
|
40
|
+
alias :invalidUrl :invalid_url
|
41
|
+
alias :invalidUrl= :invalid_url=
|
42
|
+
|
43
|
+
#An action to take when the link is clicked. The specification says "This can be used to specify a slide to be navigated to or a script of code to be run." but in most cases you will not need to do anything with this. MS does reserve a few interesting strings. @see http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
|
44
|
+
# @return [String]
|
45
|
+
attr_accessor :action
|
46
|
+
|
47
|
+
# Specifies if all sound events should be terminated when this link is clicked.
|
48
|
+
# @return [Boolean]
|
49
|
+
attr_reader :end_snd
|
50
|
+
alias :endSnd :end_snd
|
51
|
+
|
52
|
+
# @see endSnd
|
53
|
+
# @param [Boolean] v The boolean value indicating the termination of playing sounds on click
|
54
|
+
# @return [Boolean]
|
55
|
+
def end_snd=(v) Axlsx::validate_boolean(v); @end_snd = v end
|
56
|
+
alias :endSnd= :end_snd=
|
57
|
+
|
58
|
+
# indicates that the link has already been clicked.
|
59
|
+
# @return [Boolean]
|
60
|
+
attr_reader :highlight_click
|
61
|
+
alias :highlightClick :highlight_click
|
62
|
+
|
63
|
+
# @see highlightClick
|
64
|
+
# @param [Boolean] v The value to assign
|
65
|
+
def highlight_click=(v) Axlsx::validate_boolean(v); @highlight_click = v end
|
66
|
+
alias :highlightClick= :highlight_click=
|
67
|
+
|
68
|
+
# From the specs: Specifies whether to add this URI to the history when navigating to it. This allows for the viewing of this presentation without the storing of history information on the viewing machine. If this attribute is omitted, then a value of 1 or true is assumed.
|
69
|
+
# @return [Boolean]
|
70
|
+
attr_reader :history
|
71
|
+
|
72
|
+
# @see history
|
73
|
+
# param [Boolean] v The value to assing
|
74
|
+
def history=(v) Axlsx::validate_boolean(v); @history = v end
|
75
|
+
|
76
|
+
# From the specs: Specifies the target frame that is to be used when opening this hyperlink. When the hyperlink is activated this attribute is used to determine if a new window is launched for viewing or if an existing one can be used. If this attribute is omitted, than a new window is opened.
|
77
|
+
# @return [String]
|
78
|
+
attr_accessor :tgt_frame
|
79
|
+
alias :tgtFrame :tgt_frame
|
80
|
+
alias :tgtFrame= :tgt_frame=
|
81
|
+
|
82
|
+
# Text to show when you mouse over the hyperlink. If you do not set this, the href property will be shown.
|
83
|
+
# @return [String]
|
84
|
+
attr_accessor :tooltip
|
85
|
+
|
86
|
+
# The relationship object for this hyperlink.
|
87
|
+
# @return [Relationship]
|
88
|
+
def relationship
|
89
|
+
Relationship.new(self, HYPERLINK_R, href, :target_mode => :External)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Serializes the object
|
93
|
+
# @param [String] str
|
94
|
+
# @return [String]
|
95
|
+
def to_xml_string(str = '')
|
96
|
+
serialized_tag 'a:hlinkClick', str, {:'r:id' => relationship.Id, :'xmlns:r' => XML_NS_R }
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
|
4
|
+
# The Line3DChart is a three 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::Line3DChart, :start_at=> [0,1], :end_at=>[0,6], :t#itle=>"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 Line3DChart < Axlsx::LineChart
|
23
|
+
|
24
|
+
# space between bar or column clusters, as a percentage of the bar or column width.
|
25
|
+
# @return [String]
|
26
|
+
attr_reader :gap_depth
|
27
|
+
alias :gapDepth :gap_depth
|
28
|
+
|
29
|
+
# validation regex for gap amount percent
|
30
|
+
GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
|
31
|
+
|
32
|
+
# the category axis
|
33
|
+
# @return [Axis]
|
34
|
+
def ser_axis
|
35
|
+
axes[:ser_axis]
|
36
|
+
end
|
37
|
+
alias :serAxis :ser_axis
|
38
|
+
|
39
|
+
# Creates a new line chart object
|
40
|
+
# @option options [String] gap_depth
|
41
|
+
# @see Chart
|
42
|
+
# @see lineChart
|
43
|
+
# @see View3D
|
44
|
+
def initialize(frame, options={})
|
45
|
+
@gap_depth = nil
|
46
|
+
@view_3D = View3D.new({:r_ang_ax=>1}.merge(options))
|
47
|
+
super(frame, options)
|
48
|
+
axes.add_axis :ser_axis, SerAxis
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
# @see gapDepth
|
53
|
+
def gap_depth=(v)
|
54
|
+
RegexValidator.validate "Line3DChart.gapWidth", GAP_AMOUNT_PERCENT, v
|
55
|
+
@gap_depth=(v)
|
56
|
+
end
|
57
|
+
alias :gapDepth= :gap_depth=
|
58
|
+
|
59
|
+
# Serializes the object
|
60
|
+
# @param [String] str
|
61
|
+
# @return [String]
|
62
|
+
def to_xml_string(str = '')
|
63
|
+
super(str) do
|
64
|
+
str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Axlsx
|
3
|
+
|
4
|
+
# The LineChart 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::LineChart, :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 LineChart < 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 = LineSeries
|
53
|
+
@d_lbls = nil
|
54
|
+
end
|
55
|
+
|
56
|
+
# @see grouping
|
57
|
+
def grouping=(v)
|
58
|
+
RestrictionValidator.validate "LineChart.grouping", [:percentStacked, :standard, :stacked], v
|
59
|
+
@grouping = v
|
60
|
+
end
|
61
|
+
|
62
|
+
# The node name to use in serialization. As LineChart 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. LineCharts 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
|