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