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,97 +1,91 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # A BarSeries defines the title, data and labels for bar charts
4
- # @note The recommended way to manage series is to use Chart#add_series
5
- # @see Worksheet#add_chart
6
- # @see Chart#add_series
7
- class BarSeries < Series
8
-
9
-
10
- # The data for this series.
11
- # @return [NumDataSource]
12
- attr_reader :data
13
-
14
- # The labels for this series.
15
- # @return [Array, SimpleTypedList]
16
- attr_reader :labels
17
-
18
- # The shape of the bars or columns
19
- # @return [Symbol] must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
20
- attr_reader :shape
21
-
22
- # An array of rgb colors to apply to your bar chart.
23
- attr_reader :colors
24
-
25
- # The fill color for this series.
26
- # Red, green, and blue is expressed as sequence of hex digits, RRGGBB.
27
- # @return [String]
28
- attr_reader :series_color
29
-
30
- # Creates a new series
31
- # @option options [Array, SimpleTypedList] data
32
- # @option options [Array, SimpleTypedList] labels
33
- # @option options [String] title
34
- # @option options [String] shape
35
- # @option options [String] colors an array of colors to use when rendering each data point
36
- # @option options [String] series_color a color to use when rendering series
37
- # @param [Chart] chart
38
- def initialize(chart, options={})
39
- @shape = :box
40
- @colors = []
41
- super(chart, options)
42
- self.labels = AxDataSource.new({:data => options[:labels]}) unless options[:labels].nil?
43
- self.data = NumDataSource.new(options) unless options[:data].nil?
44
- end
45
-
46
- # @see colors
47
- def colors=(v) DataTypeValidator.validate "BarSeries.colors", [Array], v; @colors = v end
48
-
49
- def series_color=(v)
50
- @series_color = v
51
- end
52
-
53
- # @see shape
54
- def shape=(v)
55
- RestrictionValidator.validate "BarSeries.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
56
- @shape = v
57
- end
58
-
59
- # Serializes the object
60
- # @param [String] str
61
- # @return [String]
62
- def to_xml_string(str = '')
63
- super(str) do
64
-
65
- colors.each_with_index do |c, index|
66
- str << '<c:dPt>'
67
- str << ('<c:idx val="' << index.to_s << '"/>')
68
- str << '<c:spPr><a:solidFill>'
69
- str << ('<a:srgbClr val="' << c << '"/>')
70
- str << '</a:solidFill></c:spPr></c:dPt>'
71
- end
72
-
73
- if series_color
74
- str << '<c:spPr><a:solidFill>'
75
- str << ('<a:srgbClr val="' << series_color << '"/>')
76
- str << '</a:solidFill>'
77
- str << '</c:spPr>'
78
- end
79
-
80
- @labels.to_xml_string(str) unless @labels.nil?
81
- @data.to_xml_string(str) unless @data.nil?
82
- # this is actually only required for shapes other than box
83
- str << ('<c:shape val="' << shape.to_s << '"></c:shape>')
84
- end
85
- end
86
-
87
- private
88
-
89
- # assigns the data for this series
90
- def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
91
-
92
- # assigns the labels for this series
93
- def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
94
-
95
- end
96
-
97
- end
1
+ module Axlsx
2
+ # A BarSeries defines the title, data and labels for bar charts
3
+ # @note The recommended way to manage series is to use Chart#add_series
4
+ # @see Worksheet#add_chart
5
+ # @see Chart#add_series
6
+ class BarSeries < Series
7
+ # The data for this series.
8
+ # @return [NumDataSource]
9
+ attr_reader :data
10
+
11
+ # The labels for this series.
12
+ # @return [Array, SimpleTypedList]
13
+ attr_reader :labels
14
+
15
+ # The shape of the bars or columns
16
+ # @return [Symbol] must be one of [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax]
17
+ attr_reader :shape
18
+
19
+ # An array of rgb colors to apply to your bar chart.
20
+ attr_reader :colors
21
+
22
+ # The fill color for this series.
23
+ # Red, green, and blue is expressed as sequence of hex digits, RRGGBB.
24
+ # @return [String]
25
+ attr_reader :series_color
26
+
27
+ # Creates a new series
28
+ # @option options [Array, SimpleTypedList] data
29
+ # @option options [Array, SimpleTypedList] labels
30
+ # @option options [String] title
31
+ # @option options [String] shape
32
+ # @option options [String] colors an array of colors to use when rendering each data point
33
+ # @option options [String] series_color a color to use when rendering series
34
+ # @param [Chart] chart
35
+ def initialize(chart, options = {})
36
+ @shape = :box
37
+ @colors = []
38
+ super(chart, options)
39
+ self.labels = AxDataSource.new({ :data => options[:labels] }) unless options[:labels].nil?
40
+ self.data = NumDataSource.new(options) unless options[:data].nil?
41
+ end
42
+
43
+ # @see colors
44
+ def colors=(v) DataTypeValidator.validate "BarSeries.colors", [Array], v; @colors = v end
45
+
46
+ def series_color=(v)
47
+ @series_color = v
48
+ end
49
+
50
+ # @see shape
51
+ def shape=(v)
52
+ RestrictionValidator.validate "BarSeries.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
53
+ @shape = v
54
+ end
55
+
56
+ # Serializes the object
57
+ # @param [String] str
58
+ # @return [String]
59
+ def to_xml_string(str = '')
60
+ super(str) do
61
+ colors.each_with_index do |c, index|
62
+ str << '<c:dPt>'
63
+ str << ('<c:idx val="' << index.to_s << '"/>')
64
+ str << '<c:spPr><a:solidFill>'
65
+ str << ('<a:srgbClr val="' << c << '"/>')
66
+ str << '</a:solidFill></c:spPr></c:dPt>'
67
+ end
68
+
69
+ if series_color
70
+ str << '<c:spPr><a:solidFill>'
71
+ str << ('<a:srgbClr val="' << series_color << '"/>')
72
+ str << '</a:solidFill>'
73
+ str << '</c:spPr>'
74
+ end
75
+
76
+ @labels.to_xml_string(str) unless @labels.nil?
77
+ @data.to_xml_string(str) unless @data.nil?
78
+ # this is actually only required for shapes other than box
79
+ str << ('<c:shape val="' << shape.to_s << '"></c:shape>')
80
+ end
81
+ end
82
+
83
+ private
84
+
85
+ # assigns the data for this series
86
+ def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
87
+
88
+ # assigns the labels for this series
89
+ def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
90
+ end
91
+ end
@@ -1,59 +1,56 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # The BubbleChart allows you to insert a bubble chart into your worksheet
5
- # @see Worksheet#add_chart
6
- # @see Chart#add_series
7
- # @see README for an example
8
- class BubbleChart < Chart
9
-
10
- include Axlsx::OptionsParser
11
-
12
- # the x value axis
13
- # @return [ValAxis]
14
- def x_val_axis
15
- axes[:x_val_axis]
16
- end
17
- alias :xValAxis :x_val_axis
18
-
19
- # the y value axis
20
- # @return [ValAxis]
21
- def y_val_axis
22
- axes[:y_val_axis]
23
- end
24
- alias :yValAxis :y_val_axis
25
-
26
- # Creates a new bubble chart
27
- def initialize(frame, options={})
28
- @vary_colors = 0
29
-
30
- super(frame, options)
31
- @series_type = BubbleSeries
32
- @d_lbls = nil
33
- parse_options options
34
- end
35
-
36
- # Serializes the object
37
- # @param [String] str
38
- # @return [String]
39
- def to_xml_string(str = '')
40
- super(str) do
41
- str << '<c:bubbleChart>'
42
- str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
43
- @series.each { |ser| ser.to_xml_string(str) }
44
- d_lbls.to_xml_string(str) if @d_lbls
45
- axes.to_xml_string(str, :ids => true)
46
- str << '</c:bubbleChart>'
47
- axes.to_xml_string(str)
48
- end
49
- str
50
- end
51
-
52
- # The axes for the bubble chart. BubbleChart has an x_val_axis and
53
- # a y_val_axis
54
- # @return [Axes]
55
- def axes
56
- @axes ||= Axes.new(:x_val_axis => ValAxis, :y_val_axis => ValAxis)
57
- end
58
- end
59
- end
1
+ module Axlsx
2
+ # The BubbleChart allows you to insert a bubble chart into your worksheet
3
+ # @see Worksheet#add_chart
4
+ # @see Chart#add_series
5
+ # @see README for an example
6
+ class BubbleChart < Chart
7
+ include Axlsx::OptionsParser
8
+
9
+ # the x value axis
10
+ # @return [ValAxis]
11
+ def x_val_axis
12
+ axes[:x_val_axis]
13
+ end
14
+ alias :xValAxis :x_val_axis
15
+
16
+ # the y value axis
17
+ # @return [ValAxis]
18
+ def y_val_axis
19
+ axes[:y_val_axis]
20
+ end
21
+ alias :yValAxis :y_val_axis
22
+
23
+ # Creates a new bubble chart
24
+ def initialize(frame, options = {})
25
+ @vary_colors = 0
26
+
27
+ super(frame, options)
28
+ @series_type = BubbleSeries
29
+ @d_lbls = nil
30
+ parse_options options
31
+ end
32
+
33
+ # Serializes the object
34
+ # @param [String] str
35
+ # @return [String]
36
+ def to_xml_string(str = '')
37
+ super(str) do
38
+ str << '<c:bubbleChart>'
39
+ str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
40
+ @series.each { |ser| ser.to_xml_string(str) }
41
+ d_lbls.to_xml_string(str) if @d_lbls
42
+ axes.to_xml_string(str, :ids => true)
43
+ str << '</c:bubbleChart>'
44
+ axes.to_xml_string(str)
45
+ end
46
+ str
47
+ end
48
+
49
+ # The axes for the bubble chart. BubbleChart has an x_val_axis and
50
+ # a y_val_axis
51
+ # @return [Axes]
52
+ def axes
53
+ @axes ||= Axes.new(:x_val_axis => ValAxis, :y_val_axis => ValAxis)
54
+ end
55
+ end
56
+ end
@@ -1,63 +1,60 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # A BubbleSeries defines the x/y position and bubble size of data in the chart
5
- # @note The recommended way to manage series is to use Chart#add_series
6
- # @see Worksheet#add_chart
7
- # @see Chart#add_series
8
- # @see examples/example.rb
9
- class BubbleSeries < Series
10
-
11
- # The x data for this series.
12
- # @return [AxDataSource]
13
- attr_reader :xData
14
-
15
- # The y data for this series.
16
- # @return [NumDataSource]
17
- attr_reader :yData
18
-
19
- # The bubble size for this series.
20
- # @return [NumDataSource]
21
- attr_reader :bubbleSize
22
-
23
- # The fill color for this series.
24
- # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
25
- # @return [String]
26
- attr_reader :color
27
-
28
- # Creates a new BubbleSeries
29
- def initialize(chart, options={})
30
- @xData, @yData, @bubbleSize = nil
31
- super(chart, options)
32
- @xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
33
- @yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
34
- @bubbleSize = NumDataSource.new({:tag_name => :bubbleSize, :data => options[:bubbleSize]}) unless options[:bubbleSize].nil?
35
- end
36
-
37
- # @see color
38
- def color=(v)
39
- @color = v
40
- end
41
-
42
- # Serializes the object
43
- # @param [String] str
44
- # @return [String]
45
- def to_xml_string(str = '')
46
- super(str) do
47
- # needs to override the super color here to push in ln/and something else!
48
- if color
49
- str << '<c:spPr><a:solidFill>'
50
- str << ('<a:srgbClr val="' << color << '"/>')
51
- str << '</a:solidFill>'
52
- str << '<a:ln><a:solidFill>'
53
- str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
54
- str << '</c:spPr>'
55
- end
56
- @xData.to_xml_string(str) unless @xData.nil?
57
- @yData.to_xml_string(str) unless @yData.nil?
58
- @bubbleSize.to_xml_string(str) unless @bubbleSize.nil?
59
- end
60
- str
61
- end
62
- end
63
- end
1
+ module Axlsx
2
+ # A BubbleSeries defines the x/y position and bubble size of data in the chart
3
+ # @note The recommended way to manage series is to use Chart#add_series
4
+ # @see Worksheet#add_chart
5
+ # @see Chart#add_series
6
+ # @see examples/example.rb
7
+ class BubbleSeries < Series
8
+ # The x data for this series.
9
+ # @return [AxDataSource]
10
+ attr_reader :xData
11
+
12
+ # The y data for this series.
13
+ # @return [NumDataSource]
14
+ attr_reader :yData
15
+
16
+ # The bubble size for this series.
17
+ # @return [NumDataSource]
18
+ attr_reader :bubbleSize
19
+
20
+ # The fill color for this series.
21
+ # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
22
+ # @return [String]
23
+ attr_reader :color
24
+
25
+ # Creates a new BubbleSeries
26
+ def initialize(chart, options = {})
27
+ @xData, @yData, @bubbleSize = nil
28
+ super(chart, options)
29
+ @xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
30
+ @yData = NumDataSource.new({ :tag_name => :yVal, :data => options[:yData] }) unless options[:yData].nil?
31
+ @bubbleSize = NumDataSource.new({ :tag_name => :bubbleSize, :data => options[:bubbleSize] }) unless options[:bubbleSize].nil?
32
+ end
33
+
34
+ # @see color
35
+ def color=(v)
36
+ @color = v
37
+ end
38
+
39
+ # Serializes the object
40
+ # @param [String] str
41
+ # @return [String]
42
+ def to_xml_string(str = '')
43
+ super(str) do
44
+ # needs to override the super color here to push in ln/and something else!
45
+ if color
46
+ str << '<c:spPr><a:solidFill>'
47
+ str << ('<a:srgbClr val="' << color << '"/>')
48
+ str << '</a:solidFill>'
49
+ str << '<a:ln><a:solidFill>'
50
+ str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
51
+ str << '</c:spPr>'
52
+ end
53
+ @xData.to_xml_string(str) unless @xData.nil?
54
+ @yData.to_xml_string(str) unless @yData.nil?
55
+ @bubbleSize.to_xml_string(str) unless @bubbleSize.nil?
56
+ end
57
+ str
58
+ end
59
+ end
60
+ end
@@ -1,85 +1,80 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- #A CatAxis object defines a chart category axis
4
- class CatAxis < Axis
5
-
6
- # Creates a new CatAxis object
7
- # @option options [Integer] tick_lbl_skip
8
- # @option options [Integer] tick_mark_skip
9
- def initialize(options={})
10
- @tick_lbl_skip = 1
11
- @tick_mark_skip = 1
12
- self.auto = 1
13
- self.lbl_algn = :ctr
14
- self.lbl_offset = "100"
15
- super(options)
16
- end
17
-
18
- # From the docs: This element specifies that this axis is a date or text axis based on the data that is used for the axis labels, not a specific choice.
19
- # @return [Boolean]
20
- attr_reader :auto
21
-
22
- # specifies how the perpendicular axis is crossed
23
- # must be one of [:ctr, :l, :r]
24
- # @return [Symbol]
25
- attr_reader :lbl_algn
26
- alias :lblAlgn :lbl_algn
27
-
28
- # The offset of the labels
29
- # must be between a string between 0 and 1000
30
- # @return [Integer]
31
- attr_reader :lbl_offset
32
- alias :lblOffset :lbl_offset
33
-
34
- # The number of tick lables to skip between labels
35
- # @return [Integer]
36
- attr_reader :tick_lbl_skip
37
- alias :tickLblSkip :tick_lbl_skip
38
-
39
- # The number of tickmarks to be skipped before the next one is rendered.
40
- # @return [Boolean]
41
- attr_reader :tick_mark_skip
42
- alias :tickMarkSkip :tick_mark_skip
43
-
44
- # regex for validating label offset
45
- LBL_OFFSET_REGEX = /0*(([0-9])|([1-9][0-9])|([1-9][0-9][0-9])|1000)/
46
-
47
- # @see tick_lbl_skip
48
- def tick_lbl_skip=(v) Axlsx::validate_unsigned_int(v); @tick_lbl_skip = v; end
49
- alias :tickLblSkip= :tick_lbl_skip=
50
-
51
- # @see tick_mark_skip
52
- def tick_mark_skip=(v) Axlsx::validate_unsigned_int(v); @tick_mark_skip = v; end
53
- alias :tickMarkSkip= :tick_mark_skip=
54
-
55
- # From the docs: This element specifies that this axis is a date or text axis based on the data that is used for the axis labels, not a specific choice.
56
- def auto=(v) Axlsx::validate_boolean(v); @auto = v; end
57
-
58
- # specifies how the perpendicular axis is crossed
59
- # must be one of [:ctr, :l, :r]
60
- def lbl_algn=(v) RestrictionValidator.validate "#{self.class}.lbl_algn", [:ctr, :l, :r], v; @lbl_algn = v; end
61
- alias :lblAlgn= :lbl_algn=
62
-
63
- # The offset of the labels
64
- # must be between a string between 0 and 1000
65
- def lbl_offset=(v) RegexValidator.validate "#{self.class}.lbl_offset", LBL_OFFSET_REGEX, v; @lbl_offset = v; end
66
- alias :lblOffset= :lbl_offset=
67
-
68
- # Serializes the object
69
- # @param [String] str
70
- # @return [String]
71
- def to_xml_string(str = '')
72
- str << '<c:catAx>'
73
- super(str)
74
- str << ('<c:auto val="' << @auto.to_s << '"/>')
75
- str << ('<c:lblAlgn val="' << @lbl_algn.to_s << '"/>')
76
- str << ('<c:lblOffset val="' << @lbl_offset.to_i.to_s << '"/>')
77
- str << ('<c:tickLblSkip val="' << @tick_lbl_skip.to_s << '"/>')
78
- str << ('<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>')
79
- str << '</c:catAx>'
80
- end
81
-
82
- end
83
-
84
-
85
- end
1
+ module Axlsx
2
+ # A CatAxis object defines a chart category axis
3
+ class CatAxis < Axis
4
+ # Creates a new CatAxis object
5
+ # @option options [Integer] tick_lbl_skip
6
+ # @option options [Integer] tick_mark_skip
7
+ def initialize(options = {})
8
+ @tick_lbl_skip = 1
9
+ @tick_mark_skip = 1
10
+ self.auto = 1
11
+ self.lbl_algn = :ctr
12
+ self.lbl_offset = "100"
13
+ super(options)
14
+ end
15
+
16
+ # From the docs: This element specifies that this axis is a date or text axis based on the data that is used for the axis labels, not a specific choice.
17
+ # @return [Boolean]
18
+ attr_reader :auto
19
+
20
+ # specifies how the perpendicular axis is crossed
21
+ # must be one of [:ctr, :l, :r]
22
+ # @return [Symbol]
23
+ attr_reader :lbl_algn
24
+ alias :lblAlgn :lbl_algn
25
+
26
+ # The offset of the labels
27
+ # must be between a string between 0 and 1000
28
+ # @return [Integer]
29
+ attr_reader :lbl_offset
30
+ alias :lblOffset :lbl_offset
31
+
32
+ # The number of tick lables to skip between labels
33
+ # @return [Integer]
34
+ attr_reader :tick_lbl_skip
35
+ alias :tickLblSkip :tick_lbl_skip
36
+
37
+ # The number of tickmarks to be skipped before the next one is rendered.
38
+ # @return [Boolean]
39
+ attr_reader :tick_mark_skip
40
+ alias :tickMarkSkip :tick_mark_skip
41
+
42
+ # regex for validating label offset
43
+ LBL_OFFSET_REGEX = /0*(([0-9])|([1-9][0-9])|([1-9][0-9][0-9])|1000)/
44
+
45
+ # @see tick_lbl_skip
46
+ def tick_lbl_skip=(v) Axlsx::validate_unsigned_int(v); @tick_lbl_skip = v; end
47
+ alias :tickLblSkip= :tick_lbl_skip=
48
+
49
+ # @see tick_mark_skip
50
+ def tick_mark_skip=(v) Axlsx::validate_unsigned_int(v); @tick_mark_skip = v; end
51
+ alias :tickMarkSkip= :tick_mark_skip=
52
+
53
+ # From the docs: This element specifies that this axis is a date or text axis based on the data that is used for the axis labels, not a specific choice.
54
+ def auto=(v) Axlsx::validate_boolean(v); @auto = v; end
55
+
56
+ # specifies how the perpendicular axis is crossed
57
+ # must be one of [:ctr, :l, :r]
58
+ def lbl_algn=(v) RestrictionValidator.validate "#{self.class}.lbl_algn", [:ctr, :l, :r], v; @lbl_algn = v; end
59
+ alias :lblAlgn= :lbl_algn=
60
+
61
+ # The offset of the labels
62
+ # must be between a string between 0 and 1000
63
+ def lbl_offset=(v) RegexValidator.validate "#{self.class}.lbl_offset", LBL_OFFSET_REGEX, v; @lbl_offset = v; end
64
+ alias :lblOffset= :lbl_offset=
65
+
66
+ # Serializes the object
67
+ # @param [String] str
68
+ # @return [String]
69
+ def to_xml_string(str = '')
70
+ str << '<c:catAx>'
71
+ super(str)
72
+ str << ('<c:auto val="' << @auto.to_s << '"/>')
73
+ str << ('<c:lblAlgn val="' << @lbl_algn.to_s << '"/>')
74
+ str << ('<c:lblOffset val="' << @lbl_offset.to_i.to_s << '"/>')
75
+ str << ('<c:tickLblSkip val="' << @tick_lbl_skip.to_s << '"/>')
76
+ str << ('<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>')
77
+ str << '</c:catAx>'
78
+ end
79
+ end
80
+ end