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,118 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
|
|
4
|
+
# The SheetProtection object manages worksheet protection options per sheet.
|
|
5
|
+
class SheetProtection
|
|
6
|
+
|
|
7
|
+
include Axlsx::OptionsParser
|
|
8
|
+
include Axlsx::SerializedAttributes
|
|
9
|
+
include Axlsx::Accessors
|
|
10
|
+
|
|
11
|
+
# Creates a new SheetProtection instance
|
|
12
|
+
# @option options [Boolean] sheet @see SheetProtection#sheet
|
|
13
|
+
# @option options [Boolean] objects @see SheetProtection#objects
|
|
14
|
+
# @option options [Boolean] scenarios @see SheetProtection#scenarios
|
|
15
|
+
# @option options [Boolean] format_cells @see SheetProtection#objects
|
|
16
|
+
# @option options [Boolean] format_columns @see SheetProtection#format_columns
|
|
17
|
+
# @option options [Boolean] format_rows @see SheetProtection#format_rows
|
|
18
|
+
# @option options [Boolean] insert_columns @see SheetProtection#insert_columns
|
|
19
|
+
# @option options [Boolean] insert_rows @see SheetProtection#insert_rows
|
|
20
|
+
# @option options [Boolean] insert_hyperlinks @see SheetProtection#insert_hyperlinks
|
|
21
|
+
# @option options [Boolean] delete_columns @see SheetProtection#delete_columns
|
|
22
|
+
# @option options [Boolean] delete_rows @see SheetProtection#delete_rows
|
|
23
|
+
# @option options [Boolean] select_locked_cells @see SheetProtection#select_locked_cells
|
|
24
|
+
# @option options [Boolean] sort @see SheetProtection#sort
|
|
25
|
+
# @option options [Boolean] auto_filter @see SheetProtection#auto_filter
|
|
26
|
+
# @option options [Boolean] pivot_tables @see SheetProtection#pivot_tables
|
|
27
|
+
# @option options [Boolean] select_unlocked_cells @see SheetProtection#select_unlocked_cells
|
|
28
|
+
# @option options [String] password. The password required for unlocking. @see SheetProtection#password=
|
|
29
|
+
def initialize(options={})
|
|
30
|
+
@objects = @scenarios = @select_locked_cells = @select_unlocked_cells = false
|
|
31
|
+
@sheet = @format_cells = @format_rows = @format_columns = @insert_columns = @insert_rows = @insert_hyperlinks = @delete_columns = @delete_rows = @sort = @auto_filter = @pivot_tables = true
|
|
32
|
+
@password = nil
|
|
33
|
+
parse_options options
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
boolean_attr_accessor :sheet, :objects, :scenarios, :format_cells, :format_columns, :format_rows,
|
|
37
|
+
:insert_columns, :insert_rows, :insert_hyperlinks, :delete_columns, :delete_rows,
|
|
38
|
+
:select_locked_cells, :sort, :auto_filter, :pivot_tables, :select_unlocked_cells
|
|
39
|
+
|
|
40
|
+
serializable_attributes :sheet, :objects, :scenarios, :format_cells, :format_columns, :format_rows,
|
|
41
|
+
:insert_columns, :insert_rows, :insert_hyperlinks, :delete_columns, :delete_rows,
|
|
42
|
+
:select_locked_cells, :sort, :auto_filter, :pivot_tables, :select_unlocked_cells, :salt, :password
|
|
43
|
+
|
|
44
|
+
# Specifies the salt which was prepended to the user-supplied password before it was hashed using the hashing algorithm
|
|
45
|
+
# @return [String]
|
|
46
|
+
attr_reader :salt_value
|
|
47
|
+
|
|
48
|
+
# Password hash
|
|
49
|
+
# @return [String]
|
|
50
|
+
# default nil
|
|
51
|
+
attr_reader :password
|
|
52
|
+
|
|
53
|
+
# This block is intended to implement the salt_value, hash_value and spin count as per the ECMA-376 standard.
|
|
54
|
+
# However, it does not seem to actually work in EXCEL - instead they are using their old retro algorithm shown below
|
|
55
|
+
# defined in the transitional portion of the speck. I am leaving this code in in the hope that someday Ill be able to
|
|
56
|
+
# figure out why it does not work, and if Excel even supports it.
|
|
57
|
+
# def propper_password=(v)
|
|
58
|
+
# @algorithm_name = v == nil ? nil : 'SHA-1'
|
|
59
|
+
# @salt_value = @spin_count = @hash_value = v if v == nil
|
|
60
|
+
# return if v == nil
|
|
61
|
+
# require 'digest/sha1'
|
|
62
|
+
# @spin_count = 10000
|
|
63
|
+
# @salt_value = Digest::SHA1.hexdigest(rand(36**8).to_s(36))
|
|
64
|
+
# @spin_count.times do |count|
|
|
65
|
+
# @hash_value = Digest::SHA1.hexdigest((@hash_value ||= (@salt_value + v.to_s)) + Array(count).pack('V'))
|
|
66
|
+
# end
|
|
67
|
+
# end
|
|
68
|
+
|
|
69
|
+
# encodes password for protection locking
|
|
70
|
+
def password=(v)
|
|
71
|
+
return if v == nil
|
|
72
|
+
@password = create_password_hash(v)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Serialize the object
|
|
76
|
+
# @param [String] str
|
|
77
|
+
# @return [String]
|
|
78
|
+
def to_xml_string(str = '')
|
|
79
|
+
serialized_tag('sheetProtection', str)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
private
|
|
83
|
+
# Creates a password hash for a given password
|
|
84
|
+
# @return [String]
|
|
85
|
+
def create_password_hash(password)
|
|
86
|
+
encoded_password = encode_password(password)
|
|
87
|
+
|
|
88
|
+
password_as_hex = [encoded_password].pack("v")
|
|
89
|
+
password_as_string = password_as_hex.unpack("H*").first.upcase
|
|
90
|
+
|
|
91
|
+
password_as_string[2..3] + password_as_string[0..1]
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# Encodes a given password
|
|
95
|
+
# Based on the algorithm provided by Daniel Rentz of OpenOffice.
|
|
96
|
+
# http://www.openoffice.org/sc/excelfileformat.pdf, Revision 1.42, page 115 (21.05.2012)
|
|
97
|
+
# @return [String]
|
|
98
|
+
def encode_password(password)
|
|
99
|
+
i = 0
|
|
100
|
+
chars = password.split(//)
|
|
101
|
+
count = chars.size
|
|
102
|
+
|
|
103
|
+
chars.collect! do |char|
|
|
104
|
+
i += 1
|
|
105
|
+
char = char.unpack('c')[0] << i #ord << i
|
|
106
|
+
low_15 = char & 0x7fff
|
|
107
|
+
high_15 = char & 0x7fff << 15
|
|
108
|
+
high_15 = high_15 >> 15
|
|
109
|
+
char = low_15 | high_15
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
encoded_password = 0x0000
|
|
113
|
+
chars.each { |c| encoded_password ^= c }
|
|
114
|
+
encoded_password ^= count
|
|
115
|
+
encoded_password ^= 0xCE4B
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# View options for a worksheet.
|
|
4
|
+
#
|
|
5
|
+
# @note The recommended way to manage the sheet view is via Worksheet#sheet_view
|
|
6
|
+
# @see Worksheet#sheet_view
|
|
7
|
+
class SheetView
|
|
8
|
+
|
|
9
|
+
include Axlsx::OptionsParser
|
|
10
|
+
include Axlsx::Accessors
|
|
11
|
+
include Axlsx::SerializedAttributes
|
|
12
|
+
|
|
13
|
+
# Creates a new {SheetView} object
|
|
14
|
+
# @option options [Integer] color_id Color Id
|
|
15
|
+
# @option options [Boolean] default_grid_color Default Grid Color
|
|
16
|
+
# @option options [Boolean] right_to_left Right To Left
|
|
17
|
+
# @option options [Boolean] show_formulas Show Formulas
|
|
18
|
+
# @option options [Boolean] show_grid_lines Show Grid Lines
|
|
19
|
+
# @option options [Boolean] show_outline_symbols Show Outline Symbols
|
|
20
|
+
# @option options [Boolean] show_row_col_headers Show Headers
|
|
21
|
+
# @option options [Boolean] show_ruler Show Ruler
|
|
22
|
+
# @option options [Boolean] show_white_space Show White Space
|
|
23
|
+
# @option options [Boolean] show_zeros Show Zero Values
|
|
24
|
+
# @option options [Boolean] tab_selected Sheet Tab Selected
|
|
25
|
+
# @option options [String, Cell] top_left_cell Top Left Visible Cell
|
|
26
|
+
# @option options [Symbol] view View Type
|
|
27
|
+
# @option options [Boolean] window_protection Window Protection
|
|
28
|
+
# @option options [Integer] workbook_view_id Workbook View Index
|
|
29
|
+
# @option options [Integer] zoom_scale
|
|
30
|
+
# @option options [Integer] zoom_scale_normal Zoom Scale Normal View
|
|
31
|
+
# @option options [Integer] zoom_scale_page_layout_view Zoom Scale Page Layout View
|
|
32
|
+
# @option options [Integer] zoom_scale_sheet_layout_view Zoom Scale Page Break Preview
|
|
33
|
+
def initialize(options={})
|
|
34
|
+
#defaults
|
|
35
|
+
@color_id = @top_left_cell = @pane = nil
|
|
36
|
+
@right_to_left = @show_formulas = @show_outline_symbols = @show_white_space = @tab_selected = @window_protection = false
|
|
37
|
+
@default_grid_color = @show_grid_lines = @show_row_col_headers = @show_ruler = @show_zeros = true
|
|
38
|
+
@zoom_scale = 100
|
|
39
|
+
@zoom_scale_normal = @zoom_scale_page_layout_view = @zoom_scale_sheet_layout_view = @workbook_view_id = 0
|
|
40
|
+
@selections = {}
|
|
41
|
+
parse_options options
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
boolean_attr_accessor :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
|
|
45
|
+
:show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols
|
|
46
|
+
|
|
47
|
+
serializable_attributes :default_grid_color, :right_to_left, :show_formulas, :show_grid_lines,
|
|
48
|
+
:show_row_col_headers, :show_ruler, :show_white_space, :show_zeros, :tab_selected, :window_protection, :show_outline_symbols,
|
|
49
|
+
:zoom_scale_sheet_layout_view, :zoom_scale_page_layout_view, :zoom_scale_normal, :workbook_view_id,
|
|
50
|
+
:view, :top_left_cell, :color_id, :zoom_scale
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# instance values that must be serialized as their own elements - e.g. not attributes.
|
|
54
|
+
CHILD_ELEMENTS = [ :pane, :selections ]
|
|
55
|
+
|
|
56
|
+
# The pane object for the sheet view
|
|
57
|
+
# @return [Pane]
|
|
58
|
+
# @see [Pane]
|
|
59
|
+
def pane
|
|
60
|
+
@pane ||= Pane.new
|
|
61
|
+
yield @pane if block_given?
|
|
62
|
+
@pane
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# A hash of selection objects keyed by pane type associated with this sheet view.
|
|
66
|
+
# @return [Hash]
|
|
67
|
+
attr_reader :selections
|
|
68
|
+
|
|
69
|
+
#
|
|
70
|
+
# Color Id
|
|
71
|
+
# Index to the color value for row/column
|
|
72
|
+
# text headings and gridlines. This is an
|
|
73
|
+
# 'index color value' (ICV) rather than
|
|
74
|
+
# rgb value.
|
|
75
|
+
# @see type
|
|
76
|
+
# @return [Integer]
|
|
77
|
+
# default nil
|
|
78
|
+
attr_reader :color_id
|
|
79
|
+
|
|
80
|
+
# Top Left Visible Cell
|
|
81
|
+
# Location of the top left visible cell Location
|
|
82
|
+
# of the top left visible cell in the bottom right
|
|
83
|
+
# pane (when in Left-to-Right mode).
|
|
84
|
+
# @see type
|
|
85
|
+
# @return [String]
|
|
86
|
+
# default nil
|
|
87
|
+
attr_reader :top_left_cell
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
# View Type
|
|
91
|
+
# Indicates the view type.
|
|
92
|
+
# Options are
|
|
93
|
+
# * normal: Normal view
|
|
94
|
+
# * page_break_preview: Page break preview
|
|
95
|
+
# * page_layout: Page Layout View
|
|
96
|
+
# @see type
|
|
97
|
+
# @return [Symbol]
|
|
98
|
+
# default :normal
|
|
99
|
+
attr_reader :view
|
|
100
|
+
|
|
101
|
+
# Workbook View Index
|
|
102
|
+
# Zero-based index of this workbook view, pointing
|
|
103
|
+
# to a workbookView element in the bookViews collection.
|
|
104
|
+
# @see type
|
|
105
|
+
# @return [Integer]
|
|
106
|
+
# default 0
|
|
107
|
+
attr_reader :workbook_view_id
|
|
108
|
+
|
|
109
|
+
# Zoom Scale
|
|
110
|
+
# Window zoom magnification for current view
|
|
111
|
+
# representing percent values. This attribute
|
|
112
|
+
# is restricted to values ranging from 10 to 400.
|
|
113
|
+
# Horizontal & Vertical scale together.
|
|
114
|
+
# Current view can be Normal, Page Layout, or
|
|
115
|
+
# Page Break Preview.
|
|
116
|
+
# @see type
|
|
117
|
+
# @return [Integer]
|
|
118
|
+
# default 100
|
|
119
|
+
attr_reader :zoom_scale
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
# Zoom Scale Normal View
|
|
123
|
+
# Zoom magnification to use when in normal view,
|
|
124
|
+
# representing percent values. This attribute is
|
|
125
|
+
# restricted to values ranging from 10 to 400.
|
|
126
|
+
# Horizontal & Vertical scale together.
|
|
127
|
+
# Applies for worksheets only; zero implies the
|
|
128
|
+
# automatic setting.
|
|
129
|
+
# @see type
|
|
130
|
+
# @return [Integer]
|
|
131
|
+
# default 0
|
|
132
|
+
attr_reader :zoom_scale_normal
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# Zoom Scale Page Layout View
|
|
136
|
+
# Zoom magnification to use when in page layout
|
|
137
|
+
# view, representing percent values. This attribute
|
|
138
|
+
# is restricted to values ranging from 10 to 400.
|
|
139
|
+
# Horizontal & Vertical scale together.
|
|
140
|
+
# Applies for worksheets only; zero implies
|
|
141
|
+
# the automatic setting.
|
|
142
|
+
# @see type
|
|
143
|
+
# @return [Integer]
|
|
144
|
+
# default 0
|
|
145
|
+
attr_reader :zoom_scale_page_layout_view
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
# Zoom Scale Page Break Preview
|
|
149
|
+
# Zoom magnification to use when in page break
|
|
150
|
+
# preview, representing percent values. This
|
|
151
|
+
# attribute is restricted to values ranging
|
|
152
|
+
# from 10 to 400. Horizontal & Vertical scale
|
|
153
|
+
# together.
|
|
154
|
+
# Applies for worksheet only; zero implies
|
|
155
|
+
# the automatic setting.
|
|
156
|
+
# @see type
|
|
157
|
+
# @return [Integer]
|
|
158
|
+
# default 0
|
|
159
|
+
attr_reader :zoom_scale_sheet_layout_view
|
|
160
|
+
|
|
161
|
+
# Adds a new selection
|
|
162
|
+
# param [Symbol] pane
|
|
163
|
+
# param [Hash] options
|
|
164
|
+
# return [Selection]
|
|
165
|
+
def add_selection(pane, options = {})
|
|
166
|
+
@selections[pane] = Selection.new(options.merge(:pane => pane))
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# @see color_id
|
|
170
|
+
def color_id=(v); Axlsx::validate_unsigned_int(v); @color_id = v end
|
|
171
|
+
|
|
172
|
+
# @see top_left_cell
|
|
173
|
+
def top_left_cell=(v)
|
|
174
|
+
cell = (v.class == Axlsx::Cell ? v.r_abs : v)
|
|
175
|
+
Axlsx::validate_string(cell)
|
|
176
|
+
@top_left_cell = cell
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# @see view
|
|
180
|
+
def view=(v); Axlsx::validate_sheet_view_type(v); @view = v end
|
|
181
|
+
|
|
182
|
+
# @see workbook_view_id
|
|
183
|
+
def workbook_view_id=(v); Axlsx::validate_unsigned_int(v); @workbook_view_id = v end
|
|
184
|
+
|
|
185
|
+
# @see zoom_scale
|
|
186
|
+
def zoom_scale=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale = v end
|
|
187
|
+
|
|
188
|
+
# @see zoom_scale_normal
|
|
189
|
+
def zoom_scale_normal=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_normal = v end
|
|
190
|
+
|
|
191
|
+
# @see zoom_scale_page_layout_view
|
|
192
|
+
def zoom_scale_page_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_page_layout_view = v end
|
|
193
|
+
|
|
194
|
+
# @see zoom_scale_sheet_layout_view
|
|
195
|
+
def zoom_scale_sheet_layout_view=(v); Axlsx::validate_scale_0_10_400(v); @zoom_scale_sheet_layout_view = v end
|
|
196
|
+
|
|
197
|
+
# Serializes the data validation
|
|
198
|
+
# @param [String] str
|
|
199
|
+
# @return [String]
|
|
200
|
+
def to_xml_string(str = '')
|
|
201
|
+
str << '<sheetViews>'
|
|
202
|
+
str << '<sheetView '
|
|
203
|
+
serialized_attributes str
|
|
204
|
+
str << '>'
|
|
205
|
+
@pane.to_xml_string(str) if @pane
|
|
206
|
+
@selections.each do |key, selection|
|
|
207
|
+
selection.to_xml_string(str)
|
|
208
|
+
end
|
|
209
|
+
str << '</sheetView>'
|
|
210
|
+
str << '</sheetViews>'
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# encoding: UTF-8
|
|
2
|
+
module Axlsx
|
|
3
|
+
# Table
|
|
4
|
+
# @note Worksheet#add_table is the recommended way to create tables for your worksheets.
|
|
5
|
+
# @see README for examples
|
|
6
|
+
class Table
|
|
7
|
+
|
|
8
|
+
include Axlsx::OptionsParser
|
|
9
|
+
|
|
10
|
+
# Creates a new Table object
|
|
11
|
+
# @param [String] ref The reference to the table data like 'A1:G24'.
|
|
12
|
+
# @param [Worksheet] sheet The sheet containing the table data.
|
|
13
|
+
# @option options [Cell, String] name
|
|
14
|
+
# @option options [TableStyle] style
|
|
15
|
+
def initialize(ref, sheet, options={})
|
|
16
|
+
@ref = ref
|
|
17
|
+
@sheet = sheet
|
|
18
|
+
@style = nil
|
|
19
|
+
@sheet.workbook.tables << self
|
|
20
|
+
@table_style_info = TableStyleInfo.new(options[:style_info]) if options[:style_info]
|
|
21
|
+
@name = "Table#{index+1}"
|
|
22
|
+
parse_options options
|
|
23
|
+
yield self if block_given?
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# The reference to the table data
|
|
27
|
+
# @return [String]
|
|
28
|
+
attr_reader :ref
|
|
29
|
+
|
|
30
|
+
# The name of the table.
|
|
31
|
+
# @return [String]
|
|
32
|
+
attr_reader :name
|
|
33
|
+
|
|
34
|
+
# The style for the table.
|
|
35
|
+
# @return [TableStyle]
|
|
36
|
+
attr_reader :style
|
|
37
|
+
|
|
38
|
+
# The index of this chart in the workbooks charts collection
|
|
39
|
+
# @return [Integer]
|
|
40
|
+
def index
|
|
41
|
+
@sheet.workbook.tables.index(self)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# The part name for this table
|
|
45
|
+
# @return [String]
|
|
46
|
+
def pn
|
|
47
|
+
"#{TABLE_PN % (index+1)}"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# The relationship id for this table.
|
|
51
|
+
# @see Relationship#Id
|
|
52
|
+
# @return [String]
|
|
53
|
+
def rId
|
|
54
|
+
@sheet.relationships.for(self).Id
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# The name of the Table.
|
|
58
|
+
# @param [String, Cell] v
|
|
59
|
+
# @return [Title]
|
|
60
|
+
def name=(v)
|
|
61
|
+
DataTypeValidator.validate :table_name, [String], v
|
|
62
|
+
if v.is_a?(String)
|
|
63
|
+
@name = v
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# TableStyleInfo for the table.
|
|
68
|
+
# initialization can be fed via the :style_info option
|
|
69
|
+
def table_style_info
|
|
70
|
+
@table_style_info ||= TableStyleInfo.new
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Serializes the object
|
|
74
|
+
# @param [String] str
|
|
75
|
+
# @return [String]
|
|
76
|
+
def to_xml_string(str = '')
|
|
77
|
+
str << '<?xml version="1.0" encoding="UTF-8"?>'
|
|
78
|
+
str << ('<table xmlns="' << XML_NS << '" id="' << (index+1).to_s << '" name="' << @name << '" displayName="' << @name.gsub(/\s/,'_') << '" ')
|
|
79
|
+
str << ('ref="' << @ref << '" totalsRowShown="0">')
|
|
80
|
+
str << ('<autoFilter ref="' << @ref << '"/>')
|
|
81
|
+
str << ('<tableColumns count="' << header_cells.length.to_s << '">')
|
|
82
|
+
header_cells.each_with_index do |cell,index|
|
|
83
|
+
str << ('<tableColumn id ="' << (index+1).to_s << '" name="' << cell.value << '"/>')
|
|
84
|
+
end
|
|
85
|
+
str << '</tableColumns>'
|
|
86
|
+
table_style_info.to_xml_string(str)
|
|
87
|
+
str << '</table>'
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# The style for the table.
|
|
91
|
+
# TODO
|
|
92
|
+
# def style=(v) DataTypeValidator.validate "Table.style", Integer, v, lambda { |arg| arg >= 1 && arg <= 48 }; @style = v; end
|
|
93
|
+
|
|
94
|
+
private
|
|
95
|
+
|
|
96
|
+
# get the header cells (hackish)
|
|
97
|
+
def header_cells
|
|
98
|
+
header = @ref.gsub(/^(\w+?)(\d+)\:(\w+?)\d+$/, '\1\2:\3\2')
|
|
99
|
+
@sheet[header]
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# The table style info class manages style attributes for defined tables in
|
|
4
|
+
# a worksheet
|
|
5
|
+
class TableStyleInfo
|
|
6
|
+
include Axlsx::OptionsParser
|
|
7
|
+
include Axlsx::SerializedAttributes
|
|
8
|
+
include Axlsx::Accessors
|
|
9
|
+
# creates a new TableStyleInfo instance
|
|
10
|
+
# @param [Hash] options
|
|
11
|
+
# @option [Boolean] show_first_column indicates if the first column should
|
|
12
|
+
# be shown
|
|
13
|
+
# @option [Boolean] show_last_column indicates if the last column should
|
|
14
|
+
# be shown
|
|
15
|
+
# @option [Boolean] show_column_stripes indicates if column stripes should
|
|
16
|
+
# be shown
|
|
17
|
+
# @option [Boolean] show_row_stripes indicates if row stripes should be shown
|
|
18
|
+
# @option [String] name The name of the style to apply to your table.
|
|
19
|
+
# Only predefined styles are currently supported.
|
|
20
|
+
# @see Annex G. (normative) Predefined SpreadsheetML Style Definitions in part 1 of the specification.
|
|
21
|
+
def initialize(options = {})
|
|
22
|
+
initialize_defaults
|
|
23
|
+
@name = 'TableStyleMedium9'
|
|
24
|
+
parse_options options
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# boolean attributes for this object
|
|
28
|
+
boolean_attr_accessor :show_first_column, :show_last_column, :show_row_stripes, :show_column_stripes
|
|
29
|
+
serializable_attributes :show_first_column, :show_last_column, :show_row_stripes, :show_column_stripes,
|
|
30
|
+
:name
|
|
31
|
+
|
|
32
|
+
# Initialize all the values to false as Excel requires them to
|
|
33
|
+
# explicitly be disabled or all will show.
|
|
34
|
+
def initialize_defaults
|
|
35
|
+
%w(show_first_column show_last_column show_row_stripes show_column_stripes).each do |attr|
|
|
36
|
+
self.send("#{attr}=", 0)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# The name of the table style.
|
|
41
|
+
attr_accessor :name
|
|
42
|
+
|
|
43
|
+
# seralizes this object to an xml string
|
|
44
|
+
# @param [String] str the string to contact this objects serialization to.
|
|
45
|
+
def to_xml_string(str = '')
|
|
46
|
+
serialized_tag('tableStyleInfo', str)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|