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,110 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A AreaSeries defines the title, data and labels for line charts
|
|
4
|
+
# @note The recommended way to manage series is to use Chart#add_series
|
|
5
|
+
# @see Worksheet#add_chart
|
|
6
|
+
# @see Chart#add_series
|
|
7
|
+
class AreaSeries < Series
|
|
8
|
+
|
|
9
|
+
# The data for this series.
|
|
10
|
+
# @return [ValAxisData]
|
|
11
|
+
attr_reader :data
|
|
12
|
+
|
|
13
|
+
# The labels for this series.
|
|
14
|
+
# @return [CatAxisData]
|
|
15
|
+
attr_reader :labels
|
|
16
|
+
|
|
17
|
+
# The fill color for this series.
|
|
18
|
+
# Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
|
|
19
|
+
# @return [String]
|
|
20
|
+
attr_reader :color
|
|
21
|
+
|
|
22
|
+
# show markers on values
|
|
23
|
+
# @return [Boolean]
|
|
24
|
+
attr_reader :show_marker
|
|
25
|
+
|
|
26
|
+
# custom marker symbol
|
|
27
|
+
# @return [String]
|
|
28
|
+
attr_reader :marker_symbol
|
|
29
|
+
|
|
30
|
+
# line smoothing on values
|
|
31
|
+
# @return [Boolean]
|
|
32
|
+
attr_reader :smooth
|
|
33
|
+
|
|
34
|
+
# Creates a new series
|
|
35
|
+
# @option options [Array, SimpleTypedList] data
|
|
36
|
+
# @option options [Array, SimpleTypedList] labels
|
|
37
|
+
# @param [Chart] chart
|
|
38
|
+
def initialize(chart, options={})
|
|
39
|
+
@show_marker = false
|
|
40
|
+
@marker_symbol = options[:marker_symbol] ? options[:marker_symbol] : :default
|
|
41
|
+
@smooth = false
|
|
42
|
+
@labels, @data = nil, nil
|
|
43
|
+
super(chart, options)
|
|
44
|
+
@labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
|
|
45
|
+
@data = NumDataSource.new(options) unless options[:data].nil?
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# @see color
|
|
49
|
+
def color=(v)
|
|
50
|
+
@color = v
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @see show_marker
|
|
54
|
+
def show_marker=(v)
|
|
55
|
+
Axlsx::validate_boolean(v)
|
|
56
|
+
@show_marker = v
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @see marker_symbol
|
|
60
|
+
def marker_symbol=(v)
|
|
61
|
+
Axlsx::validate_marker_symbol(v)
|
|
62
|
+
@marker_symbol = v
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @see smooth
|
|
66
|
+
def smooth=(v)
|
|
67
|
+
Axlsx::validate_boolean(v)
|
|
68
|
+
@smooth = v
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Serializes the object
|
|
72
|
+
# @param [String] str
|
|
73
|
+
# @return [String]
|
|
74
|
+
def to_xml_string(str = '')
|
|
75
|
+
super(str) do
|
|
76
|
+
if color
|
|
77
|
+
str << '<c:spPr><a:solidFill>'
|
|
78
|
+
str << ('<a:srgbClr val="' << color << '"/>')
|
|
79
|
+
str << '</a:solidFill>'
|
|
80
|
+
str << '<a:ln w="28800">'
|
|
81
|
+
str << '<a:solidFill>'
|
|
82
|
+
str << ('<a:srgbClr val="' << color << '"/>')
|
|
83
|
+
str << '</a:solidFill>'
|
|
84
|
+
str << '</a:ln>'
|
|
85
|
+
str << '<a:round/>'
|
|
86
|
+
str << '</c:spPr>'
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
if !@show_marker
|
|
90
|
+
str << '<c:marker><c:symbol val="none"/></c:marker>'
|
|
91
|
+
elsif @marker_symbol != :default
|
|
92
|
+
str << '<c:marker><c:symbol val="' + @marker_symbol.to_s + '"/></c:marker>'
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
@labels.to_xml_string(str) unless @labels.nil?
|
|
96
|
+
@data.to_xml_string(str) unless @data.nil?
|
|
97
|
+
str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
private
|
|
102
|
+
|
|
103
|
+
# assigns the data for this series
|
|
104
|
+
def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
|
|
105
|
+
|
|
106
|
+
# assigns the labels for this series
|
|
107
|
+
def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
|
|
108
|
+
|
|
109
|
+
end
|
|
110
|
+
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
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# the access class defines common properties and values for a chart axis.
|
|
5
|
+
class Axis
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
|
|
9
|
+
# Creates an Axis object
|
|
10
|
+
# @option options [Axis] cross_axis the perpendicular axis
|
|
11
|
+
# @option options [Symbol] ax_pos
|
|
12
|
+
# @option options [Symbol] crosses
|
|
13
|
+
# @option options [Symbol] tick_lbl_pos
|
|
14
|
+
# @raise [ArgumentError] If axi_id or cross_ax are not unsigned integers
|
|
15
|
+
def initialize(options={})
|
|
16
|
+
@id = rand(8 ** 8)
|
|
17
|
+
@format_code = "General"
|
|
18
|
+
@delete = @label_rotation = 0
|
|
19
|
+
@scaling = Scaling.new(:orientation=>:minMax)
|
|
20
|
+
@title = @color = nil
|
|
21
|
+
self.ax_pos = :b
|
|
22
|
+
self.tick_lbl_pos = :nextTo
|
|
23
|
+
self.format_code = "General"
|
|
24
|
+
self.crosses = :autoZero
|
|
25
|
+
self.gridlines = true
|
|
26
|
+
parse_options options
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# the fill color to use in the axis shape properties. This should be a 6 character long hex string
|
|
30
|
+
# e.g. FF0000 for red
|
|
31
|
+
# @return [String]
|
|
32
|
+
attr_reader :color
|
|
33
|
+
|
|
34
|
+
# the id of the axis.
|
|
35
|
+
# @return [Integer]
|
|
36
|
+
attr_reader :id
|
|
37
|
+
alias :axID :id
|
|
38
|
+
|
|
39
|
+
# The perpendicular axis
|
|
40
|
+
# @return [Integer]
|
|
41
|
+
attr_reader :cross_axis
|
|
42
|
+
alias :crossAx :cross_axis
|
|
43
|
+
|
|
44
|
+
# The scaling of the axis
|
|
45
|
+
# @see Scaling
|
|
46
|
+
# @return [Scaling]
|
|
47
|
+
attr_reader :scaling
|
|
48
|
+
|
|
49
|
+
# The position of the axis
|
|
50
|
+
# must be one of [:l, :r, :t, :b]
|
|
51
|
+
# @return [Symbol]
|
|
52
|
+
attr_reader :ax_pos
|
|
53
|
+
alias :axPos :ax_pos
|
|
54
|
+
|
|
55
|
+
# the position of the tick labels
|
|
56
|
+
# must be one of [:nextTo, :high, :low]
|
|
57
|
+
# @return [Symbol]
|
|
58
|
+
attr_reader :tick_lbl_pos
|
|
59
|
+
alias :tickLblPos :tick_lbl_pos
|
|
60
|
+
|
|
61
|
+
# The number format format code for this axis
|
|
62
|
+
# default :General
|
|
63
|
+
# @return [String]
|
|
64
|
+
attr_reader :format_code
|
|
65
|
+
|
|
66
|
+
# specifies how the perpendicular axis is crossed
|
|
67
|
+
# must be one of [:autoZero, :min, :max]
|
|
68
|
+
# @return [Symbol]
|
|
69
|
+
attr_reader :crosses
|
|
70
|
+
|
|
71
|
+
# specifies how the degree of label rotation
|
|
72
|
+
# @return [Integer]
|
|
73
|
+
attr_reader :label_rotation
|
|
74
|
+
|
|
75
|
+
# specifies if gridlines should be shown in the chart
|
|
76
|
+
# @return [Boolean]
|
|
77
|
+
attr_reader :gridlines
|
|
78
|
+
|
|
79
|
+
# specifies if gridlines should be shown in the chart
|
|
80
|
+
# @return [Boolean]
|
|
81
|
+
attr_reader :delete
|
|
82
|
+
|
|
83
|
+
# the title for the axis. This can be a cell or a fixed string.
|
|
84
|
+
attr_reader :title
|
|
85
|
+
|
|
86
|
+
# The color for this axis. This value is used when rendering the axis line in the chart.
|
|
87
|
+
# colors should be in 6 character rbg format
|
|
88
|
+
# @return [String] the rbg color assinged.
|
|
89
|
+
# @see color
|
|
90
|
+
def color=(color_rgb)
|
|
91
|
+
@color = color_rgb
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# The crossing axis for this axis
|
|
95
|
+
# @param [Axis] axis
|
|
96
|
+
def cross_axis=(axis)
|
|
97
|
+
DataTypeValidator.validate "#{self.class}.cross_axis", [Axis], axis
|
|
98
|
+
@cross_axis = axis
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# The position of the axis
|
|
102
|
+
# must be one of [:l, :r, :t, :b]
|
|
103
|
+
def ax_pos=(v) RestrictionValidator.validate "#{self.class}.ax_pos", [:l, :r, :b, :t], v; @ax_pos = v; end
|
|
104
|
+
alias :axPos= :ax_pos=
|
|
105
|
+
|
|
106
|
+
# the position of the tick labels
|
|
107
|
+
# must be one of [:nextTo, :high, :low1]
|
|
108
|
+
def tick_lbl_pos=(v) RestrictionValidator.validate "#{self.class}.tick_lbl_pos", [:nextTo, :high, :low, :none], v; @tick_lbl_pos = v; end
|
|
109
|
+
alias :tickLblPos= :tick_lbl_pos=
|
|
110
|
+
|
|
111
|
+
# The number format format code for this axis
|
|
112
|
+
# default :General
|
|
113
|
+
def format_code=(v) Axlsx::validate_string(v); @format_code = v; end
|
|
114
|
+
|
|
115
|
+
# Specify if gridlines should be shown for this axis
|
|
116
|
+
# default true
|
|
117
|
+
def gridlines=(v) Axlsx::validate_boolean(v); @gridlines = v; end
|
|
118
|
+
|
|
119
|
+
# Specify if axis should be removed from the chart
|
|
120
|
+
# default false
|
|
121
|
+
def delete=(v) Axlsx::validate_boolean(v); @delete = v; end
|
|
122
|
+
|
|
123
|
+
# specifies how the perpendicular axis is crossed
|
|
124
|
+
# must be one of [:autoZero, :min, :max]
|
|
125
|
+
def crosses=(v) RestrictionValidator.validate "#{self.class}.crosses", [:autoZero, :min, :max], v; @crosses = v; end
|
|
126
|
+
|
|
127
|
+
# Specify the degree of label rotation to apply to labels
|
|
128
|
+
# default true
|
|
129
|
+
def label_rotation=(v)
|
|
130
|
+
Axlsx::validate_int(v)
|
|
131
|
+
adjusted = v.to_i * 60000
|
|
132
|
+
Axlsx::validate_angle(adjusted)
|
|
133
|
+
@label_rotation = adjusted
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# The title object for the chart.
|
|
137
|
+
# @param [String, Cell] v
|
|
138
|
+
# @return [Title]
|
|
139
|
+
def title=(v)
|
|
140
|
+
DataTypeValidator.validate "#{self.class}.title", [String, Cell], v
|
|
141
|
+
@title ||= Title.new
|
|
142
|
+
if v.is_a?(String)
|
|
143
|
+
@title.text = v
|
|
144
|
+
elsif v.is_a?(Cell)
|
|
145
|
+
@title.cell = v
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Serializes the object
|
|
150
|
+
# @param [String] str
|
|
151
|
+
# @return [String]
|
|
152
|
+
def to_xml_string(str = '')
|
|
153
|
+
str << ('<c:axId val="' << @id.to_s << '"/>')
|
|
154
|
+
@scaling.to_xml_string str
|
|
155
|
+
str << ('<c:delete val="' << @delete.to_s << '"/>')
|
|
156
|
+
str << ('<c:axPos val="' << @ax_pos.to_s << '"/>')
|
|
157
|
+
str << '<c:majorGridlines>'
|
|
158
|
+
# TODO shape properties need to be extracted into a class
|
|
159
|
+
if gridlines == false
|
|
160
|
+
str << '<c:spPr>'
|
|
161
|
+
str << '<a:ln>'
|
|
162
|
+
str << '<a:noFill/>'
|
|
163
|
+
str << '</a:ln>'
|
|
164
|
+
str << '</c:spPr>'
|
|
165
|
+
end
|
|
166
|
+
str << '</c:majorGridlines>'
|
|
167
|
+
@title.to_xml_string(str) unless @title == nil
|
|
168
|
+
# Need to set sourceLinked to 0 if we're setting a format code on this row
|
|
169
|
+
# otherwise it will never take, as it will always prefer the 'General' formatting
|
|
170
|
+
# of the cells themselves
|
|
171
|
+
str << ('<c:numFmt formatCode="' << @format_code << '" sourceLinked="' << (@format_code.eql?('General') ? '1' : '0') << '"/>')
|
|
172
|
+
str << '<c:majorTickMark val="none"/>'
|
|
173
|
+
str << '<c:minorTickMark val="none"/>'
|
|
174
|
+
str << ('<c:tickLblPos val="' << @tick_lbl_pos.to_s << '"/>')
|
|
175
|
+
# TODO - this is also being used for series colors
|
|
176
|
+
# time to extract this into a class spPr - Shape Properties
|
|
177
|
+
if @color
|
|
178
|
+
str << '<c:spPr><a:ln><a:solidFill>'
|
|
179
|
+
str << ('<a:srgbClr val="' << @color << '"/>')
|
|
180
|
+
str << '</a:solidFill></a:ln></c:spPr>'
|
|
181
|
+
end
|
|
182
|
+
# some potential value in implementing this in full. Very detailed!
|
|
183
|
+
str << ('<c:txPr><a:bodyPr rot="' << @label_rotation.to_s << '"/><a:lstStyle/><a:p><a:pPr><a:defRPr/></a:pPr><a:endParaRPr/></a:p></c:txPr>')
|
|
184
|
+
str << ('<c:crossAx val="' << @cross_axis.id.to_s << '"/>')
|
|
185
|
+
str << ('<c:crosses val="' << @crosses.to_s << '"/>')
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
end
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# The Bar3DChart is a three dimentional barchart (who would have guessed?) that you can add to your worksheet.
|
|
5
|
+
# @see Worksheet#add_chart
|
|
6
|
+
# @see Chart#add_series
|
|
7
|
+
# @see Package#serialize
|
|
8
|
+
# @see README for an example
|
|
9
|
+
class Bar3DChart < Chart
|
|
10
|
+
|
|
11
|
+
# the category axis
|
|
12
|
+
# @return [CatAxis]
|
|
13
|
+
def cat_axis
|
|
14
|
+
axes[:cat_axis]
|
|
15
|
+
end
|
|
16
|
+
alias :catAxis :cat_axis
|
|
17
|
+
|
|
18
|
+
# the value axis
|
|
19
|
+
# @return [ValAxis]
|
|
20
|
+
def val_axis
|
|
21
|
+
axes[:val_axis]
|
|
22
|
+
end
|
|
23
|
+
alias :valAxis :val_axis
|
|
24
|
+
|
|
25
|
+
# The direction of the bars in the chart
|
|
26
|
+
# must be one of [:bar, :col]
|
|
27
|
+
# @return [Symbol]
|
|
28
|
+
def bar_dir
|
|
29
|
+
@bar_dir ||= :bar
|
|
30
|
+
end
|
|
31
|
+
alias :barDir :bar_dir
|
|
32
|
+
|
|
33
|
+
# space between bar or column clusters, as a percentage of the bar or column width.
|
|
34
|
+
# @return [String]
|
|
35
|
+
attr_reader :gap_depth
|
|
36
|
+
alias :gapDepth :gap_depth
|
|
37
|
+
|
|
38
|
+
# space between bar or column clusters, as a percentage of the bar or column width.
|
|
39
|
+
# @return [String]
|
|
40
|
+
def gap_width
|
|
41
|
+
@gap_width ||= 150
|
|
42
|
+
end
|
|
43
|
+
alias :gapWidth :gap_width
|
|
44
|
+
|
|
45
|
+
#grouping for a column, line, or area chart.
|
|
46
|
+
# must be one of [:percentStacked, :clustered, :standard, :stacked]
|
|
47
|
+
# @return [Symbol]
|
|
48
|
+
def grouping
|
|
49
|
+
@grouping ||= :clustered
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# The shabe of the bars or columns
|
|
53
|
+
# must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
|
|
54
|
+
# @return [Symbol]
|
|
55
|
+
def shape
|
|
56
|
+
@shape ||= :box
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# validation regex for gap amount percent
|
|
60
|
+
GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
|
|
61
|
+
|
|
62
|
+
# Creates a new bar chart object
|
|
63
|
+
# @param [GraphicFrame] frame The workbook that owns this chart.
|
|
64
|
+
# @option options [Cell, String] title
|
|
65
|
+
# @option options [Boolean] show_legend
|
|
66
|
+
# @option options [Symbol] bar_dir
|
|
67
|
+
# @option options [Symbol] grouping
|
|
68
|
+
# @option options [String] gap_width
|
|
69
|
+
# @option options [String] gap_depth
|
|
70
|
+
# @option options [Symbol] shape
|
|
71
|
+
# @option options [Integer] rot_x
|
|
72
|
+
# @option options [String] h_percent
|
|
73
|
+
# @option options [Integer] rot_y
|
|
74
|
+
# @option options [String] depth_percent
|
|
75
|
+
# @option options [Boolean] r_ang_ax
|
|
76
|
+
# @option options [Integer] perspective
|
|
77
|
+
# @see Chart
|
|
78
|
+
# @see View3D
|
|
79
|
+
def initialize(frame, options={})
|
|
80
|
+
@vary_colors = true
|
|
81
|
+
@gap_width, @gap_depth, @shape = nil, nil, nil
|
|
82
|
+
super(frame, options)
|
|
83
|
+
@series_type = BarSeries
|
|
84
|
+
@view_3D = View3D.new({:r_ang_ax=>1}.merge(options))
|
|
85
|
+
@d_lbls = nil
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# The direction of the bars in the chart
|
|
89
|
+
# must be one of [:bar, :col]
|
|
90
|
+
def bar_dir=(v)
|
|
91
|
+
RestrictionValidator.validate "Bar3DChart.bar_dir", [:bar, :col], v
|
|
92
|
+
@bar_dir = v
|
|
93
|
+
end
|
|
94
|
+
alias :barDir= :bar_dir=
|
|
95
|
+
|
|
96
|
+
#grouping for a column, line, or area chart.
|
|
97
|
+
# must be one of [:percentStacked, :clustered, :standard, :stacked]
|
|
98
|
+
def grouping=(v)
|
|
99
|
+
RestrictionValidator.validate "Bar3DChart.grouping", [:percentStacked, :clustered, :standard, :stacked], v
|
|
100
|
+
@grouping = v
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# space between bar or column clusters, as a percentage of the bar or column width.
|
|
104
|
+
def gap_width=(v)
|
|
105
|
+
RegexValidator.validate "Bar3DChart.gap_width", GAP_AMOUNT_PERCENT, v
|
|
106
|
+
@gap_width=(v)
|
|
107
|
+
end
|
|
108
|
+
alias :gapWidth= :gap_width=
|
|
109
|
+
|
|
110
|
+
# space between bar or column clusters, as a percentage of the bar or column width.
|
|
111
|
+
def gap_depth=(v)
|
|
112
|
+
RegexValidator.validate "Bar3DChart.gap_didth", GAP_AMOUNT_PERCENT, v
|
|
113
|
+
@gap_depth=(v)
|
|
114
|
+
end
|
|
115
|
+
alias :gapDepth= :gap_depth=
|
|
116
|
+
|
|
117
|
+
# The shabe of the bars or columns
|
|
118
|
+
# must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
|
|
119
|
+
def shape=(v)
|
|
120
|
+
RestrictionValidator.validate "Bar3DChart.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
|
|
121
|
+
@shape = v
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# Serializes the object
|
|
125
|
+
# @param [String] str
|
|
126
|
+
# @return [String]
|
|
127
|
+
def to_xml_string(str = '')
|
|
128
|
+
super(str) do
|
|
129
|
+
str << '<c:bar3DChart>'
|
|
130
|
+
str << ('<c:barDir val="' << bar_dir.to_s << '"/>')
|
|
131
|
+
str << ('<c:grouping val="' << grouping.to_s << '"/>')
|
|
132
|
+
str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
|
|
133
|
+
@series.each { |ser| ser.to_xml_string(str) }
|
|
134
|
+
@d_lbls.to_xml_string(str) if @d_lbls
|
|
135
|
+
str << ('<c:gapWidth val="' << @gap_width.to_s << '"/>') unless @gap_width.nil?
|
|
136
|
+
str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
|
|
137
|
+
str << ('<c:shape val="' << @shape.to_s << '"/>') unless @shape.nil?
|
|
138
|
+
axes.to_xml_string(str, :ids => true)
|
|
139
|
+
str << '</c:bar3DChart>'
|
|
140
|
+
axes.to_xml_string(str)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# A hash of axes used by this chart. Bar charts have a value and
|
|
145
|
+
# category axes specified via axes[:val_axes] and axes[:cat_axis]
|
|
146
|
+
# @return [Axes]
|
|
147
|
+
def axes
|
|
148
|
+
@axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|