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,151 +1,148 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # The Bar3DChart is a three dimentional barchart (who would have guessed?) that you can add to your worksheet.
5
- # @see Worksheet#add_chart
6
- # @see Chart#add_series
7
- # @see Package#serialize
8
- # @see README for an example
9
- class Bar3DChart < Chart
10
-
11
- # the category axis
12
- # @return [CatAxis]
13
- def cat_axis
14
- axes[:cat_axis]
15
- end
16
- alias :catAxis :cat_axis
17
-
18
- # the value axis
19
- # @return [ValAxis]
20
- def val_axis
21
- axes[:val_axis]
22
- end
23
- alias :valAxis :val_axis
24
-
25
- # The direction of the bars in the chart
26
- # must be one of [:bar, :col]
27
- # @return [Symbol]
28
- def bar_dir
29
- @bar_dir ||= :bar
30
- end
31
- alias :barDir :bar_dir
32
-
33
- # space between bar or column clusters, as a percentage of the bar or column width.
34
- # @return [String]
35
- attr_reader :gap_depth
36
- alias :gapDepth :gap_depth
37
-
38
- # space between bar or column clusters, as a percentage of the bar or column width.
39
- # @return [String]
40
- def gap_width
41
- @gap_width ||= 150
42
- end
43
- alias :gapWidth :gap_width
44
-
45
- #grouping for a column, line, or area chart.
46
- # must be one of [:percentStacked, :clustered, :standard, :stacked]
47
- # @return [Symbol]
48
- def grouping
49
- @grouping ||= :clustered
50
- end
51
-
52
- # The shabe of the bars or columns
53
- # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
54
- # @return [Symbol]
55
- def shape
56
- @shape ||= :box
57
- end
58
-
59
- # validation regex for gap amount percent
60
- GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
61
-
62
- # Creates a new bar chart object
63
- # @param [GraphicFrame] frame The workbook that owns this chart.
64
- # @option options [Cell, String] title
65
- # @option options [Boolean] show_legend
66
- # @option options [Symbol] bar_dir
67
- # @option options [Symbol] grouping
68
- # @option options [String] gap_width
69
- # @option options [String] gap_depth
70
- # @option options [Symbol] shape
71
- # @option options [Integer] rot_x
72
- # @option options [String] h_percent
73
- # @option options [Integer] rot_y
74
- # @option options [String] depth_percent
75
- # @option options [Boolean] r_ang_ax
76
- # @option options [Integer] perspective
77
- # @see Chart
78
- # @see View3D
79
- def initialize(frame, options={})
80
- @vary_colors = true
81
- @gap_width, @gap_depth, @shape = nil, nil, nil
82
- super(frame, options)
83
- @series_type = BarSeries
84
- @view_3D = View3D.new({:r_ang_ax=>1}.merge(options))
85
- @d_lbls = nil
86
- end
87
-
88
- # The direction of the bars in the chart
89
- # must be one of [:bar, :col]
90
- def bar_dir=(v)
91
- RestrictionValidator.validate "Bar3DChart.bar_dir", [:bar, :col], v
92
- @bar_dir = v
93
- end
94
- alias :barDir= :bar_dir=
95
-
96
- #grouping for a column, line, or area chart.
97
- # must be one of [:percentStacked, :clustered, :standard, :stacked]
98
- def grouping=(v)
99
- RestrictionValidator.validate "Bar3DChart.grouping", [:percentStacked, :clustered, :standard, :stacked], v
100
- @grouping = v
101
- end
102
-
103
- # space between bar or column clusters, as a percentage of the bar or column width.
104
- def gap_width=(v)
105
- RegexValidator.validate "Bar3DChart.gap_width", GAP_AMOUNT_PERCENT, v
106
- @gap_width=(v)
107
- end
108
- alias :gapWidth= :gap_width=
109
-
110
- # space between bar or column clusters, as a percentage of the bar or column width.
111
- def gap_depth=(v)
112
- RegexValidator.validate "Bar3DChart.gap_didth", GAP_AMOUNT_PERCENT, v
113
- @gap_depth=(v)
114
- end
115
- alias :gapDepth= :gap_depth=
116
-
117
- # The shabe of the bars or columns
118
- # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
119
- def shape=(v)
120
- RestrictionValidator.validate "Bar3DChart.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
121
- @shape = v
122
- end
123
-
124
- # Serializes the object
125
- # @param [String] str
126
- # @return [String]
127
- def to_xml_string(str = '')
128
- super(str) do
129
- str << '<c:bar3DChart>'
130
- str << ('<c:barDir val="' << bar_dir.to_s << '"/>')
131
- str << ('<c:grouping val="' << grouping.to_s << '"/>')
132
- str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
133
- @series.each { |ser| ser.to_xml_string(str) }
134
- @d_lbls.to_xml_string(str) if @d_lbls
135
- str << ('<c:gapWidth val="' << @gap_width.to_s << '"/>') unless @gap_width.nil?
136
- str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
137
- str << ('<c:shape val="' << @shape.to_s << '"/>') unless @shape.nil?
138
- axes.to_xml_string(str, :ids => true)
139
- str << '</c:bar3DChart>'
140
- axes.to_xml_string(str)
141
- end
142
- end
143
-
144
- # A hash of axes used by this chart. Bar charts have a value and
145
- # category axes specified via axes[:val_axes] and axes[:cat_axis]
146
- # @return [Axes]
147
- def axes
148
- @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
149
- end
150
- end
151
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # The Bar3DChart is a three dimentional barchart (who would have guessed?) that you can add to your worksheet.
5
+ # @see Worksheet#add_chart
6
+ # @see Chart#add_series
7
+ # @see Package#serialize
8
+ # @see README for an example
9
+ class Bar3DChart < Chart
10
+
11
+ # the category axis
12
+ # @return [CatAxis]
13
+ def cat_axis
14
+ axes[:cat_axis]
15
+ end
16
+ alias :catAxis :cat_axis
17
+
18
+ # the value axis
19
+ # @return [ValAxis]
20
+ def val_axis
21
+ axes[:val_axis]
22
+ end
23
+ alias :valAxis :val_axis
24
+
25
+ # The direction of the bars in the chart
26
+ # must be one of [:bar, :col]
27
+ # @return [Symbol]
28
+ def bar_dir
29
+ @bar_dir ||= :bar
30
+ end
31
+ alias :barDir :bar_dir
32
+
33
+ # space between bar or column clusters, as a percentage of the bar or column width.
34
+ # @return [Integer]
35
+ attr_reader :gap_depth
36
+ alias :gapDepth :gap_depth
37
+
38
+ # space between bar or column clusters, as a percentage of the bar or column width.
39
+ # @return [Integer]
40
+ def gap_width
41
+ @gap_width ||= 150
42
+ end
43
+ alias :gapWidth :gap_width
44
+
45
+ #grouping for a column, line, or area chart.
46
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
47
+ # @return [Symbol]
48
+ def grouping
49
+ @grouping ||= :clustered
50
+ end
51
+
52
+ # The shabe of the bars or columns
53
+ # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
54
+ # @return [Symbol]
55
+ def shape
56
+ @shape ||= :box
57
+ end
58
+
59
+ # Creates a new bar chart object
60
+ # @param [GraphicFrame] frame The workbook that owns this chart.
61
+ # @option options [Cell, String] title
62
+ # @option options [Boolean] show_legend
63
+ # @option options [Symbol] bar_dir
64
+ # @option options [Symbol] grouping
65
+ # @option options [String] gap_width
66
+ # @option options [String] gap_depth
67
+ # @option options [Symbol] shape
68
+ # @option options [Integer] rot_x
69
+ # @option options [String] h_percent
70
+ # @option options [Integer] rot_y
71
+ # @option options [String] depth_percent
72
+ # @option options [Boolean] r_ang_ax
73
+ # @option options [Integer] perspective
74
+ # @see Chart
75
+ # @see View3D
76
+ def initialize(frame, options={})
77
+ @vary_colors = true
78
+ @gap_width, @gap_depth, @shape = nil, nil, nil
79
+ super(frame, options)
80
+ @series_type = BarSeries
81
+ @view_3D = View3D.new({:r_ang_ax=>1}.merge(options))
82
+ @d_lbls = nil
83
+ end
84
+
85
+ # The direction of the bars in the chart
86
+ # must be one of [:bar, :col]
87
+ def bar_dir=(v)
88
+ RestrictionValidator.validate "Bar3DChart.bar_dir", [:bar, :col], v
89
+ @bar_dir = v
90
+ end
91
+ alias :barDir= :bar_dir=
92
+
93
+ #grouping for a column, line, or area chart.
94
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
95
+ def grouping=(v)
96
+ RestrictionValidator.validate "Bar3DChart.grouping", [:percentStacked, :clustered, :standard, :stacked], v
97
+ @grouping = v
98
+ end
99
+
100
+ # space between bar or column clusters, as a percentage of the bar or column width.
101
+ def gap_width=(v)
102
+ RangeValidator.validate "Bar3DChart.gap_width", 0, 500, v
103
+ @gap_width=(v)
104
+ end
105
+ alias :gapWidth= :gap_width=
106
+
107
+ # space between bar or column clusters, as a percentage of the bar or column width.
108
+ def gap_depth=(v)
109
+ RangeValidator.validate "Bar3DChart.gap_depth", 0, 500, v
110
+ @gap_depth=(v)
111
+ end
112
+ alias :gapDepth= :gap_depth=
113
+
114
+ # The shabe of the bars or columns
115
+ # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
116
+ def shape=(v)
117
+ RestrictionValidator.validate "Bar3DChart.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
118
+ @shape = v
119
+ end
120
+
121
+ # Serializes the object
122
+ # @param [String] str
123
+ # @return [String]
124
+ def to_xml_string(str = '')
125
+ super(str) do
126
+ str << '<c:bar3DChart>'
127
+ str << ('<c:barDir val="' << bar_dir.to_s << '"/>')
128
+ str << ('<c:grouping val="' << grouping.to_s << '"/>')
129
+ str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
130
+ @series.each { |ser| ser.to_xml_string(str) }
131
+ @d_lbls.to_xml_string(str) if @d_lbls
132
+ str << ('<c:gapWidth val="' << @gap_width.to_s << '"/>') unless @gap_width.nil?
133
+ str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
134
+ str << ('<c:shape val="' << @shape.to_s << '"/>') unless @shape.nil?
135
+ axes.to_xml_string(str, :ids => true)
136
+ str << '</c:bar3DChart>'
137
+ axes.to_xml_string(str)
138
+ end
139
+ end
140
+
141
+ # A hash of axes used by this chart. Bar charts have a value and
142
+ # category axes specified via axes[:val_axes] and axes[:cat_axis]
143
+ # @return [Axes]
144
+ def axes
145
+ @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
146
+ end
147
+ end
148
+ end
@@ -1,143 +1,138 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # The BarChart is a two dimentional barchart that you can add to your worksheet.
5
- # @see Worksheet#add_chart
6
- # @see Chart#add_series
7
- # @see Package#serialize
8
- # @see README for an example
9
- class BarChart < Chart
10
-
11
- # the category axis
12
- # @return [CatAxis]
13
- def cat_axis
14
- axes[:cat_axis]
15
- end
16
- alias :catAxis :cat_axis
17
-
18
- # the value axis
19
- # @return [ValAxis]
20
- def val_axis
21
- axes[:val_axis]
22
- end
23
- alias :valAxis :val_axis
24
-
25
- # The direction of the bars in the chart
26
- # must be one of [:bar, :col]
27
- # @return [Symbol]
28
- def bar_dir
29
- @bar_dir ||= :bar
30
- end
31
- alias :barDir :bar_dir
32
-
33
- # space between bar or column clusters, as a percentage of the bar or column width.
34
- # @return [String]
35
- attr_reader :gap_depth
36
- alias :gapDepth :gap_depth
37
-
38
- # space between bar or column clusters, as a percentage of the bar or column width.
39
- # @return [String]
40
- def gap_width
41
- @gap_width ||= 150
42
- end
43
- alias :gapWidth :gap_width
44
-
45
- #grouping for a column, line, or area chart.
46
- # must be one of [:percentStacked, :clustered, :standard, :stacked]
47
- # @return [Symbol]
48
- def grouping
49
- @grouping ||= :clustered
50
- end
51
-
52
- # The shape of the bars or columns
53
- # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
54
- # @return [Symbol]
55
- def shape
56
- @shape ||= :box
57
- end
58
-
59
- # validation regex for gap amount percent
60
- GAP_AMOUNT_PERCENT = /0*(([0-9])|([1-9][0-9])|([1-4][0-9][0-9])|500)%/
61
-
62
- # Creates a new bar chart object
63
- # @param [GraphicFrame] frame The workbook that owns this chart.
64
- # @option options [Cell, String] title
65
- # @option options [Boolean] show_legend
66
- # @option options [Symbol] bar_dir
67
- # @option options [Symbol] grouping
68
- # @option options [String] gap_width
69
- # @option options [String] gap_depth
70
- # @option options [Symbol] shape
71
- # @see Chart
72
- def initialize(frame, options={})
73
- @vary_colors = true
74
- @gap_width, @gap_depth, @shape = nil, nil, nil
75
- super(frame, options)
76
- @series_type = BarSeries
77
- @d_lbls = nil
78
- end
79
-
80
- # The direction of the bars in the chart
81
- # must be one of [:bar, :col]
82
- def bar_dir=(v)
83
- RestrictionValidator.validate "BarChart.bar_dir", [:bar, :col], v
84
- @bar_dir = v
85
- end
86
- alias :barDir= :bar_dir=
87
-
88
- #grouping for a column, line, or area chart.
89
- # must be one of [:percentStacked, :clustered, :standard, :stacked]
90
- def grouping=(v)
91
- RestrictionValidator.validate "BarChart.grouping", [:percentStacked, :clustered, :standard, :stacked], v
92
- @grouping = v
93
- end
94
-
95
- # space between bar or column clusters, as a percentage of the bar or column width.
96
- def gap_width=(v)
97
- RegexValidator.validate "BarChart.gap_width", GAP_AMOUNT_PERCENT, v
98
- @gap_width=(v)
99
- end
100
- alias :gapWidth= :gap_width=
101
-
102
- # space between bar or column clusters, as a percentage of the bar or column width.
103
- def gap_depth=(v)
104
- RegexValidator.validate "BarChart.gap_didth", GAP_AMOUNT_PERCENT, v
105
- @gap_depth=(v)
106
- end
107
- alias :gapDepth= :gap_depth=
108
-
109
- # The shape of the bars or columns
110
- # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
111
- def shape=(v)
112
- RestrictionValidator.validate "BarChart.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
113
- @shape = v
114
- end
115
-
116
- # Serializes the object
117
- # @param [String] str
118
- # @return [String]
119
- def to_xml_string(str = '')
120
- super(str) do
121
- str << '<c:barChart>'
122
- str << ('<c:barDir val="' << bar_dir.to_s << '"/>')
123
- str << ('<c:grouping val="' << grouping.to_s << '"/>')
124
- str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
125
- @series.each { |ser| ser.to_xml_string(str) }
126
- @d_lbls.to_xml_string(str) if @d_lbls
127
- str << ('<c:gapWidth val="' << @gap_width.to_s << '"/>') unless @gap_width.nil?
128
- str << ('<c:gapDepth val="' << @gap_depth.to_s << '"/>') unless @gap_depth.nil?
129
- str << ('<c:shape val="' << @shape.to_s << '"/>') unless @shape.nil?
130
- axes.to_xml_string(str, :ids => true)
131
- str << '</c:barChart>'
132
- axes.to_xml_string(str)
133
- end
134
- end
135
-
136
- # A hash of axes used by this chart. Bar charts have a value and
137
- # category axes specified via axes[:val_axes] and axes[:cat_axis]
138
- # @return [Axes]
139
- def axes
140
- @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
141
- end
142
- end
143
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # The BarChart is a two dimentional barchart that you can add to your worksheet.
5
+ # @see Worksheet#add_chart
6
+ # @see Chart#add_series
7
+ # @see Package#serialize
8
+ # @see README for an example
9
+ class BarChart < Chart
10
+
11
+ # the category axis
12
+ # @return [CatAxis]
13
+ def cat_axis
14
+ axes[:cat_axis]
15
+ end
16
+ alias :catAxis :cat_axis
17
+
18
+ # the value axis
19
+ # @return [ValAxis]
20
+ def val_axis
21
+ axes[:val_axis]
22
+ end
23
+ alias :valAxis :val_axis
24
+
25
+ # The direction of the bars in the chart
26
+ # must be one of [:bar, :col]
27
+ # @return [Symbol]
28
+ def bar_dir
29
+ @bar_dir ||= :bar
30
+ end
31
+ alias :barDir :bar_dir
32
+
33
+ # space between bar or column clusters, as a percentage of the bar or column width.
34
+ # @return [Integer]
35
+ def gap_width
36
+ @gap_width ||= 150
37
+ end
38
+ alias :gapWidth :gap_width
39
+
40
+ #grouping for a column, line, or area chart.
41
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
42
+ # @return [Symbol]
43
+ def grouping
44
+ @grouping ||= :clustered
45
+ end
46
+
47
+ # Overlap between series
48
+ # @return [Integer]
49
+ def overlap
50
+ @overlap ||= 0
51
+ end
52
+
53
+ # The shape of the bars or columns
54
+ # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
55
+ # @return [Symbol]
56
+ def shape
57
+ @shape ||= :box
58
+ end
59
+
60
+ # Creates a new bar chart object
61
+ # @param [GraphicFrame] frame The workbook that owns this chart.
62
+ # @option options [Cell, String] title
63
+ # @option options [Boolean] show_legend
64
+ # @option options [Symbol] bar_dir
65
+ # @option options [Symbol] grouping
66
+ # @option options [String] gap_width
67
+ # @option options [Symbol] shape
68
+ # @see Chart
69
+ def initialize(frame, options={})
70
+ @vary_colors = true
71
+ @gap_width, @overlap, @shape = nil, nil, nil
72
+ super(frame, options)
73
+ @series_type = BarSeries
74
+ @d_lbls = nil
75
+ end
76
+
77
+ # The direction of the bars in the chart
78
+ # must be one of [:bar, :col]
79
+ def bar_dir=(v)
80
+ RestrictionValidator.validate "BarChart.bar_dir", [:bar, :col], v
81
+ @bar_dir = v
82
+ end
83
+ alias :barDir= :bar_dir=
84
+
85
+ #grouping for a column, line, or area chart.
86
+ # must be one of [:percentStacked, :clustered, :standard, :stacked]
87
+ def grouping=(v)
88
+ RestrictionValidator.validate "BarChart.grouping", [:percentStacked, :clustered, :standard, :stacked], v
89
+ @grouping = v
90
+ end
91
+
92
+ # space between bar or column clusters, as a percentage of the bar or column width.
93
+ def gap_width=(v)
94
+ RangeValidator.validate "BarChart.gap_width", 0, 500, v
95
+ @gap_width=(v)
96
+ end
97
+ alias :gapWidth= :gap_width=
98
+
99
+ def overlap=(v)
100
+ RangeValidator.validate "BarChart.overlap", -100, 100, v
101
+ @overlap=(v)
102
+ end
103
+
104
+ # The shape of the bars or columns
105
+ # must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
106
+ def shape=(v)
107
+ RestrictionValidator.validate "BarChart.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
108
+ @shape = v
109
+ end
110
+
111
+ # Serializes the object
112
+ # @param [String] str
113
+ # @return [String]
114
+ def to_xml_string(str = '')
115
+ super(str) do
116
+ str << '<c:barChart>'
117
+ str << ('<c:barDir val="' << bar_dir.to_s << '"/>')
118
+ str << ('<c:grouping val="' << grouping.to_s << '"/>')
119
+ str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
120
+ @series.each { |ser| ser.to_xml_string(str) }
121
+ @d_lbls.to_xml_string(str) if @d_lbls
122
+ str << ('<c:overlap val="' << @overlap.to_s << '"/>') unless @overlap.nil?
123
+ str << ('<c:gapWidth val="' << @gap_width.to_s << '"/>') unless @gap_width.nil?
124
+ str << ('<c:shape val="' << @shape.to_s << '"/>') unless @shape.nil?
125
+ axes.to_xml_string(str, :ids => true)
126
+ str << '</c:barChart>'
127
+ axes.to_xml_string(str)
128
+ end
129
+ end
130
+
131
+ # A hash of axes used by this chart. Bar charts have a value and
132
+ # category axes specified via axes[:val_axes] and axes[:cat_axis]
133
+ # @return [Axes]
134
+ def axes
135
+ @axes ||= Axes.new(:cat_axis => CatAxis, :val_axis => ValAxis)
136
+ end
137
+ end
138
+ end