caxlsx 3.2.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +394 -354
  5. data/LICENSE +21 -21
  6. data/README.md +184 -168
  7. data/Rakefile +28 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +29 -32
  10. data/lib/axlsx/content_type/content_type.rb +22 -26
  11. data/lib/axlsx/content_type/default.rb +21 -25
  12. data/lib/axlsx/content_type/override.rb +21 -25
  13. data/lib/axlsx/doc_props/app.rb +230 -235
  14. data/lib/axlsx/doc_props/core.rb +34 -39
  15. data/lib/axlsx/drawing/area_chart.rb +96 -99
  16. data/lib/axlsx/drawing/area_series.rb +107 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +21 -26
  18. data/lib/axlsx/drawing/axes.rb +60 -61
  19. data/lib/axlsx/drawing/axis.rb +185 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +145 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +135 -138
  22. data/lib/axlsx/drawing/bar_series.rb +91 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +56 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +60 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +80 -85
  26. data/lib/axlsx/drawing/chart.rb +294 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +92 -90
  28. data/lib/axlsx/drawing/drawing.rb +163 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +51 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +97 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +64 -68
  32. data/lib/axlsx/drawing/line_chart.rb +96 -99
  33. data/lib/axlsx/drawing/line_series.rb +107 -110
  34. data/lib/axlsx/drawing/marker.rb +80 -84
  35. data/lib/axlsx/drawing/num_data.rb +47 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +58 -62
  37. data/lib/axlsx/drawing/num_val.rb +31 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +97 -99
  39. data/lib/axlsx/drawing/pic.rb +244 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +39 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +42 -47
  42. data/lib/axlsx/drawing/pie_series.rb +69 -74
  43. data/lib/axlsx/drawing/scaling.rb +57 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +71 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +126 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +41 -45
  47. data/lib/axlsx/drawing/series.rb +67 -69
  48. data/lib/axlsx/drawing/series_title.rb +23 -25
  49. data/lib/axlsx/drawing/str_data.rb +37 -42
  50. data/lib/axlsx/drawing/str_val.rb +31 -34
  51. data/lib/axlsx/drawing/title.rb +104 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +95 -97
  53. data/lib/axlsx/drawing/val_axis.rb +34 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +39 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +63 -66
  57. data/lib/axlsx/package.rb +397 -388
  58. data/lib/axlsx/rels/relationship.rb +127 -130
  59. data/lib/axlsx/rels/relationships.rb +29 -32
  60. data/lib/axlsx/stylesheet/border.rb +70 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +69 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +124 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +38 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +68 -72
  65. data/lib/axlsx/stylesheet/color.rb +77 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +75 -79
  67. data/lib/axlsx/stylesheet/fill.rb +31 -35
  68. data/lib/axlsx/stylesheet/font.rb +157 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +101 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +36 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +83 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +71 -73
  73. data/lib/axlsx/stylesheet/styles.rb +543 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +51 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +74 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +42 -46
  77. data/lib/axlsx/stylesheet/xf.rb +144 -147
  78. data/lib/axlsx/util/accessors.rb +62 -64
  79. data/lib/axlsx/util/constants.rb +414 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +24 -11
  81. data/lib/axlsx/util/options_parser.rb +15 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +88 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +180 -179
  84. data/lib/axlsx/util/storage.rb +142 -146
  85. data/lib/axlsx/util/validators.rb +315 -312
  86. data/lib/axlsx/util/zip_command.rb +71 -73
  87. data/lib/axlsx/version.rb +4 -5
  88. data/lib/axlsx/workbook/defined_name.rb +129 -128
  89. data/lib/axlsx/workbook/defined_names.rb +20 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +74 -77
  91. data/lib/axlsx/workbook/workbook.rb +430 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +75 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +20 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +78 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +243 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +79 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +32 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +552 -506
  100. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  101. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  102. data/lib/axlsx/workbook/worksheet/cfvos.rb +16 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +142 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +34 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +108 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +90 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +78 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +81 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +216 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +23 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +127 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +266 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +25 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +28 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +65 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +51 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +80 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +32 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +42 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +237 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +138 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +332 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +63 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +23 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +38 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +53 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +266 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +173 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +32 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +99 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +28 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +18 -18
  139. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  140. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +117 -118
  141. data/lib/axlsx/workbook/worksheet/sheet_view.rb +206 -213
  142. data/lib/axlsx/workbook/worksheet/table.rb +100 -102
  143. data/lib/axlsx/workbook/worksheet/table_style_info.rb +48 -49
  144. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  145. data/lib/axlsx/workbook/worksheet/worksheet.rb +857 -786
  146. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +59 -58
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +73 -74
  149. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  150. data/lib/axlsx.rb +218 -185
  151. data/lib/caxlsx.rb +1 -2
  152. data/lib/schema/dc.xsd +118 -118
  153. data/lib/schema/dcmitype.xsd +51 -51
  154. data/lib/schema/dcterms.xsd +331 -331
  155. data/lib/schema/dml-chartDrawing.xsd +146 -146
  156. data/lib/schema/dml-compatibility.xsd +14 -14
  157. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  158. data/lib/schema/dml-main.xsd +3048 -3048
  159. data/lib/schema/dml-picture.xsd +23 -23
  160. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  161. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  162. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  163. data/lib/schema/shared-bibliography.xsd +144 -144
  164. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  165. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  166. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  167. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  168. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  169. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  170. data/lib/schema/shared-relationshipReference.xsd +25 -25
  171. data/lib/schema/vml-main.xsd +569 -569
  172. data/lib/schema/vml-officeDrawing.xsd +509 -509
  173. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  174. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  175. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  176. data/lib/schema/xml.xsd +116 -116
  177. metadata +5 -252
  178. data/test/benchmark.rb +0 -72
  179. data/test/content_type/tc_content_type.rb +0 -76
  180. data/test/content_type/tc_default.rb +0 -16
  181. data/test/content_type/tc_override.rb +0 -14
  182. data/test/doc_props/tc_app.rb +0 -43
  183. data/test/doc_props/tc_core.rb +0 -42
  184. data/test/drawing/tc_area_chart.rb +0 -39
  185. data/test/drawing/tc_area_series.rb +0 -71
  186. data/test/drawing/tc_axes.rb +0 -8
  187. data/test/drawing/tc_axis.rb +0 -112
  188. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  189. data/test/drawing/tc_bar_chart.rb +0 -86
  190. data/test/drawing/tc_bar_series.rb +0 -46
  191. data/test/drawing/tc_bubble_chart.rb +0 -44
  192. data/test/drawing/tc_bubble_series.rb +0 -21
  193. data/test/drawing/tc_cat_axis.rb +0 -31
  194. data/test/drawing/tc_cat_axis_data.rb +0 -27
  195. data/test/drawing/tc_chart.rb +0 -123
  196. data/test/drawing/tc_d_lbls.rb +0 -57
  197. data/test/drawing/tc_data_source.rb +0 -23
  198. data/test/drawing/tc_drawing.rb +0 -80
  199. data/test/drawing/tc_graphic_frame.rb +0 -27
  200. data/test/drawing/tc_hyperlink.rb +0 -64
  201. data/test/drawing/tc_line_3d_chart.rb +0 -47
  202. data/test/drawing/tc_line_chart.rb +0 -39
  203. data/test/drawing/tc_line_series.rb +0 -71
  204. data/test/drawing/tc_marker.rb +0 -44
  205. data/test/drawing/tc_named_axis_data.rb +0 -27
  206. data/test/drawing/tc_num_data.rb +0 -31
  207. data/test/drawing/tc_num_val.rb +0 -29
  208. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  209. data/test/drawing/tc_pic.rb +0 -103
  210. data/test/drawing/tc_picture_locking.rb +0 -72
  211. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  212. data/test/drawing/tc_pie_series.rb +0 -33
  213. data/test/drawing/tc_scaling.rb +0 -36
  214. data/test/drawing/tc_scatter_chart.rb +0 -48
  215. data/test/drawing/tc_scatter_series.rb +0 -74
  216. data/test/drawing/tc_ser_axis.rb +0 -31
  217. data/test/drawing/tc_series.rb +0 -23
  218. data/test/drawing/tc_series_title.rb +0 -54
  219. data/test/drawing/tc_str_data.rb +0 -18
  220. data/test/drawing/tc_str_val.rb +0 -30
  221. data/test/drawing/tc_title.rb +0 -70
  222. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  223. data/test/drawing/tc_val_axis.rb +0 -24
  224. data/test/drawing/tc_view_3D.rb +0 -54
  225. data/test/drawing/tc_vml_drawing.rb +0 -25
  226. data/test/drawing/tc_vml_shape.rb +0 -106
  227. data/test/fixtures/image1.gif +0 -0
  228. data/test/fixtures/image1.jpeg +0 -0
  229. data/test/fixtures/image1.jpg +0 -0
  230. data/test/fixtures/image1.png +0 -0
  231. data/test/fixtures/image1_fake.jpg +0 -0
  232. data/test/profile.rb +0 -24
  233. data/test/rels/tc_relationship.rb +0 -52
  234. data/test/rels/tc_relationships.rb +0 -37
  235. data/test/stylesheet/tc_border.rb +0 -37
  236. data/test/stylesheet/tc_border_pr.rb +0 -32
  237. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  238. data/test/stylesheet/tc_cell_protection.rb +0 -29
  239. data/test/stylesheet/tc_cell_style.rb +0 -57
  240. data/test/stylesheet/tc_color.rb +0 -43
  241. data/test/stylesheet/tc_dxf.rb +0 -81
  242. data/test/stylesheet/tc_fill.rb +0 -18
  243. data/test/stylesheet/tc_font.rb +0 -133
  244. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  245. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  246. data/test/stylesheet/tc_num_fmt.rb +0 -30
  247. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  248. data/test/stylesheet/tc_styles.rb +0 -309
  249. data/test/stylesheet/tc_table_style.rb +0 -44
  250. data/test/stylesheet/tc_table_style_element.rb +0 -45
  251. data/test/stylesheet/tc_table_styles.rb +0 -29
  252. data/test/stylesheet/tc_xf.rb +0 -120
  253. data/test/tc_axlsx.rb +0 -109
  254. data/test/tc_helper.rb +0 -10
  255. data/test/tc_package.rb +0 -317
  256. data/test/util/tc_mime_type_utils.rb +0 -13
  257. data/test/util/tc_serialized_attributes.rb +0 -19
  258. data/test/util/tc_simple_typed_list.rb +0 -77
  259. data/test/util/tc_validators.rb +0 -210
  260. data/test/workbook/tc_defined_name.rb +0 -49
  261. data/test/workbook/tc_shared_strings_table.rb +0 -59
  262. data/test/workbook/tc_workbook.rb +0 -165
  263. data/test/workbook/tc_workbook_view.rb +0 -50
  264. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  265. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  266. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  267. data/test/workbook/worksheet/tc_break.rb +0 -49
  268. data/test/workbook/worksheet/tc_cell.rb +0 -465
  269. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  270. data/test/workbook/worksheet/tc_col.rb +0 -93
  271. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  272. data/test/workbook/worksheet/tc_comment.rb +0 -72
  273. data/test/workbook/worksheet/tc_comments.rb +0 -57
  274. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  275. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  276. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  277. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  278. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  279. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  280. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  281. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  282. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  283. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  284. data/test/workbook/worksheet/tc_pane.rb +0 -54
  285. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  286. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  287. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  288. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  289. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  290. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  291. data/test/workbook/worksheet/tc_row.rb +0 -160
  292. data/test/workbook/worksheet/tc_selection.rb +0 -55
  293. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  294. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  295. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  296. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  297. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  298. data/test/workbook/worksheet/tc_table.rb +0 -77
  299. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  300. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  301. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,100 +1,97 @@
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
+ module Axlsx
2
+ # a hyperlink object adds an action to an image when clicked so that when the image is clicked the link is fecthed.
3
+ # @note using the hyperlink option when calling add_image on a drawing object is the recommended way to manage hyperlinks
4
+ # @see {file:README} README
5
+ class Hyperlink
6
+ include Axlsx::SerializedAttributes
7
+ include Axlsx::OptionsParser
8
+
9
+ # Creates a hyperlink object
10
+ # parent must be a Pic for now, although I expect that other object support this tag and its cNvPr parent
11
+ # @param [Pic] parent
12
+ # @option options [String] tooltip message shown when hyperlinked object is hovered over with mouse.
13
+ # @option options [String] tgtFrame Target frame for opening hyperlink
14
+ # @option options [String] invalidUrl supposedly use to store the href when we know it is an invalid resource.
15
+ # @option options [String] href the target resource this hyperlink links to. This is actually stored on the relationship.
16
+ # @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
17
+ # @option options [Boolean] endSnd terminate any sound events when processing this link
18
+ # @option options [Boolean] history include this link in the list of visited links for the applications history.
19
+ # @option options [Boolean] highlightClick indicate that the link has already been visited.
20
+ def initialize(parent, options = {})
21
+ DataTypeValidator.validate "Hyperlink.parent", [Pic], parent
22
+ @parent = parent
23
+ parse_options options
24
+ yield self if block_given?
25
+ end
26
+
27
+ serializable_attributes :invalid_url, :action, :end_snd, :highlight_click, :history, :tgt_frame, :tooltip
28
+
29
+ # The destination of the hyperlink stored in the drawing's relationships document.
30
+ # @return [String]
31
+ attr_accessor :href
32
+
33
+ # 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.
34
+ #
35
+ # What exactly that means is beyond me so if you ever use this, let me know!
36
+ # @return [String]
37
+ attr_accessor :invalid_url
38
+ alias :invalidUrl :invalid_url
39
+ alias :invalidUrl= :invalid_url=
40
+
41
+ # 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
42
+ # @return [String]
43
+ attr_accessor :action
44
+
45
+ # Specifies if all sound events should be terminated when this link is clicked.
46
+ # @return [Boolean]
47
+ attr_reader :end_snd
48
+ alias :endSnd :end_snd
49
+
50
+ # @see endSnd
51
+ # @param [Boolean] v The boolean value indicating the termination of playing sounds on click
52
+ # @return [Boolean]
53
+ def end_snd=(v) Axlsx::validate_boolean(v); @end_snd = v end
54
+ alias :endSnd= :end_snd=
55
+
56
+ # indicates that the link has already been clicked.
57
+ # @return [Boolean]
58
+ attr_reader :highlight_click
59
+ alias :highlightClick :highlight_click
60
+
61
+ # @see highlightClick
62
+ # @param [Boolean] v The value to assign
63
+ def highlight_click=(v) Axlsx::validate_boolean(v); @highlight_click = v end
64
+ alias :highlightClick= :highlight_click=
65
+
66
+ # 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.
67
+ # @return [Boolean]
68
+ attr_reader :history
69
+
70
+ # @see history
71
+ # param [Boolean] v The value to assing
72
+ def history=(v) Axlsx::validate_boolean(v); @history = v end
73
+
74
+ # 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.
75
+ # @return [String]
76
+ attr_accessor :tgt_frame
77
+ alias :tgtFrame :tgt_frame
78
+ alias :tgtFrame= :tgt_frame=
79
+
80
+ # Text to show when you mouse over the hyperlink. If you do not set this, the href property will be shown.
81
+ # @return [String]
82
+ attr_accessor :tooltip
83
+
84
+ # The relationship object for this hyperlink.
85
+ # @return [Relationship]
86
+ def relationship
87
+ Relationship.new(self, HYPERLINK_R, href, :target_mode => :External)
88
+ end
89
+
90
+ # Serializes the object
91
+ # @param [String] str
92
+ # @return [String]
93
+ def to_xml_string(str = '')
94
+ serialized_tag 'a:hlinkClick', str, { :'r:id' => relationship.Id, :'xmlns:r' => XML_NS_R }
95
+ end
96
+ end
97
+ end
@@ -1,68 +1,64 @@
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
+ module Axlsx
2
+ # The Line3DChart is a three dimentional line chart (who would have guessed?) that you can add to your worksheet.
3
+ # @example Creating a chart
4
+ # # This example creates a line in a single sheet.
5
+ # require "rubygems" # if that is your preferred way to manage gems!
6
+ # require "axlsx"
7
+ #
8
+ # p = Axlsx::Package.new
9
+ # ws = p.workbook.add_worksheet
10
+ # ws.add_row ["This is a chart with no data in the sheet"]
11
+ #
12
+ # chart = ws.add_chart(Axlsx::Line3DChart, :start_at=> [0,1], :end_at=>[0,6], :t#itle=>"Most Popular Pets")
13
+ # chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]
14
+ #
15
+ # @see Worksheet#add_chart
16
+ # @see Worksheet#add_row
17
+ # @see Chart#add_series
18
+ # @see Series
19
+ # @see Package#serialize
20
+ class Line3DChart < Axlsx::LineChart
21
+ # space between bar or column clusters, as a percentage of the bar or column width.
22
+ # @return [String]
23
+ attr_reader :gap_depth
24
+ alias :gapDepth :gap_depth
25
+
26
+ # validation regex for gap amount percent
27
+ GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
28
+
29
+ # the category axis
30
+ # @return [Axis]
31
+ def ser_axis
32
+ axes[:ser_axis]
33
+ end
34
+ alias :serAxis :ser_axis
35
+
36
+ # Creates a new line chart object
37
+ # @option options [String] gap_depth
38
+ # @see Chart
39
+ # @see lineChart
40
+ # @see View3D
41
+ def initialize(frame, options = {})
42
+ @gap_depth = nil
43
+ @view_3D = View3D.new({ :r_ang_ax => 1 }.merge(options))
44
+ super(frame, options)
45
+ axes.add_axis :ser_axis, SerAxis
46
+ end
47
+
48
+ # @see gapDepth
49
+ def gap_depth=(v)
50
+ RegexValidator.validate "Line3DChart.gapWidth", GAP_AMOUNT_PERCENT, v
51
+ @gap_depth = (v)
52
+ end
53
+ alias :gapDepth= :gap_depth=
54
+
55
+ # Serializes the object
56
+ # @param [String] str
57
+ # @return [String]
58
+ def to_xml_string(str = '')
59
+ super(str) do
60
+ str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
61
+ end
62
+ end
63
+ end
64
+ end
@@ -1,99 +1,96 @@
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
+ module Axlsx
2
+ # The LineChart is a two dimentional line chart (who would have guessed?) that you can add to your worksheet.
3
+ # @example Creating a chart
4
+ # # This example creates a line in a single sheet.
5
+ # require "rubygems" # if that is your preferred way to manage gems!
6
+ # require "axlsx"
7
+ #
8
+ # p = Axlsx::Package.new
9
+ # ws = p.workbook.add_worksheet
10
+ # ws.add_row ["This is a chart with no data in the sheet"]
11
+ #
12
+ # chart = ws.add_chart(Axlsx::LineChart, :start_at=> [0,1], :end_at=>[0,6], :title=>"Most Popular Pets")
13
+ # chart.add_series :data => [1, 9, 10], :labels => ["Slimy Reptiles", "Fuzzy Bunnies", "Rottweiler"]
14
+ #
15
+ # @see Worksheet#add_chart
16
+ # @see Worksheet#add_row
17
+ # @see Chart#add_series
18
+ # @see Series
19
+ # @see Package#serialize
20
+ class LineChart < Chart
21
+ # the category axis
22
+ # @return [CatAxis]
23
+ def cat_axis
24
+ axes[:cat_axis]
25
+ end
26
+ alias :catAxis :cat_axis
27
+
28
+ # the category axis
29
+ # @return [ValAxis]
30
+ def val_axis
31
+ axes[:val_axis]
32
+ end
33
+ alias :valAxis :val_axis
34
+
35
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
36
+ # @return [Symbol]
37
+ attr_reader :grouping
38
+
39
+ # Creates a new line chart object
40
+ # @param [GraphicFrame] frame The workbook that owns this chart.
41
+ # @option options [Cell, String] title
42
+ # @option options [Boolean] show_legend
43
+ # @option options [Symbol] grouping
44
+ # @see Chart
45
+ def initialize(frame, options = {})
46
+ @vary_colors = false
47
+ @grouping = :standard
48
+ super(frame, options)
49
+ @series_type = LineSeries
50
+ @d_lbls = nil
51
+ end
52
+
53
+ # @see grouping
54
+ def grouping=(v)
55
+ RestrictionValidator.validate "LineChart.grouping", [:percentStacked, :standard, :stacked], v
56
+ @grouping = v
57
+ end
58
+
59
+ # The node name to use in serialization. As LineChart is used as the
60
+ # base class for Liine3DChart we need to be sure to serialize the
61
+ # chart based on the actual class type and not a fixed node name.
62
+ # @return [String]
63
+ def node_name
64
+ path = self.class.to_s
65
+ if i = path.rindex('::')
66
+ path = path[(i + 2)..-1]
67
+ end
68
+ path[0] = path[0].chr.downcase
69
+ path
70
+ end
71
+
72
+ # Serializes the object
73
+ # @param [String] str
74
+ # @return [String]
75
+ def to_xml_string(str = '')
76
+ super(str) do
77
+ str << ("<c:" << node_name << ">")
78
+ str << ('<c:grouping val="' << grouping.to_s << '"/>')
79
+ str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
80
+ @series.each { |ser| ser.to_xml_string(str) }
81
+ @d_lbls.to_xml_string(str) if @d_lbls
82
+ yield if block_given?
83
+ axes.to_xml_string(str, :ids => true)
84
+ str << ("</c:" << node_name << ">")
85
+ axes.to_xml_string(str)
86
+ end
87
+ end
88
+
89
+ # The axes for this chart. LineCharts have a category and value
90
+ # axis.
91
+ # @return [Axes]
92
+ def axes
93
+ @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
94
+ end
95
+ end
96
+ end