caxlsx 3.2.0 → 3.3.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 +4 -4
- data/.yardopts +9 -9
- data/.yardopts_guide +18 -18
- data/CHANGELOG.md +385 -354
- data/LICENSE +21 -21
- data/README.md +165 -168
- data/Rakefile +29 -29
- data/examples/generate.rb +15 -15
- data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
- data/lib/axlsx/content_type/content_type.rb +26 -26
- data/lib/axlsx/content_type/default.rb +25 -25
- data/lib/axlsx/content_type/override.rb +25 -25
- data/lib/axlsx/doc_props/app.rb +235 -235
- data/lib/axlsx/doc_props/core.rb +39 -39
- data/lib/axlsx/drawing/area_chart.rb +99 -99
- data/lib/axlsx/drawing/area_series.rb +110 -110
- data/lib/axlsx/drawing/ax_data_source.rb +26 -26
- data/lib/axlsx/drawing/axes.rb +61 -61
- data/lib/axlsx/drawing/axis.rb +190 -190
- data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
- data/lib/axlsx/drawing/bar_chart.rb +138 -138
- data/lib/axlsx/drawing/bar_series.rb +97 -97
- data/lib/axlsx/drawing/bubble_chart.rb +59 -59
- data/lib/axlsx/drawing/bubble_series.rb +63 -63
- data/lib/axlsx/drawing/cat_axis.rb +85 -85
- data/lib/axlsx/drawing/chart.rb +299 -276
- data/lib/axlsx/drawing/d_lbls.rb +91 -90
- data/lib/axlsx/drawing/drawing.rb +167 -167
- data/lib/axlsx/drawing/graphic_frame.rb +54 -54
- data/lib/axlsx/drawing/hyperlink.rb +100 -100
- data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
- data/lib/axlsx/drawing/line_chart.rb +99 -99
- data/lib/axlsx/drawing/line_series.rb +110 -110
- data/lib/axlsx/drawing/marker.rb +84 -84
- data/lib/axlsx/drawing/num_data.rb +52 -52
- data/lib/axlsx/drawing/num_data_source.rb +62 -62
- data/lib/axlsx/drawing/num_val.rb +34 -34
- data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
- data/lib/axlsx/drawing/pic.rb +211 -211
- data/lib/axlsx/drawing/picture_locking.rb +42 -42
- data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
- data/lib/axlsx/drawing/pie_series.rb +74 -74
- data/lib/axlsx/drawing/scaling.rb +60 -60
- data/lib/axlsx/drawing/scatter_chart.rb +74 -74
- data/lib/axlsx/drawing/scatter_series.rb +129 -129
- data/lib/axlsx/drawing/ser_axis.rb +45 -45
- data/lib/axlsx/drawing/series.rb +69 -69
- data/lib/axlsx/drawing/series_title.rb +25 -25
- data/lib/axlsx/drawing/str_data.rb +42 -42
- data/lib/axlsx/drawing/str_val.rb +34 -34
- data/lib/axlsx/drawing/title.rb +107 -97
- data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
- data/lib/axlsx/drawing/val_axis.rb +37 -37
- data/lib/axlsx/drawing/view_3D.rb +115 -115
- data/lib/axlsx/drawing/vml_drawing.rb +42 -42
- data/lib/axlsx/drawing/vml_shape.rb +66 -66
- data/lib/axlsx/package.rb +398 -388
- data/lib/axlsx/rels/relationship.rb +130 -130
- data/lib/axlsx/rels/relationships.rb +32 -32
- data/lib/axlsx/stylesheet/border.rb +73 -73
- data/lib/axlsx/stylesheet/border_pr.rb +71 -71
- data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
- data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
- data/lib/axlsx/stylesheet/cell_style.rb +72 -72
- data/lib/axlsx/stylesheet/color.rb +76 -76
- data/lib/axlsx/stylesheet/dxf.rb +79 -79
- data/lib/axlsx/stylesheet/fill.rb +35 -35
- data/lib/axlsx/stylesheet/font.rb +156 -156
- data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
- data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
- data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
- data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
- data/lib/axlsx/stylesheet/styles.rb +535 -494
- data/lib/axlsx/stylesheet/table_style.rb +54 -54
- data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
- data/lib/axlsx/stylesheet/table_styles.rb +46 -46
- data/lib/axlsx/stylesheet/xf.rb +147 -147
- data/lib/axlsx/util/accessors.rb +64 -64
- data/lib/axlsx/util/constants.rb +416 -410
- data/lib/axlsx/util/mime_type_utils.rb +11 -11
- data/lib/axlsx/util/options_parser.rb +16 -16
- data/lib/axlsx/util/serialized_attributes.rb +89 -89
- data/lib/axlsx/util/simple_typed_list.rb +179 -179
- data/lib/axlsx/util/storage.rb +146 -146
- data/lib/axlsx/util/validators.rb +312 -312
- data/lib/axlsx/util/zip_command.rb +73 -73
- data/lib/axlsx/version.rb +5 -5
- data/lib/axlsx/workbook/defined_name.rb +128 -128
- data/lib/axlsx/workbook/defined_names.rb +21 -21
- data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
- data/lib/axlsx/workbook/workbook.rb +425 -395
- data/lib/axlsx/workbook/workbook_view.rb +80 -80
- data/lib/axlsx/workbook/workbook_views.rb +22 -22
- data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
- data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
- data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
- data/lib/axlsx/workbook/worksheet/border_creator.rb +76 -0
- data/lib/axlsx/workbook/worksheet/break.rb +35 -35
- data/lib/axlsx/workbook/worksheet/cell.rb +532 -506
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
- data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
- data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
- data/lib/axlsx/workbook/worksheet/col.rb +145 -145
- data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
- data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
- data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
- data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
- data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
- data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
- data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
- data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
- data/lib/axlsx/workbook/worksheet/data_validation.rb +267 -246
- data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
- data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
- data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
- data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
- data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
- data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
- data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
- data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
- data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
- data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
- data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +335 -296
- data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
- data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
- data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
- data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
- data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
- data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
- data/lib/axlsx/workbook/worksheet/row.rb +164 -164
- data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
- data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
- data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
- data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
- data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
- data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
- data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
- data/lib/axlsx/workbook/worksheet/table.rb +102 -102
- data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
- data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
- data/lib/axlsx/workbook/worksheet/worksheet.rb +829 -786
- data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
- data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
- data/lib/axlsx.rb +204 -185
- data/lib/caxlsx.rb +2 -2
- data/lib/schema/dc.xsd +118 -118
- data/lib/schema/dcmitype.xsd +51 -51
- data/lib/schema/dcterms.xsd +331 -331
- data/lib/schema/dml-chartDrawing.xsd +146 -146
- data/lib/schema/dml-compatibility.xsd +14 -14
- data/lib/schema/dml-lockedCanvas.xsd +11 -11
- data/lib/schema/dml-main.xsd +3048 -3048
- data/lib/schema/dml-picture.xsd +23 -23
- data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
- data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
- data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
- data/lib/schema/shared-bibliography.xsd +144 -144
- data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
- data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
- data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
- data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
- data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
- data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
- data/lib/schema/shared-relationshipReference.xsd +25 -25
- data/lib/schema/vml-main.xsd +569 -569
- data/lib/schema/vml-officeDrawing.xsd +509 -509
- data/lib/schema/vml-presentationDrawing.xsd +12 -12
- data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
- data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
- data/lib/schema/xml.xsd +116 -116
- metadata +5 -252
- data/test/benchmark.rb +0 -72
- data/test/content_type/tc_content_type.rb +0 -76
- data/test/content_type/tc_default.rb +0 -16
- data/test/content_type/tc_override.rb +0 -14
- data/test/doc_props/tc_app.rb +0 -43
- data/test/doc_props/tc_core.rb +0 -42
- data/test/drawing/tc_area_chart.rb +0 -39
- data/test/drawing/tc_area_series.rb +0 -71
- data/test/drawing/tc_axes.rb +0 -8
- data/test/drawing/tc_axis.rb +0 -112
- data/test/drawing/tc_bar_3D_chart.rb +0 -86
- data/test/drawing/tc_bar_chart.rb +0 -86
- data/test/drawing/tc_bar_series.rb +0 -46
- data/test/drawing/tc_bubble_chart.rb +0 -44
- data/test/drawing/tc_bubble_series.rb +0 -21
- data/test/drawing/tc_cat_axis.rb +0 -31
- data/test/drawing/tc_cat_axis_data.rb +0 -27
- data/test/drawing/tc_chart.rb +0 -123
- data/test/drawing/tc_d_lbls.rb +0 -57
- data/test/drawing/tc_data_source.rb +0 -23
- data/test/drawing/tc_drawing.rb +0 -80
- data/test/drawing/tc_graphic_frame.rb +0 -27
- data/test/drawing/tc_hyperlink.rb +0 -64
- data/test/drawing/tc_line_3d_chart.rb +0 -47
- data/test/drawing/tc_line_chart.rb +0 -39
- data/test/drawing/tc_line_series.rb +0 -71
- data/test/drawing/tc_marker.rb +0 -44
- data/test/drawing/tc_named_axis_data.rb +0 -27
- data/test/drawing/tc_num_data.rb +0 -31
- data/test/drawing/tc_num_val.rb +0 -29
- data/test/drawing/tc_one_cell_anchor.rb +0 -66
- data/test/drawing/tc_pic.rb +0 -103
- data/test/drawing/tc_picture_locking.rb +0 -72
- data/test/drawing/tc_pie_3D_chart.rb +0 -28
- data/test/drawing/tc_pie_series.rb +0 -33
- data/test/drawing/tc_scaling.rb +0 -36
- data/test/drawing/tc_scatter_chart.rb +0 -48
- data/test/drawing/tc_scatter_series.rb +0 -74
- data/test/drawing/tc_ser_axis.rb +0 -31
- data/test/drawing/tc_series.rb +0 -23
- data/test/drawing/tc_series_title.rb +0 -54
- data/test/drawing/tc_str_data.rb +0 -18
- data/test/drawing/tc_str_val.rb +0 -30
- data/test/drawing/tc_title.rb +0 -70
- data/test/drawing/tc_two_cell_anchor.rb +0 -36
- data/test/drawing/tc_val_axis.rb +0 -24
- data/test/drawing/tc_view_3D.rb +0 -54
- data/test/drawing/tc_vml_drawing.rb +0 -25
- data/test/drawing/tc_vml_shape.rb +0 -106
- data/test/fixtures/image1.gif +0 -0
- data/test/fixtures/image1.jpeg +0 -0
- data/test/fixtures/image1.jpg +0 -0
- data/test/fixtures/image1.png +0 -0
- data/test/fixtures/image1_fake.jpg +0 -0
- data/test/profile.rb +0 -24
- data/test/rels/tc_relationship.rb +0 -52
- data/test/rels/tc_relationships.rb +0 -37
- data/test/stylesheet/tc_border.rb +0 -37
- data/test/stylesheet/tc_border_pr.rb +0 -32
- data/test/stylesheet/tc_cell_alignment.rb +0 -81
- data/test/stylesheet/tc_cell_protection.rb +0 -29
- data/test/stylesheet/tc_cell_style.rb +0 -57
- data/test/stylesheet/tc_color.rb +0 -43
- data/test/stylesheet/tc_dxf.rb +0 -81
- data/test/stylesheet/tc_fill.rb +0 -18
- data/test/stylesheet/tc_font.rb +0 -133
- data/test/stylesheet/tc_gradient_fill.rb +0 -72
- data/test/stylesheet/tc_gradient_stop.rb +0 -31
- data/test/stylesheet/tc_num_fmt.rb +0 -30
- data/test/stylesheet/tc_pattern_fill.rb +0 -43
- data/test/stylesheet/tc_styles.rb +0 -309
- data/test/stylesheet/tc_table_style.rb +0 -44
- data/test/stylesheet/tc_table_style_element.rb +0 -45
- data/test/stylesheet/tc_table_styles.rb +0 -29
- data/test/stylesheet/tc_xf.rb +0 -120
- data/test/tc_axlsx.rb +0 -109
- data/test/tc_helper.rb +0 -10
- data/test/tc_package.rb +0 -317
- data/test/util/tc_mime_type_utils.rb +0 -13
- data/test/util/tc_serialized_attributes.rb +0 -19
- data/test/util/tc_simple_typed_list.rb +0 -77
- data/test/util/tc_validators.rb +0 -210
- data/test/workbook/tc_defined_name.rb +0 -49
- data/test/workbook/tc_shared_strings_table.rb +0 -59
- data/test/workbook/tc_workbook.rb +0 -165
- data/test/workbook/tc_workbook_view.rb +0 -50
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
- data/test/workbook/worksheet/tc_break.rb +0 -49
- data/test/workbook/worksheet/tc_cell.rb +0 -465
- data/test/workbook/worksheet/tc_cfvo.rb +0 -31
- data/test/workbook/worksheet/tc_col.rb +0 -93
- data/test/workbook/worksheet/tc_color_scale.rb +0 -58
- data/test/workbook/worksheet/tc_comment.rb +0 -72
- data/test/workbook/worksheet/tc_comments.rb +0 -57
- data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
- data/test/workbook/worksheet/tc_data_bar.rb +0 -46
- data/test/workbook/worksheet/tc_data_validation.rb +0 -265
- data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
- data/test/workbook/worksheet/tc_header_footer.rb +0 -151
- data/test/workbook/worksheet/tc_icon_set.rb +0 -45
- data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
- data/test/workbook/worksheet/tc_page_margins.rb +0 -97
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
- data/test/workbook/worksheet/tc_page_setup.rb +0 -143
- data/test/workbook/worksheet/tc_pane.rb +0 -54
- data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
- data/test/workbook/worksheet/tc_print_options.rb +0 -72
- data/test/workbook/worksheet/tc_protected_range.rb +0 -17
- data/test/workbook/worksheet/tc_rich_text.rb +0 -44
- data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
- data/test/workbook/worksheet/tc_row.rb +0 -160
- data/test/workbook/worksheet/tc_selection.rb +0 -55
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
- data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
- data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
- data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
- data/test/workbook/worksheet/tc_table.rb +0 -77
- data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
- data/test/workbook/worksheet/tc_worksheet.rb +0 -632
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# A wraper class for comments that defines its on worksheet
|
|
4
|
-
# serailization
|
|
5
|
-
class WorksheetComments
|
|
6
|
-
|
|
7
|
-
# Creates a new WorksheetComments object
|
|
8
|
-
# param [Worksheet] worksheet The worksheet comments in thes object belong to
|
|
9
|
-
def initialize(worksheet)
|
|
10
|
-
raise ArugumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
|
|
11
|
-
@worksheet = worksheet
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
attr_reader :worksheet
|
|
15
|
-
|
|
16
|
-
# The comments for this worksheet.
|
|
17
|
-
# @return [Comments]
|
|
18
|
-
def comments
|
|
19
|
-
@comments ||= Comments.new(worksheet)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Adds a comment
|
|
23
|
-
# @param [Hash] options
|
|
24
|
-
# @see Comments#add_comment
|
|
25
|
-
def add_comment(options={})
|
|
26
|
-
comments.add_comment(options)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# The relationships defined by this objects comments collection
|
|
30
|
-
# @return [Relationships]
|
|
31
|
-
def relationships
|
|
32
|
-
return [] unless has_comments?
|
|
33
|
-
comments.relationships
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# Helper method to tell us if there are comments in the comments collection
|
|
38
|
-
# @return [Boolean]
|
|
39
|
-
def has_comments?
|
|
40
|
-
!comments.empty?
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# The relationship id of the VML drawing that will render the comments.
|
|
44
|
-
# @see Relationship#Id
|
|
45
|
-
# @return [String]
|
|
46
|
-
def drawing_rId
|
|
47
|
-
comments.relationships.find{ |r| r.Type == VML_DRAWING_R }.Id
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# Seraalize the object
|
|
51
|
-
# @param [String] str
|
|
52
|
-
# @return [String]
|
|
53
|
-
def to_xml_string(str = '')
|
|
54
|
-
return unless has_comments?
|
|
55
|
-
str << "<legacyDrawing r:id='#{drawing_rId}' />"
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# A wraper class for comments that defines its on worksheet
|
|
4
|
+
# serailization
|
|
5
|
+
class WorksheetComments
|
|
6
|
+
|
|
7
|
+
# Creates a new WorksheetComments object
|
|
8
|
+
# param [Worksheet] worksheet The worksheet comments in thes object belong to
|
|
9
|
+
def initialize(worksheet)
|
|
10
|
+
raise ArugumentError, 'You must provide a worksheet' unless worksheet.is_a?(Worksheet)
|
|
11
|
+
@worksheet = worksheet
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
attr_reader :worksheet
|
|
15
|
+
|
|
16
|
+
# The comments for this worksheet.
|
|
17
|
+
# @return [Comments]
|
|
18
|
+
def comments
|
|
19
|
+
@comments ||= Comments.new(worksheet)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Adds a comment
|
|
23
|
+
# @param [Hash] options
|
|
24
|
+
# @see Comments#add_comment
|
|
25
|
+
def add_comment(options={})
|
|
26
|
+
comments.add_comment(options)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# The relationships defined by this objects comments collection
|
|
30
|
+
# @return [Relationships]
|
|
31
|
+
def relationships
|
|
32
|
+
return [] unless has_comments?
|
|
33
|
+
comments.relationships
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# Helper method to tell us if there are comments in the comments collection
|
|
38
|
+
# @return [Boolean]
|
|
39
|
+
def has_comments?
|
|
40
|
+
!comments.empty?
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# The relationship id of the VML drawing that will render the comments.
|
|
44
|
+
# @see Relationship#Id
|
|
45
|
+
# @return [String]
|
|
46
|
+
def drawing_rId
|
|
47
|
+
comments.relationships.find{ |r| r.Type == VML_DRAWING_R }.Id
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Seraalize the object
|
|
51
|
+
# @param [String] str
|
|
52
|
+
# @return [String]
|
|
53
|
+
def to_xml_string(str = '')
|
|
54
|
+
return unless has_comments?
|
|
55
|
+
str << "<legacyDrawing r:id='#{drawing_rId}' />"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# This is a utility class for serialing the drawing node in a
|
|
4
|
-
# worksheet. Drawing objects have their own serialization that exports
|
|
5
|
-
# a drawing document. This is only for the single node in the
|
|
6
|
-
# worksheet
|
|
7
|
-
class WorksheetDrawing
|
|
8
|
-
|
|
9
|
-
# Creates a new WorksheetDrawing
|
|
10
|
-
# @param [Worksheet] worksheet
|
|
11
|
-
def initialize(worksheet)
|
|
12
|
-
raise ArgumentError, 'you must provide a worksheet' unless worksheet.is_a?(Worksheet)
|
|
13
|
-
@worksheet = worksheet
|
|
14
|
-
@drawing = nil
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
attr_reader :worksheet
|
|
18
|
-
|
|
19
|
-
attr_reader :drawing
|
|
20
|
-
|
|
21
|
-
# adds a chart to the drawing object
|
|
22
|
-
# @param [Class] chart_type The type of chart to add
|
|
23
|
-
# @param [Hash] options Options to pass on to the drawing and chart
|
|
24
|
-
# @see Worksheet#add_chart
|
|
25
|
-
def add_chart(chart_type, options)
|
|
26
|
-
@drawing ||= Drawing.new worksheet
|
|
27
|
-
drawing.add_chart(chart_type, options)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# adds an image to the drawing object
|
|
31
|
-
# @param [Hash] options Options to pass on to the drawing and image
|
|
32
|
-
# @see Worksheet#add_image
|
|
33
|
-
def add_image(options)
|
|
34
|
-
@drawing ||= Drawing.new(worksheet)
|
|
35
|
-
drawing.add_image(options)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# helper method to tell us if the drawing has something in it or not
|
|
39
|
-
# @return [Boolean]
|
|
40
|
-
def has_drawing?
|
|
41
|
-
@drawing.is_a? Drawing
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# The relationship instance for this drawing.
|
|
45
|
-
# @return [Relationship]
|
|
46
|
-
def relationship
|
|
47
|
-
return unless has_drawing?
|
|
48
|
-
Relationship.new(self, DRAWING_R, "../#{drawing.pn}")
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# Serialize the drawing for the worksheet
|
|
52
|
-
# @param [String] str
|
|
53
|
-
def to_xml_string(str = '')
|
|
54
|
-
return unless has_drawing?
|
|
55
|
-
str << "<drawing r:id='#{relationship.Id}'/>"
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# This is a utility class for serialing the drawing node in a
|
|
4
|
+
# worksheet. Drawing objects have their own serialization that exports
|
|
5
|
+
# a drawing document. This is only for the single node in the
|
|
6
|
+
# worksheet
|
|
7
|
+
class WorksheetDrawing
|
|
8
|
+
|
|
9
|
+
# Creates a new WorksheetDrawing
|
|
10
|
+
# @param [Worksheet] worksheet
|
|
11
|
+
def initialize(worksheet)
|
|
12
|
+
raise ArgumentError, 'you must provide a worksheet' unless worksheet.is_a?(Worksheet)
|
|
13
|
+
@worksheet = worksheet
|
|
14
|
+
@drawing = nil
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
attr_reader :worksheet
|
|
18
|
+
|
|
19
|
+
attr_reader :drawing
|
|
20
|
+
|
|
21
|
+
# adds a chart to the drawing object
|
|
22
|
+
# @param [Class] chart_type The type of chart to add
|
|
23
|
+
# @param [Hash] options Options to pass on to the drawing and chart
|
|
24
|
+
# @see Worksheet#add_chart
|
|
25
|
+
def add_chart(chart_type, options)
|
|
26
|
+
@drawing ||= Drawing.new worksheet
|
|
27
|
+
drawing.add_chart(chart_type, options)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# adds an image to the drawing object
|
|
31
|
+
# @param [Hash] options Options to pass on to the drawing and image
|
|
32
|
+
# @see Worksheet#add_image
|
|
33
|
+
def add_image(options)
|
|
34
|
+
@drawing ||= Drawing.new(worksheet)
|
|
35
|
+
drawing.add_image(options)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# helper method to tell us if the drawing has something in it or not
|
|
39
|
+
# @return [Boolean]
|
|
40
|
+
def has_drawing?
|
|
41
|
+
@drawing.is_a? Drawing
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# The relationship instance for this drawing.
|
|
45
|
+
# @return [Relationship]
|
|
46
|
+
def relationship
|
|
47
|
+
return unless has_drawing?
|
|
48
|
+
Relationship.new(self, DRAWING_R, "../#{drawing.pn}")
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Serialize the drawing for the worksheet
|
|
52
|
+
# @param [String] str
|
|
53
|
+
def to_xml_string(str = '')
|
|
54
|
+
return unless has_drawing?
|
|
55
|
+
str << "<drawing r:id='#{relationship.Id}'/>"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
# A worksheet hyperlink object. Note that this is not the same as a drawing hyperlink object.
|
|
4
|
-
class WorksheetHyperlink
|
|
5
|
-
|
|
6
|
-
include Axlsx::OptionsParser
|
|
7
|
-
include Axlsx::Accessors
|
|
8
|
-
include Axlsx::SerializedAttributes
|
|
9
|
-
# Creates a new hyperlink object.
|
|
10
|
-
# @note the preferred way to add hyperlinks to your worksheet is the Worksheet#add_hyperlink method
|
|
11
|
-
# @param [Worksheet] worksheet the Worksheet that owns this hyperlink
|
|
12
|
-
# @param [Hash] options options to use when creating this hyperlink
|
|
13
|
-
# @option [String] display Display string, if different from string in string table. This is a property on the hyperlink object, but does not need to appear in the spreadsheet application UI.
|
|
14
|
-
# @option [String] location Location within target. If target is a workbook (or this workbook) this shall refer to a sheet and cell or a defined name. Can also be an HTML anchor if target is HTML file.
|
|
15
|
-
# @option [String] tooltip The tip to display when the user positions the mouse cursor over this hyperlink
|
|
16
|
-
# @option [Symbol] target This is :external by default. If you set it to anything else, the location is interpreted to be the current workbook.
|
|
17
|
-
# @option [String|Cell] ref The location of this hyperlink in the worksheet
|
|
18
|
-
def initialize(worksheet, options={})
|
|
19
|
-
DataTypeValidator.validate "Hyperlink.worksheet", [Worksheet], worksheet
|
|
20
|
-
@worksheet = worksheet
|
|
21
|
-
@target = :external
|
|
22
|
-
parse_options options
|
|
23
|
-
yield self if block_given?
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
string_attr_accessor :display, :location, :tooltip
|
|
27
|
-
|
|
28
|
-
serializable_attributes :display, :tooltip, :ref
|
|
29
|
-
|
|
30
|
-
#Cell location of hyperlink on worksheet.
|
|
31
|
-
# @return [String]
|
|
32
|
-
attr_reader :ref
|
|
33
|
-
|
|
34
|
-
# Sets the target for this hyperlink. Anything other than :external instructs the library to treat the location as an in-workbook reference.
|
|
35
|
-
# @param [Symbol] target
|
|
36
|
-
def target=(target)
|
|
37
|
-
@target = target
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Sets the cell location of this hyperlink in the worksheet
|
|
41
|
-
# @param [String|Cell] cell_reference The string reference or cell that defines where this hyperlink shows in the worksheet.
|
|
42
|
-
def ref=(cell_reference)
|
|
43
|
-
cell_reference = cell_reference.r if cell_reference.is_a?(Cell)
|
|
44
|
-
Axlsx::validate_string cell_reference
|
|
45
|
-
@ref = cell_reference
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# The relationship instance for this hyperlink.
|
|
49
|
-
# A relationship is only required if `@target` is `:external`. If not, this method will simply return `nil`.
|
|
50
|
-
# @see #target=
|
|
51
|
-
# @return [Relationship]
|
|
52
|
-
def relationship
|
|
53
|
-
return unless @target == :external
|
|
54
|
-
Relationship.new(self, HYPERLINK_R, location, :target_mode => :External)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# Seralize the object
|
|
58
|
-
# @param [String] str
|
|
59
|
-
# @return [String]
|
|
60
|
-
def to_xml_string(str='')
|
|
61
|
-
str << '<hyperlink '
|
|
62
|
-
serialized_attributes str, location_or_id
|
|
63
|
-
str << '/>'
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
# The values to be used in serialization based on the target.
|
|
67
|
-
# location should only be specified for non-external targets.
|
|
68
|
-
# r:id should only be specified for external targets.
|
|
69
|
-
# @return [Hash]
|
|
70
|
-
def location_or_id
|
|
71
|
-
@target == :external ? { :"r:id" => relationship.Id } : { :location => Axlsx::coder.encode(location) }
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
# A worksheet hyperlink object. Note that this is not the same as a drawing hyperlink object.
|
|
4
|
+
class WorksheetHyperlink
|
|
5
|
+
|
|
6
|
+
include Axlsx::OptionsParser
|
|
7
|
+
include Axlsx::Accessors
|
|
8
|
+
include Axlsx::SerializedAttributes
|
|
9
|
+
# Creates a new hyperlink object.
|
|
10
|
+
# @note the preferred way to add hyperlinks to your worksheet is the Worksheet#add_hyperlink method
|
|
11
|
+
# @param [Worksheet] worksheet the Worksheet that owns this hyperlink
|
|
12
|
+
# @param [Hash] options options to use when creating this hyperlink
|
|
13
|
+
# @option [String] display Display string, if different from string in string table. This is a property on the hyperlink object, but does not need to appear in the spreadsheet application UI.
|
|
14
|
+
# @option [String] location Location within target. If target is a workbook (or this workbook) this shall refer to a sheet and cell or a defined name. Can also be an HTML anchor if target is HTML file.
|
|
15
|
+
# @option [String] tooltip The tip to display when the user positions the mouse cursor over this hyperlink
|
|
16
|
+
# @option [Symbol] target This is :external by default. If you set it to anything else, the location is interpreted to be the current workbook.
|
|
17
|
+
# @option [String|Cell] ref The location of this hyperlink in the worksheet
|
|
18
|
+
def initialize(worksheet, options={})
|
|
19
|
+
DataTypeValidator.validate "Hyperlink.worksheet", [Worksheet], worksheet
|
|
20
|
+
@worksheet = worksheet
|
|
21
|
+
@target = :external
|
|
22
|
+
parse_options options
|
|
23
|
+
yield self if block_given?
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
string_attr_accessor :display, :location, :tooltip
|
|
27
|
+
|
|
28
|
+
serializable_attributes :display, :tooltip, :ref
|
|
29
|
+
|
|
30
|
+
#Cell location of hyperlink on worksheet.
|
|
31
|
+
# @return [String]
|
|
32
|
+
attr_reader :ref
|
|
33
|
+
|
|
34
|
+
# Sets the target for this hyperlink. Anything other than :external instructs the library to treat the location as an in-workbook reference.
|
|
35
|
+
# @param [Symbol] target
|
|
36
|
+
def target=(target)
|
|
37
|
+
@target = target
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Sets the cell location of this hyperlink in the worksheet
|
|
41
|
+
# @param [String|Cell] cell_reference The string reference or cell that defines where this hyperlink shows in the worksheet.
|
|
42
|
+
def ref=(cell_reference)
|
|
43
|
+
cell_reference = cell_reference.r if cell_reference.is_a?(Cell)
|
|
44
|
+
Axlsx::validate_string cell_reference
|
|
45
|
+
@ref = cell_reference
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# The relationship instance for this hyperlink.
|
|
49
|
+
# A relationship is only required if `@target` is `:external`. If not, this method will simply return `nil`.
|
|
50
|
+
# @see #target=
|
|
51
|
+
# @return [Relationship]
|
|
52
|
+
def relationship
|
|
53
|
+
return unless @target == :external
|
|
54
|
+
Relationship.new(self, HYPERLINK_R, location, :target_mode => :External)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Seralize the object
|
|
58
|
+
# @param [String] str
|
|
59
|
+
# @return [String]
|
|
60
|
+
def to_xml_string(str='')
|
|
61
|
+
str << '<hyperlink '
|
|
62
|
+
serialized_attributes str, location_or_id
|
|
63
|
+
str << '/>'
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# The values to be used in serialization based on the target.
|
|
67
|
+
# location should only be specified for non-external targets.
|
|
68
|
+
# r:id should only be specified for external targets.
|
|
69
|
+
# @return [Hash]
|
|
70
|
+
def location_or_id
|
|
71
|
+
@target == :external ? { :"r:id" => relationship.Id } : { :location => Axlsx::coder.encode(location) }
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
module Axlsx
|
|
2
|
-
|
|
3
|
-
#A collection of hyperlink objects for a worksheet
|
|
4
|
-
class WorksheetHyperlinks < SimpleTypedList
|
|
5
|
-
|
|
6
|
-
# Creates a new Hyperlinks collection
|
|
7
|
-
# @param [Worksheet] worksheet the worksheet that owns these hyperlinks
|
|
8
|
-
def initialize(worksheet)
|
|
9
|
-
DataTypeValidator.validate "Hyperlinks.worksheet", [Worksheet], worksheet
|
|
10
|
-
@worksheet = worksheet
|
|
11
|
-
super WorksheetHyperlink
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Creates and adds a new hyperlink based on the options provided
|
|
15
|
-
# @see WorksheetHyperlink#initialize
|
|
16
|
-
# @return [WorksheetHyperlink]
|
|
17
|
-
def add(options)
|
|
18
|
-
self << WorksheetHyperlink.new(@worksheet, options)
|
|
19
|
-
last
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# The relationships required by this collection's hyperlinks
|
|
23
|
-
# @return Array
|
|
24
|
-
def relationships
|
|
25
|
-
return [] if empty?
|
|
26
|
-
map { |hyperlink| hyperlink.relationship }
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# seralize the collection of hyperlinks
|
|
30
|
-
# @return [String]
|
|
31
|
-
def to_xml_string(str='')
|
|
32
|
-
return if empty?
|
|
33
|
-
str << '<hyperlinks>'
|
|
34
|
-
each { |hyperlink| hyperlink.to_xml_string(str) }
|
|
35
|
-
str << '</hyperlinks>'
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
1
|
+
module Axlsx
|
|
2
|
+
|
|
3
|
+
#A collection of hyperlink objects for a worksheet
|
|
4
|
+
class WorksheetHyperlinks < SimpleTypedList
|
|
5
|
+
|
|
6
|
+
# Creates a new Hyperlinks collection
|
|
7
|
+
# @param [Worksheet] worksheet the worksheet that owns these hyperlinks
|
|
8
|
+
def initialize(worksheet)
|
|
9
|
+
DataTypeValidator.validate "Hyperlinks.worksheet", [Worksheet], worksheet
|
|
10
|
+
@worksheet = worksheet
|
|
11
|
+
super WorksheetHyperlink
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Creates and adds a new hyperlink based on the options provided
|
|
15
|
+
# @see WorksheetHyperlink#initialize
|
|
16
|
+
# @return [WorksheetHyperlink]
|
|
17
|
+
def add(options)
|
|
18
|
+
self << WorksheetHyperlink.new(@worksheet, options)
|
|
19
|
+
last
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# The relationships required by this collection's hyperlinks
|
|
23
|
+
# @return Array
|
|
24
|
+
def relationships
|
|
25
|
+
return [] if empty?
|
|
26
|
+
map { |hyperlink| hyperlink.relationship }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# seralize the collection of hyperlinks
|
|
30
|
+
# @return [String]
|
|
31
|
+
def to_xml_string(str='')
|
|
32
|
+
return if empty?
|
|
33
|
+
str << '<hyperlinks>'
|
|
34
|
+
each { |hyperlink| hyperlink.to_xml_string(str) }
|
|
35
|
+
str << '</hyperlinks>'
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|