caxlsx 3.0.4 → 3.2.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.
Files changed (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -334
  5. data/LICENSE +21 -21
  6. data/README.md +168 -170
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -151
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -143
  22. data/lib/axlsx/drawing/bar_series.rb +97 -80
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -98
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +97 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +388 -363
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -71
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +494 -420
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +410 -401
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +395 -370
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -162
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -170
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -71
  186. data/test/drawing/tc_bar_chart.rb +86 -71
  187. data/test/drawing/tc_bar_series.rb +46 -37
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -12
  247. data/test/tc_package.rb +317 -264
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -139
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -67
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +11 -11
@@ -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