caxlsx 3.1.1 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
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 -343
  5. data/LICENSE +21 -21
  6. data/README.md +168 -172
  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 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  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 -388
  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 -294
  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 -164
  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 -768
  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 -171
  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 -86
  186. data/test/drawing/tc_bar_chart.rb +86 -86
  187. data/test/drawing/tc_bar_series.rb +46 -46
  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 -10
  247. data/test/tc_package.rb +317 -314
  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 -143
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -62
  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 -160
  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 -77
  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 +101 -101
@@ -1,100 +1,100 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # a hyperlink object adds an action to an image when clicked so that when the image is clicked the link is fecthed.
4
- # @note using the hyperlink option when calling add_image on a drawing object is the recommended way to manage hyperlinks
5
- # @see {file:README} README
6
- class Hyperlink
7
-
8
- include Axlsx::SerializedAttributes
9
- include Axlsx::OptionsParser
10
-
11
- #Creates a hyperlink object
12
- # parent must be a Pic for now, although I expect that other object support this tag and its cNvPr parent
13
- # @param [Pic] parent
14
- # @option options [String] tooltip message shown when hyperlinked object is hovered over with mouse.
15
- # @option options [String] tgtFrame Target frame for opening hyperlink
16
- # @option options [String] invalidUrl supposedly use to store the href when we know it is an invalid resource.
17
- # @option options [String] href the target resource this hyperlink links to. This is actually stored on the relationship.
18
- # @option options [String] action A string that can be used to perform specific actions. For excel please see this reference: http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
19
- # @option options [Boolean] endSnd terminate any sound events when processing this link
20
- # @option options [Boolean] history include this link in the list of visited links for the applications history.
21
- # @option options [Boolean] highlightClick indicate that the link has already been visited.
22
- def initialize(parent, options={})
23
- DataTypeValidator.validate "Hyperlink.parent", [Pic], parent
24
- @parent = parent
25
- parse_options options
26
- yield self if block_given?
27
- end
28
-
29
- serializable_attributes :invalid_url, :action, :end_snd, :highlight_click, :history, :tgt_frame, :tooltip
30
-
31
- # The destination of the hyperlink stored in the drawing's relationships document.
32
- # @return [String]
33
- attr_accessor :href
34
-
35
- # The spec says: Specifies the URL when it has been determined by the generating application that the URL is invalid. That is the generating application can still store the URL but it is known that this URL is not correct.
36
- #
37
- # What exactly that means is beyond me so if you ever use this, let me know!
38
- # @return [String]
39
- attr_accessor :invalid_url
40
- alias :invalidUrl :invalid_url
41
- alias :invalidUrl= :invalid_url=
42
-
43
- #An action to take when the link is clicked. The specification says "This can be used to specify a slide to be navigated to or a script of code to be run." but in most cases you will not need to do anything with this. MS does reserve a few interesting strings. @see http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
44
- # @return [String]
45
- attr_accessor :action
46
-
47
- # Specifies if all sound events should be terminated when this link is clicked.
48
- # @return [Boolean]
49
- attr_reader :end_snd
50
- alias :endSnd :end_snd
51
-
52
- # @see endSnd
53
- # @param [Boolean] v The boolean value indicating the termination of playing sounds on click
54
- # @return [Boolean]
55
- def end_snd=(v) Axlsx::validate_boolean(v); @end_snd = v end
56
- alias :endSnd= :end_snd=
57
-
58
- # indicates that the link has already been clicked.
59
- # @return [Boolean]
60
- attr_reader :highlight_click
61
- alias :highlightClick :highlight_click
62
-
63
- # @see highlightClick
64
- # @param [Boolean] v The value to assign
65
- def highlight_click=(v) Axlsx::validate_boolean(v); @highlight_click = v end
66
- alias :highlightClick= :highlight_click=
67
-
68
- # From the specs: Specifies whether to add this URI to the history when navigating to it. This allows for the viewing of this presentation without the storing of history information on the viewing machine. If this attribute is omitted, then a value of 1 or true is assumed.
69
- # @return [Boolean]
70
- attr_reader :history
71
-
72
- # @see history
73
- # param [Boolean] v The value to assing
74
- def history=(v) Axlsx::validate_boolean(v); @history = v end
75
-
76
- # From the specs: Specifies the target frame that is to be used when opening this hyperlink. When the hyperlink is activated this attribute is used to determine if a new window is launched for viewing or if an existing one can be used. If this attribute is omitted, than a new window is opened.
77
- # @return [String]
78
- attr_accessor :tgt_frame
79
- alias :tgtFrame :tgt_frame
80
- alias :tgtFrame= :tgt_frame=
81
-
82
- # Text to show when you mouse over the hyperlink. If you do not set this, the href property will be shown.
83
- # @return [String]
84
- attr_accessor :tooltip
85
-
86
- # The relationship object for this hyperlink.
87
- # @return [Relationship]
88
- def relationship
89
- Relationship.new(self, HYPERLINK_R, href, :target_mode => :External)
90
- end
91
-
92
- # Serializes the object
93
- # @param [String] str
94
- # @return [String]
95
- def to_xml_string(str = '')
96
- serialized_tag 'a:hlinkClick', str, {:'r:id' => relationship.Id, :'xmlns:r' => XML_NS_R }
97
- end
98
-
99
- end
100
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # a hyperlink object adds an action to an image when clicked so that when the image is clicked the link is fecthed.
4
+ # @note using the hyperlink option when calling add_image on a drawing object is the recommended way to manage hyperlinks
5
+ # @see {file:README} README
6
+ class Hyperlink
7
+
8
+ include Axlsx::SerializedAttributes
9
+ include Axlsx::OptionsParser
10
+
11
+ #Creates a hyperlink object
12
+ # parent must be a Pic for now, although I expect that other object support this tag and its cNvPr parent
13
+ # @param [Pic] parent
14
+ # @option options [String] tooltip message shown when hyperlinked object is hovered over with mouse.
15
+ # @option options [String] tgtFrame Target frame for opening hyperlink
16
+ # @option options [String] invalidUrl supposedly use to store the href when we know it is an invalid resource.
17
+ # @option options [String] href the target resource this hyperlink links to. This is actually stored on the relationship.
18
+ # @option options [String] action A string that can be used to perform specific actions. For excel please see this reference: http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
19
+ # @option options [Boolean] endSnd terminate any sound events when processing this link
20
+ # @option options [Boolean] history include this link in the list of visited links for the applications history.
21
+ # @option options [Boolean] highlightClick indicate that the link has already been visited.
22
+ def initialize(parent, options={})
23
+ DataTypeValidator.validate "Hyperlink.parent", [Pic], parent
24
+ @parent = parent
25
+ parse_options options
26
+ yield self if block_given?
27
+ end
28
+
29
+ serializable_attributes :invalid_url, :action, :end_snd, :highlight_click, :history, :tgt_frame, :tooltip
30
+
31
+ # The destination of the hyperlink stored in the drawing's relationships document.
32
+ # @return [String]
33
+ attr_accessor :href
34
+
35
+ # The spec says: Specifies the URL when it has been determined by the generating application that the URL is invalid. That is the generating application can still store the URL but it is known that this URL is not correct.
36
+ #
37
+ # What exactly that means is beyond me so if you ever use this, let me know!
38
+ # @return [String]
39
+ attr_accessor :invalid_url
40
+ alias :invalidUrl :invalid_url
41
+ alias :invalidUrl= :invalid_url=
42
+
43
+ #An action to take when the link is clicked. The specification says "This can be used to specify a slide to be navigated to or a script of code to be run." but in most cases you will not need to do anything with this. MS does reserve a few interesting strings. @see http://msdn.microsoft.com/en-us/library/ff532419%28v=office.12%29.aspx
44
+ # @return [String]
45
+ attr_accessor :action
46
+
47
+ # Specifies if all sound events should be terminated when this link is clicked.
48
+ # @return [Boolean]
49
+ attr_reader :end_snd
50
+ alias :endSnd :end_snd
51
+
52
+ # @see endSnd
53
+ # @param [Boolean] v The boolean value indicating the termination of playing sounds on click
54
+ # @return [Boolean]
55
+ def end_snd=(v) Axlsx::validate_boolean(v); @end_snd = v end
56
+ alias :endSnd= :end_snd=
57
+
58
+ # indicates that the link has already been clicked.
59
+ # @return [Boolean]
60
+ attr_reader :highlight_click
61
+ alias :highlightClick :highlight_click
62
+
63
+ # @see highlightClick
64
+ # @param [Boolean] v The value to assign
65
+ def highlight_click=(v) Axlsx::validate_boolean(v); @highlight_click = v end
66
+ alias :highlightClick= :highlight_click=
67
+
68
+ # From the specs: Specifies whether to add this URI to the history when navigating to it. This allows for the viewing of this presentation without the storing of history information on the viewing machine. If this attribute is omitted, then a value of 1 or true is assumed.
69
+ # @return [Boolean]
70
+ attr_reader :history
71
+
72
+ # @see history
73
+ # param [Boolean] v The value to assing
74
+ def history=(v) Axlsx::validate_boolean(v); @history = v end
75
+
76
+ # From the specs: Specifies the target frame that is to be used when opening this hyperlink. When the hyperlink is activated this attribute is used to determine if a new window is launched for viewing or if an existing one can be used. If this attribute is omitted, than a new window is opened.
77
+ # @return [String]
78
+ attr_accessor :tgt_frame
79
+ alias :tgtFrame :tgt_frame
80
+ alias :tgtFrame= :tgt_frame=
81
+
82
+ # Text to show when you mouse over the hyperlink. If you do not set this, the href property will be shown.
83
+ # @return [String]
84
+ attr_accessor :tooltip
85
+
86
+ # The relationship object for this hyperlink.
87
+ # @return [Relationship]
88
+ def relationship
89
+ Relationship.new(self, HYPERLINK_R, href, :target_mode => :External)
90
+ end
91
+
92
+ # Serializes the object
93
+ # @param [String] str
94
+ # @return [String]
95
+ def to_xml_string(str = '')
96
+ serialized_tag 'a:hlinkClick', str, {:'r:id' => relationship.Id, :'xmlns:r' => XML_NS_R }
97
+ end
98
+
99
+ end
100
+ end
@@ -1,68 +1,68 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # The Line3DChart is a three dimentional line chart (who would have guessed?) that you can add to your worksheet.
5
- # @example Creating a chart
6
- # # This example creates a line in a single sheet.
7
- # require "rubygems" # if that is your preferred way to manage gems!
8
- # require "axlsx"
9
- #
10
- # p = Axlsx::Package.new
11
- # ws = p.workbook.add_worksheet
12
- # ws.add_row ["This is a chart with no data in the sheet"]
13
- #
14
- # chart = ws.add_chart(Axlsx::Line3DChart, :start_at=> [0,1], :end_at=>[0,6], :t#itle=>"Most Popular Pets")
15
- # chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]
16
- #
17
- # @see Worksheet#add_chart
18
- # @see Worksheet#add_row
19
- # @see Chart#add_series
20
- # @see Series
21
- # @see Package#serialize
22
- class Line3DChart < Axlsx::LineChart
23
-
24
- # space between bar or column clusters, as a percentage of the bar or column width.
25
- # @return [String]
26
- attr_reader :gap_depth
27
- alias :gapDepth :gap_depth
28
-
29
- # validation regex for gap amount percent
30
- GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
31
-
32
- # the category axis
33
- # @return [Axis]
34
- def ser_axis
35
- axes[:ser_axis]
36
- end
37
- alias :serAxis :ser_axis
38
-
39
- # Creates a new line chart object
40
- # @option options [String] gap_depth
41
- # @see Chart
42
- # @see lineChart
43
- # @see View3D
44
- def initialize(frame, options={})
45
- @gap_depth = nil
46
- @view_3D = View3D.new({:r_ang_ax=>1}.merge(options))
47
- super(frame, options)
48
- axes.add_axis :ser_axis, SerAxis
49
- end
50
-
51
-
52
- # @see gapDepth
53
- def gap_depth=(v)
54
- RegexValidator.validate "Line3DChart.gapWidth", GAP_AMOUNT_PERCENT, v
55
- @gap_depth=(v)
56
- end
57
- alias :gapDepth= :gap_depth=
58
-
59
- # Serializes the object
60
- # @param [String] str
61
- # @return [String]
62
- def to_xml_string(str = '')
63
- super(str) do
64
- str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
65
- end
66
- end
67
- end
68
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # The Line3DChart is a three dimentional line chart (who would have guessed?) that you can add to your worksheet.
5
+ # @example Creating a chart
6
+ # # This example creates a line in a single sheet.
7
+ # require "rubygems" # if that is your preferred way to manage gems!
8
+ # require "axlsx"
9
+ #
10
+ # p = Axlsx::Package.new
11
+ # ws = p.workbook.add_worksheet
12
+ # ws.add_row ["This is a chart with no data in the sheet"]
13
+ #
14
+ # chart = ws.add_chart(Axlsx::Line3DChart, :start_at=> [0,1], :end_at=>[0,6], :t#itle=>"Most Popular Pets")
15
+ # chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]
16
+ #
17
+ # @see Worksheet#add_chart
18
+ # @see Worksheet#add_row
19
+ # @see Chart#add_series
20
+ # @see Series
21
+ # @see Package#serialize
22
+ class Line3DChart < Axlsx::LineChart
23
+
24
+ # space between bar or column clusters, as a percentage of the bar or column width.
25
+ # @return [String]
26
+ attr_reader :gap_depth
27
+ alias :gapDepth :gap_depth
28
+
29
+ # validation regex for gap amount percent
30
+ GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
31
+
32
+ # the category axis
33
+ # @return [Axis]
34
+ def ser_axis
35
+ axes[:ser_axis]
36
+ end
37
+ alias :serAxis :ser_axis
38
+
39
+ # Creates a new line chart object
40
+ # @option options [String] gap_depth
41
+ # @see Chart
42
+ # @see lineChart
43
+ # @see View3D
44
+ def initialize(frame, options={})
45
+ @gap_depth = nil
46
+ @view_3D = View3D.new({:r_ang_ax=>1}.merge(options))
47
+ super(frame, options)
48
+ axes.add_axis :ser_axis, SerAxis
49
+ end
50
+
51
+
52
+ # @see gapDepth
53
+ def gap_depth=(v)
54
+ RegexValidator.validate "Line3DChart.gapWidth", GAP_AMOUNT_PERCENT, v
55
+ @gap_depth=(v)
56
+ end
57
+ alias :gapDepth= :gap_depth=
58
+
59
+ # Serializes the object
60
+ # @param [String] str
61
+ # @return [String]
62
+ def to_xml_string(str = '')
63
+ super(str) do
64
+ str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
65
+ end
66
+ end
67
+ end
68
+ end
@@ -1,99 +1,99 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # The LineChart is a two dimentional line chart (who would have guessed?) that you can add to your worksheet.
5
- # @example Creating a chart
6
- # # This example creates a line in a single sheet.
7
- # require "rubygems" # if that is your preferred way to manage gems!
8
- # require "axlsx"
9
- #
10
- # p = Axlsx::Package.new
11
- # ws = p.workbook.add_worksheet
12
- # ws.add_row ["This is a chart with no data in the sheet"]
13
- #
14
- # chart = ws.add_chart(Axlsx::LineChart, :start_at=> [0,1], :end_at=>[0,6], :title=>"Most Popular Pets")
15
- # chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]
16
- #
17
- # @see Worksheet#add_chart
18
- # @see Worksheet#add_row
19
- # @see Chart#add_series
20
- # @see Series
21
- # @see Package#serialize
22
- class LineChart < Chart
23
-
24
- # the category axis
25
- # @return [CatAxis]
26
- def cat_axis
27
- axes[:cat_axis]
28
- end
29
- alias :catAxis :cat_axis
30
-
31
- # the category axis
32
- # @return [ValAxis]
33
- def val_axis
34
- axes[:val_axis]
35
- end
36
- alias :valAxis :val_axis
37
-
38
- # must be one of [:percentStacked, :clustered, :standard, :stacked]
39
- # @return [Symbol]
40
- attr_reader :grouping
41
-
42
- # Creates a new line chart object
43
- # @param [GraphicFrame] frame The workbook that owns this chart.
44
- # @option options [Cell, String] title
45
- # @option options [Boolean] show_legend
46
- # @option options [Symbol] grouping
47
- # @see Chart
48
- def initialize(frame, options={})
49
- @vary_colors = false
50
- @grouping = :standard
51
- super(frame, options)
52
- @series_type = LineSeries
53
- @d_lbls = nil
54
- end
55
-
56
- # @see grouping
57
- def grouping=(v)
58
- RestrictionValidator.validate "LineChart.grouping", [:percentStacked, :standard, :stacked], v
59
- @grouping = v
60
- end
61
-
62
- # The node name to use in serialization. As LineChart is used as the
63
- # base class for Liine3DChart we need to be sure to serialize the
64
- # chart based on the actual class type and not a fixed node name.
65
- # @return [String]
66
- def node_name
67
- path = self.class.to_s
68
- if i = path.rindex('::')
69
- path = path[(i+2)..-1]
70
- end
71
- path[0] = path[0].chr.downcase
72
- path
73
- end
74
-
75
- # Serializes the object
76
- # @param [String] str
77
- # @return [String]
78
- def to_xml_string(str = '')
79
- super(str) do
80
- str << ("<c:" << node_name << ">")
81
- str << ('<c:grouping val="' << grouping.to_s << '"/>')
82
- str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
83
- @series.each { |ser| ser.to_xml_string(str) }
84
- @d_lbls.to_xml_string(str) if @d_lbls
85
- yield if block_given?
86
- axes.to_xml_string(str, :ids => true)
87
- str << ("</c:" << node_name << ">")
88
- axes.to_xml_string(str)
89
- end
90
- end
91
-
92
- # The axes for this chart. LineCharts have a category and value
93
- # axis.
94
- # @return [Axes]
95
- def axes
96
- @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
97
- end
98
- end
99
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # The LineChart is a two dimentional line chart (who would have guessed?) that you can add to your worksheet.
5
+ # @example Creating a chart
6
+ # # This example creates a line in a single sheet.
7
+ # require "rubygems" # if that is your preferred way to manage gems!
8
+ # require "axlsx"
9
+ #
10
+ # p = Axlsx::Package.new
11
+ # ws = p.workbook.add_worksheet
12
+ # ws.add_row ["This is a chart with no data in the sheet"]
13
+ #
14
+ # chart = ws.add_chart(Axlsx::LineChart, :start_at=> [0,1], :end_at=>[0,6], :title=>"Most Popular Pets")
15
+ # chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]
16
+ #
17
+ # @see Worksheet#add_chart
18
+ # @see Worksheet#add_row
19
+ # @see Chart#add_series
20
+ # @see Series
21
+ # @see Package#serialize
22
+ class LineChart < Chart
23
+
24
+ # the category axis
25
+ # @return [CatAxis]
26
+ def cat_axis
27
+ axes[:cat_axis]
28
+ end
29
+ alias :catAxis :cat_axis
30
+
31
+ # the category axis
32
+ # @return [ValAxis]
33
+ def val_axis
34
+ axes[:val_axis]
35
+ end
36
+ alias :valAxis :val_axis
37
+
38
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
39
+ # @return [Symbol]
40
+ attr_reader :grouping
41
+
42
+ # Creates a new line chart object
43
+ # @param [GraphicFrame] frame The workbook that owns this chart.
44
+ # @option options [Cell, String] title
45
+ # @option options [Boolean] show_legend
46
+ # @option options [Symbol] grouping
47
+ # @see Chart
48
+ def initialize(frame, options={})
49
+ @vary_colors = false
50
+ @grouping = :standard
51
+ super(frame, options)
52
+ @series_type = LineSeries
53
+ @d_lbls = nil
54
+ end
55
+
56
+ # @see grouping
57
+ def grouping=(v)
58
+ RestrictionValidator.validate "LineChart.grouping", [:percentStacked, :standard, :stacked], v
59
+ @grouping = v
60
+ end
61
+
62
+ # The node name to use in serialization. As LineChart is used as the
63
+ # base class for Liine3DChart we need to be sure to serialize the
64
+ # chart based on the actual class type and not a fixed node name.
65
+ # @return [String]
66
+ def node_name
67
+ path = self.class.to_s
68
+ if i = path.rindex('::')
69
+ path = path[(i+2)..-1]
70
+ end
71
+ path[0] = path[0].chr.downcase
72
+ path
73
+ end
74
+
75
+ # Serializes the object
76
+ # @param [String] str
77
+ # @return [String]
78
+ def to_xml_string(str = '')
79
+ super(str) do
80
+ str << ("<c:" << node_name << ">")
81
+ str << ('<c:grouping val="' << grouping.to_s << '"/>')
82
+ str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
83
+ @series.each { |ser| ser.to_xml_string(str) }
84
+ @d_lbls.to_xml_string(str) if @d_lbls
85
+ yield if block_given?
86
+ axes.to_xml_string(str, :ids => true)
87
+ str << ("</c:" << node_name << ">")
88
+ axes.to_xml_string(str)
89
+ end
90
+ end
91
+
92
+ # The axes for this chart. LineCharts have a category and value
93
+ # axis.
94
+ # @return [Axes]
95
+ def axes
96
+ @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
97
+ end
98
+ end
99
+ end