caxlsx 2.0.2
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 +239 -0
- data/LICENSE +22 -0
- data/README.md +256 -0
- data/Rakefile +31 -0
- data/examples/2010_comments.rb +17 -0
- data/examples/anchor_swapping.rb +28 -0
- data/examples/auto_filter.rb +16 -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 +74 -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 +777 -0
- data/examples/extractive.rb +45 -0
- data/examples/image1.jpeg +0 -0
- data/examples/ios_preview.rb +14 -0
- data/examples/page_setup.rb +11 -0
- data/examples/pivot_table.rb +39 -0
- data/examples/sheet_protection.rb +10 -0
- data/examples/skydrive/real_example.rb +63 -0
- data/examples/styles.rb +66 -0
- data/examples/underline.rb +13 -0
- data/examples/wrap_text.rb +21 -0
- data/lib/axlsx.rb +152 -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 +187 -0
- data/lib/axlsx/drawing/bar_3D_chart.rb +151 -0
- data/lib/axlsx/drawing/bar_series.rb +82 -0
- data/lib/axlsx/drawing/cat_axis.rb +85 -0
- data/lib/axlsx/drawing/chart.rb +232 -0
- data/lib/axlsx/drawing/d_lbls.rb +90 -0
- data/lib/axlsx/drawing/drawing.rb +162 -0
- data/lib/axlsx/drawing/graphic_frame.rb +54 -0
- data/lib/axlsx/drawing/hyperlink.rb +102 -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 +81 -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 +32 -0
- data/lib/axlsx/drawing/one_cell_anchor.rb +98 -0
- data/lib/axlsx/drawing/pic.rb +205 -0
- data/lib/axlsx/drawing/picture_locking.rb +44 -0
- data/lib/axlsx/drawing/pie_3D_chart.rb +48 -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 +65 -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 +32 -0
- data/lib/axlsx/drawing/title.rb +78 -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 +352 -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 +134 -0
- data/lib/axlsx/stylesheet/cell_protection.rb +43 -0
- data/lib/axlsx/stylesheet/cell_style.rb +74 -0
- data/lib/axlsx/stylesheet/color.rb +78 -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 +79 -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 +79 -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 +392 -0
- data/lib/axlsx/util/options_parser.rb +15 -0
- data/lib/axlsx/util/parser.rb +44 -0
- data/lib/axlsx/util/serialized_attributes.rb +79 -0
- data/lib/axlsx/util/simple_typed_list.rb +203 -0
- data/lib/axlsx/util/storage.rb +146 -0
- data/lib/axlsx/util/validators.rb +300 -0
- data/lib/axlsx/version.rb +5 -0
- data/lib/axlsx/workbook/defined_name.rb +129 -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 +354 -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 +246 -0
- data/lib/axlsx/workbook/worksheet/break.rb +37 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +416 -0
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +144 -0
- data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
- data/lib/axlsx/workbook/worksheet/cfvos.rb +15 -0
- data/lib/axlsx/workbook/worksheet/col.rb +144 -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 +92 -0
- data/lib/axlsx/workbook/worksheet/comments.rb +85 -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 +131 -0
- data/lib/axlsx/workbook/worksheet/data_validation.rb +244 -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 +54 -0
- data/lib/axlsx/workbook/worksheet/icon_set.rb +83 -0
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
- data/lib/axlsx/workbook/worksheet/page_margins.rb +99 -0
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -0
- data/lib/axlsx/workbook/worksheet/page_setup.rb +242 -0
- data/lib/axlsx/workbook/worksheet/pane.rb +141 -0
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +273 -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 +41 -0
- data/lib/axlsx/workbook/worksheet/protected_range.rb +49 -0
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
- data/lib/axlsx/workbook/worksheet/row.rb +172 -0
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
- data/lib/axlsx/workbook/worksheet/selection.rb +103 -0
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -0
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
- data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +60 -0
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +69 -0
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +120 -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 +51 -0
- data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
- data/lib/axlsx/workbook/worksheet/worksheet.rb +769 -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 +85 -0
- data/test/drawing/tc_bar_3D_chart.rb +71 -0
- data/test/drawing/tc_bar_series.rb +37 -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 +17 -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 +30 -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 +107 -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 +21 -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 +21 -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 +72 -0
- data/test/tc_helper.rb +10 -0
- data/test/tc_package.rb +227 -0
- data/test/util/tc_serialized_attributes.rb +19 -0
- data/test/util/tc_simple_typed_list.rb +78 -0
- data/test/util/tc_validators.rb +186 -0
- data/test/workbook/tc_defined_name.rb +41 -0
- data/test/workbook/tc_shared_strings_table.rb +44 -0
- data/test/workbook/tc_workbook.rb +125 -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 +319 -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_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 +120 -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_row.rb +117 -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 +27 -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 +538 -0
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
- metadata +546 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The picture locking class defines the locking properties for pictures in your workbook.
|
|
4
|
+
class PictureLocking
|
|
5
|
+
|
|
6
|
+
include Axlsx::OptionsParser
|
|
7
|
+
include Axlsx::SerializedAttributes
|
|
8
|
+
include Axlsx::Accessors
|
|
9
|
+
|
|
10
|
+
boolean_attr_accessor :noGrp, :noSelect, :noRot, :noChangeAspect,
|
|
11
|
+
:noMove, :noResize, :noEditPoints, :noAdjustHandles,
|
|
12
|
+
:noChangeArrowheads, :noChangeShapeType
|
|
13
|
+
|
|
14
|
+
serializable_attributes :noGrp, :noSelect, :noRot, :noChangeAspect,
|
|
15
|
+
:noMove, :noResize, :noEditPoints, :noAdjustHandles,
|
|
16
|
+
:noChangeArrowheads, :noChangeShapeType
|
|
17
|
+
|
|
18
|
+
# Creates a new PictureLocking object
|
|
19
|
+
# @option options [Boolean] noGrp
|
|
20
|
+
# @option options [Boolean] noSelect
|
|
21
|
+
# @option options [Boolean] noRot
|
|
22
|
+
# @option options [Boolean] noChangeAspect
|
|
23
|
+
# @option options [Boolean] noMove
|
|
24
|
+
# @option options [Boolean] noResize
|
|
25
|
+
# @option options [Boolean] noEditPoints
|
|
26
|
+
# @option options [Boolean] noAdjustHandles
|
|
27
|
+
# @option options [Boolean] noChangeArrowheads
|
|
28
|
+
# @option options [Boolean] noChangeShapeType
|
|
29
|
+
def initialize(options={})
|
|
30
|
+
@noChangeAspect = true
|
|
31
|
+
parse_options options
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Serializes the object
|
|
35
|
+
# @param [String] str
|
|
36
|
+
# @return [String]
|
|
37
|
+
def to_xml_string(str = '')
|
|
38
|
+
str << '<a:picLocks '
|
|
39
|
+
serialized_attributes str
|
|
40
|
+
str << '/>'
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
# The Pie3DChart is a three dimentional piechart (who would have guessed?) that you can add to your worksheet.
|
|
6
|
+
# @see Worksheet#add_chart
|
|
7
|
+
# @see Chart#add_series
|
|
8
|
+
# @see README for an example
|
|
9
|
+
class Pie3DChart < Chart
|
|
10
|
+
|
|
11
|
+
# Creates a new pie chart object
|
|
12
|
+
# @param [GraphicFrame] frame The workbook that owns this chart.
|
|
13
|
+
# @option options [Cell, String] title
|
|
14
|
+
# @option options [Boolean] show_legend
|
|
15
|
+
# @option options [Symbol] grouping
|
|
16
|
+
# @option options [String] gap_depth
|
|
17
|
+
# @option options [Integer] rot_x
|
|
18
|
+
# @option options [String] h_percent
|
|
19
|
+
# @option options [Integer] rot_y
|
|
20
|
+
# @option options [String] depth_percent
|
|
21
|
+
# @option options [Boolean] r_ang_ax
|
|
22
|
+
# @option options [Integer] perspective
|
|
23
|
+
# @see Chart
|
|
24
|
+
# @see View3D
|
|
25
|
+
def initialize(frame, options={})
|
|
26
|
+
@vary_colors = true
|
|
27
|
+
super(frame, options)
|
|
28
|
+
@series_type = PieSeries
|
|
29
|
+
@view_3D = View3D.new({:rot_x =>30, :perspective=>30}.merge(options))
|
|
30
|
+
@d_lbls = nil
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Serializes the object
|
|
34
|
+
# @param [String] str
|
|
35
|
+
# @return [String]
|
|
36
|
+
def to_xml_string(str = '')
|
|
37
|
+
super(str) do |str_inner|
|
|
38
|
+
|
|
39
|
+
str_inner << '<c:pie3DChart>'
|
|
40
|
+
str_inner << '<c:varyColors val="' << vary_colors.to_s << '"/>'
|
|
41
|
+
@series.each { |ser| ser.to_xml_string(str_inner) }
|
|
42
|
+
d_lbls.to_xml_string(str) if @d_lbls
|
|
43
|
+
str_inner << '</c:pie3DChart>'
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# A PieSeries defines the data and labels and explosion for pie charts series.
|
|
5
|
+
# @note The recommended way to manage series is to use Chart#add_series
|
|
6
|
+
# @see Worksheet#add_chart
|
|
7
|
+
# @see Chart#add_series
|
|
8
|
+
class PieSeries < Series
|
|
9
|
+
|
|
10
|
+
# The data for this series.
|
|
11
|
+
# @return [SimpleTypedList]
|
|
12
|
+
attr_reader :data
|
|
13
|
+
|
|
14
|
+
# The labels for this series.
|
|
15
|
+
# @return [SimpleTypedList]
|
|
16
|
+
attr_reader :labels
|
|
17
|
+
|
|
18
|
+
# The explosion for this series
|
|
19
|
+
# @return [Integert]
|
|
20
|
+
attr_reader :explosion
|
|
21
|
+
|
|
22
|
+
# An array of rgb colors to apply to your bar chart.
|
|
23
|
+
attr_reader :colors
|
|
24
|
+
|
|
25
|
+
# Creates a new series
|
|
26
|
+
# @option options [Array, SimpleTypedList] data
|
|
27
|
+
# @option options [Array, SimpleTypedList] labels
|
|
28
|
+
# @option options [String] title
|
|
29
|
+
# @option options [Integer] explosion
|
|
30
|
+
# @param [Chart] chart
|
|
31
|
+
def initialize(chart, options={})
|
|
32
|
+
@explosion = nil
|
|
33
|
+
@colors = []
|
|
34
|
+
super(chart, options)
|
|
35
|
+
self.labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
|
|
36
|
+
self.data = NumDataSource.new(options) unless options[:data].nil?
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @see colors
|
|
40
|
+
def colors=(v) DataTypeValidator.validate "BarSeries.colors", [Array], v; @colors = v end
|
|
41
|
+
|
|
42
|
+
# @see explosion
|
|
43
|
+
def explosion=(v) Axlsx::validate_unsigned_int(v); @explosion = v; end
|
|
44
|
+
|
|
45
|
+
# Serializes the object
|
|
46
|
+
# @param [String] str
|
|
47
|
+
# @return [String]
|
|
48
|
+
def to_xml_string(str = '')
|
|
49
|
+
super(str) do |str_inner|
|
|
50
|
+
str_inner << '<c:explosion val="' << @explosion << '"/>' unless @explosion.nil?
|
|
51
|
+
colors.each_with_index do |c, index|
|
|
52
|
+
str << '<c:dPt>'
|
|
53
|
+
str << '<c:idx val="' << index.to_s << '"/>'
|
|
54
|
+
str << '<c:spPr><a:solidFill>'
|
|
55
|
+
str << '<a:srgbClr val="' << c << '"/>'
|
|
56
|
+
str << '</a:solidFill></c:spPr></c:dPt>'
|
|
57
|
+
end
|
|
58
|
+
@labels.to_xml_string str_inner unless @labels.nil?
|
|
59
|
+
@data.to_xml_string str_inner unless @data.nil?
|
|
60
|
+
end
|
|
61
|
+
str
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
private
|
|
65
|
+
|
|
66
|
+
# assigns the data for this series
|
|
67
|
+
def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
|
|
68
|
+
|
|
69
|
+
# assigns the labels for this series
|
|
70
|
+
def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# The Scaling class defines axis scaling
|
|
4
|
+
class Scaling
|
|
5
|
+
|
|
6
|
+
include Axlsx::OptionsParser
|
|
7
|
+
|
|
8
|
+
# creates a new Scaling object
|
|
9
|
+
# @option options [Integer, Fixnum] logBase
|
|
10
|
+
# @option options [Symbol] orientation
|
|
11
|
+
# @option options [Float] max
|
|
12
|
+
# @option options [Float] min
|
|
13
|
+
def initialize(options={})
|
|
14
|
+
@orientation = :minMax
|
|
15
|
+
@logBase, @min, @max = nil, nil, nil
|
|
16
|
+
parse_options options
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# logarithmic base for a logarithmic axis.
|
|
20
|
+
# must be between 2 and 1000
|
|
21
|
+
# @return [Integer]
|
|
22
|
+
attr_reader :logBase
|
|
23
|
+
|
|
24
|
+
# the orientation of the axis
|
|
25
|
+
# must be one of [:minMax, :maxMin]
|
|
26
|
+
# @return [Symbol]
|
|
27
|
+
attr_reader :orientation
|
|
28
|
+
|
|
29
|
+
# the maximum scaling
|
|
30
|
+
# @return [Float]
|
|
31
|
+
attr_reader :max
|
|
32
|
+
|
|
33
|
+
# the minimu scaling
|
|
34
|
+
# @return [Float]
|
|
35
|
+
attr_reader :min
|
|
36
|
+
|
|
37
|
+
# @see logBase
|
|
38
|
+
def logBase=(v) DataTypeValidator.validate "Scaling.logBase", [Integer, Fixnum], v, lambda { |arg| arg >= 2 && arg <= 1000}; @logBase = v; end
|
|
39
|
+
# @see orientation
|
|
40
|
+
def orientation=(v) RestrictionValidator.validate "Scaling.orientation", [:minMax, :maxMin], v; @orientation = v; end
|
|
41
|
+
# @see max
|
|
42
|
+
def max=(v) DataTypeValidator.validate "Scaling.max", Float, v; @max = v; end
|
|
43
|
+
|
|
44
|
+
# @see min
|
|
45
|
+
def min=(v) DataTypeValidator.validate "Scaling.min", Float, v; @min = v; end
|
|
46
|
+
|
|
47
|
+
# Serializes the object
|
|
48
|
+
# @param [String] str
|
|
49
|
+
# @return [String]
|
|
50
|
+
def to_xml_string(str = '')
|
|
51
|
+
str << '<c:scaling>'
|
|
52
|
+
str << '<c:logBase val="' << @logBase.to_s << '"/>' unless @logBase.nil?
|
|
53
|
+
str << '<c:orientation val="' << @orientation.to_s << '"/>' unless @orientation.nil?
|
|
54
|
+
str << '<c:min val="' << @min.to_s << '"/>' unless @min.nil?
|
|
55
|
+
str << '<c:max val="' << @max.to_s << '"/>' unless @max.nil?
|
|
56
|
+
str << '</c:scaling>'
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# The ScatterChart allows you to insert a scatter chart into your worksheet
|
|
5
|
+
# @see Worksheet#add_chart
|
|
6
|
+
# @see Chart#add_series
|
|
7
|
+
# @see README for an example
|
|
8
|
+
class ScatterChart < Chart
|
|
9
|
+
|
|
10
|
+
include Axlsx::OptionsParser
|
|
11
|
+
|
|
12
|
+
# The Style for the scatter chart
|
|
13
|
+
# must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker
|
|
14
|
+
# return [Symbol]
|
|
15
|
+
attr_reader :scatter_style
|
|
16
|
+
alias :scatterStyle :scatter_style
|
|
17
|
+
|
|
18
|
+
# the x value axis
|
|
19
|
+
# @return [ValAxis]
|
|
20
|
+
def x_val_axis
|
|
21
|
+
axes[:x_val_axis]
|
|
22
|
+
end
|
|
23
|
+
alias :xValAxis :x_val_axis
|
|
24
|
+
|
|
25
|
+
# the y value axis
|
|
26
|
+
# @return [ValAxis]
|
|
27
|
+
def y_val_axis
|
|
28
|
+
axes[:x_val_axis]
|
|
29
|
+
end
|
|
30
|
+
alias :yValAxis :y_val_axis
|
|
31
|
+
|
|
32
|
+
# Creates a new scatter chart
|
|
33
|
+
def initialize(frame, options={})
|
|
34
|
+
@vary_colors = 0
|
|
35
|
+
@scatter_style = :lineMarker
|
|
36
|
+
|
|
37
|
+
super(frame, options)
|
|
38
|
+
@series_type = ScatterSeries
|
|
39
|
+
@d_lbls = nil
|
|
40
|
+
parse_options options
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# see #scatterStyle
|
|
44
|
+
def scatter_style=(v)
|
|
45
|
+
Axlsx.validate_scatter_style(v)
|
|
46
|
+
@scatter_style = v
|
|
47
|
+
end
|
|
48
|
+
alias :scatterStyle= :scatter_style=
|
|
49
|
+
|
|
50
|
+
# Serializes the object
|
|
51
|
+
# @param [String] str
|
|
52
|
+
# @return [String]
|
|
53
|
+
def to_xml_string(str = '')
|
|
54
|
+
super(str) do |str_inner|
|
|
55
|
+
str_inner << '<c:scatterChart>'
|
|
56
|
+
str_inner << '<c:scatterStyle val="' << scatter_style.to_s << '"/>'
|
|
57
|
+
str_inner << '<c:varyColors val="' << vary_colors.to_s << '"/>'
|
|
58
|
+
@series.each { |ser| ser.to_xml_string(str_inner) }
|
|
59
|
+
d_lbls.to_xml_string(str_inner) if @d_lbls
|
|
60
|
+
axes.to_xml_string(str_inner, :ids => true)
|
|
61
|
+
str_inner << '</c:scatterChart>'
|
|
62
|
+
axes.to_xml_string(str_inner)
|
|
63
|
+
end
|
|
64
|
+
str
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# The axes for the scatter chart. ScatterChart has an x_val_axis and
|
|
68
|
+
# a y_val_axis
|
|
69
|
+
# @return [Axes]
|
|
70
|
+
def axes
|
|
71
|
+
@axes ||= Axes.new(:x_val_axis => ValAxis, :y_val_axis => ValAxis)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# A ScatterSeries defines the x and y position of data in the chart
|
|
5
|
+
# @note The recommended way to manage series is to use Chart#add_series
|
|
6
|
+
# @see Worksheet#add_chart
|
|
7
|
+
# @see Chart#add_series
|
|
8
|
+
# @see examples/example.rb
|
|
9
|
+
class ScatterSeries < Series
|
|
10
|
+
|
|
11
|
+
# The x data for this series.
|
|
12
|
+
# @return [NamedAxisData]
|
|
13
|
+
attr_reader :xData
|
|
14
|
+
|
|
15
|
+
# The y data for this series.
|
|
16
|
+
# @return [NamedAxisData]
|
|
17
|
+
attr_reader :yData
|
|
18
|
+
|
|
19
|
+
# The fill color for this series.
|
|
20
|
+
# Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
|
|
21
|
+
# @return [String]
|
|
22
|
+
attr_reader :color
|
|
23
|
+
|
|
24
|
+
# Creates a new ScatterSeries
|
|
25
|
+
def initialize(chart, options={})
|
|
26
|
+
@xData, @yData = nil
|
|
27
|
+
super(chart, options)
|
|
28
|
+
@xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
|
|
29
|
+
@yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @see color
|
|
33
|
+
def color=(v)
|
|
34
|
+
@color = v
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Serializes the object
|
|
38
|
+
# @param [String] str
|
|
39
|
+
# @return [String]
|
|
40
|
+
def to_xml_string(str = '')
|
|
41
|
+
super(str) do |inner_str|
|
|
42
|
+
# needs to override the super color here to push in ln/and something else!
|
|
43
|
+
if color
|
|
44
|
+
str << '<c:spPr><a:solidFill>'
|
|
45
|
+
str << '<a:srgbClr val="' << color << '"/>'
|
|
46
|
+
str << '</a:solidFill>'
|
|
47
|
+
str << '<a:ln><a:solidFill>'
|
|
48
|
+
str << '<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>'
|
|
49
|
+
str << '</c:spPr>'
|
|
50
|
+
str << '<c:marker>'
|
|
51
|
+
str << '<c:spPr><a:solidFill>'
|
|
52
|
+
str << '<a:srgbClr val="' << color << '"/>'
|
|
53
|
+
str << '</a:solidFill>'
|
|
54
|
+
str << '<a:ln><a:solidFill>'
|
|
55
|
+
str << '<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>'
|
|
56
|
+
str << '</c:spPr>'
|
|
57
|
+
str << '</c:marker>'
|
|
58
|
+
end
|
|
59
|
+
@xData.to_xml_string(inner_str) unless @xData.nil?
|
|
60
|
+
@yData.to_xml_string(inner_str) unless @yData.nil?
|
|
61
|
+
end
|
|
62
|
+
str
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
#A SerAxis object defines a series axis
|
|
4
|
+
class SerAxis < Axis
|
|
5
|
+
|
|
6
|
+
# The number of tick lables to skip between labels
|
|
7
|
+
# @return [Integer]
|
|
8
|
+
attr_reader :tick_lbl_skip
|
|
9
|
+
alias :tickLblSkip :tick_lbl_skip
|
|
10
|
+
|
|
11
|
+
# The number of tickmarks to be skipped before the next one is rendered.
|
|
12
|
+
# @return [Boolean]
|
|
13
|
+
attr_reader :tick_mark_skip
|
|
14
|
+
alias :tickMarkSkip :tick_mark_skip
|
|
15
|
+
|
|
16
|
+
# Creates a new SerAxis object
|
|
17
|
+
# @option options [Integer] tick_lbl_skip
|
|
18
|
+
# @option options [Integer] tick_mark_skip
|
|
19
|
+
def initialize(options={})
|
|
20
|
+
@tick_lbl_skip, @tick_mark_skip = 1, 1
|
|
21
|
+
super(options)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# @see tickLblSkip
|
|
25
|
+
def tick_lbl_skip=(v) Axlsx::validate_unsigned_int(v); @tick_lbl_skip = v; end
|
|
26
|
+
alias :tickLblSkip= :tick_lbl_skip=
|
|
27
|
+
|
|
28
|
+
# @see tickMarkSkip
|
|
29
|
+
def tick_mark_skip=(v) Axlsx::validate_unsigned_int(v); @tick_mark_skip = v; end
|
|
30
|
+
alias :tickMarkSkip= :tick_mark_skip=
|
|
31
|
+
|
|
32
|
+
# Serializes the object
|
|
33
|
+
# @param [String] str
|
|
34
|
+
# @return [String]
|
|
35
|
+
def to_xml_string(str = '')
|
|
36
|
+
str << '<c:serAx>'
|
|
37
|
+
super(str)
|
|
38
|
+
str << '<c:tickLblSkip val="' << @tick_lbl_skip.to_s << '"/>' unless @tick_lbl_skip.nil?
|
|
39
|
+
str << '<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>' unless @tick_mark_skip.nil?
|
|
40
|
+
str << '</c:serAx>'
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# A Series defines the common series attributes and is the super class for all concrete series types.
|
|
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 Series
|
|
8
|
+
|
|
9
|
+
include Axlsx::OptionsParser
|
|
10
|
+
|
|
11
|
+
# The chart that owns this series
|
|
12
|
+
# @return [Chart]
|
|
13
|
+
attr_reader :chart
|
|
14
|
+
|
|
15
|
+
# The title of the series
|
|
16
|
+
# @return [SeriesTitle]
|
|
17
|
+
attr_reader :title
|
|
18
|
+
|
|
19
|
+
# Creates a new series
|
|
20
|
+
# @param [Chart] chart
|
|
21
|
+
# @option options [Integer] order
|
|
22
|
+
# @option options [String] title
|
|
23
|
+
def initialize(chart, options={})
|
|
24
|
+
@order = nil
|
|
25
|
+
self.chart = chart
|
|
26
|
+
@chart.series << self
|
|
27
|
+
parse_options options
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# The index of this series in the chart's series.
|
|
31
|
+
# @return [Integer]
|
|
32
|
+
def index
|
|
33
|
+
@chart.series.index(self)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# The order of this series in the chart's series. By default the order is the index of the series.
|
|
37
|
+
# @return [Integer]
|
|
38
|
+
def order
|
|
39
|
+
@order || index
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# @see order
|
|
43
|
+
def order=(v) Axlsx::validate_unsigned_int(v); @order = v; end
|
|
44
|
+
|
|
45
|
+
# @see title
|
|
46
|
+
def title=(v)
|
|
47
|
+
v = SeriesTitle.new(v) if v.is_a?(String) || v.is_a?(Cell)
|
|
48
|
+
DataTypeValidator.validate "#{self.class}.title", SeriesTitle, v
|
|
49
|
+
@title = v
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
private
|
|
53
|
+
|
|
54
|
+
# assigns the chart for this series
|
|
55
|
+
def chart=(v) DataTypeValidator.validate "Series.chart", Chart, v; @chart = v; end
|
|
56
|
+
|
|
57
|
+
# Serializes the object
|
|
58
|
+
# @param [String] str
|
|
59
|
+
# @return [String]
|
|
60
|
+
def to_xml_string(str = '')
|
|
61
|
+
str << '<c:ser>'
|
|
62
|
+
str << '<c:idx val="' << index.to_s << '"/>'
|
|
63
|
+
str << '<c:order val="' << (order || index).to_s << '"/>'
|
|
64
|
+
title.to_xml_string(str) unless title.nil?
|
|
65
|
+
yield str if block_given?
|
|
66
|
+
str << '</c:ser>'
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|