caxlsx 3.2.0 → 3.3.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 (300) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +385 -354
  5. data/LICENSE +21 -21
  6. data/README.md +165 -168
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +299 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +91 -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 -129
  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 +107 -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 +398 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -73
  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 +535 -494
  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 +416 -410
  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 +425 -395
  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/border_creator.rb +76 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +532 -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 +18 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +267 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +335 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  139. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  140. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  141. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  142. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  143. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  144. data/lib/axlsx/workbook/worksheet/worksheet.rb +829 -786
  145. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  149. data/lib/axlsx.rb +204 -185
  150. data/lib/caxlsx.rb +2 -2
  151. data/lib/schema/dc.xsd +118 -118
  152. data/lib/schema/dcmitype.xsd +51 -51
  153. data/lib/schema/dcterms.xsd +331 -331
  154. data/lib/schema/dml-chartDrawing.xsd +146 -146
  155. data/lib/schema/dml-compatibility.xsd +14 -14
  156. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  157. data/lib/schema/dml-main.xsd +3048 -3048
  158. data/lib/schema/dml-picture.xsd +23 -23
  159. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  160. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  161. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  162. data/lib/schema/shared-bibliography.xsd +144 -144
  163. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  164. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  165. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  166. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  167. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  168. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  169. data/lib/schema/shared-relationshipReference.xsd +25 -25
  170. data/lib/schema/vml-main.xsd +569 -569
  171. data/lib/schema/vml-officeDrawing.xsd +509 -509
  172. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  173. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  174. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  175. data/lib/schema/xml.xsd +116 -116
  176. metadata +5 -252
  177. data/test/benchmark.rb +0 -72
  178. data/test/content_type/tc_content_type.rb +0 -76
  179. data/test/content_type/tc_default.rb +0 -16
  180. data/test/content_type/tc_override.rb +0 -14
  181. data/test/doc_props/tc_app.rb +0 -43
  182. data/test/doc_props/tc_core.rb +0 -42
  183. data/test/drawing/tc_area_chart.rb +0 -39
  184. data/test/drawing/tc_area_series.rb +0 -71
  185. data/test/drawing/tc_axes.rb +0 -8
  186. data/test/drawing/tc_axis.rb +0 -112
  187. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  188. data/test/drawing/tc_bar_chart.rb +0 -86
  189. data/test/drawing/tc_bar_series.rb +0 -46
  190. data/test/drawing/tc_bubble_chart.rb +0 -44
  191. data/test/drawing/tc_bubble_series.rb +0 -21
  192. data/test/drawing/tc_cat_axis.rb +0 -31
  193. data/test/drawing/tc_cat_axis_data.rb +0 -27
  194. data/test/drawing/tc_chart.rb +0 -123
  195. data/test/drawing/tc_d_lbls.rb +0 -57
  196. data/test/drawing/tc_data_source.rb +0 -23
  197. data/test/drawing/tc_drawing.rb +0 -80
  198. data/test/drawing/tc_graphic_frame.rb +0 -27
  199. data/test/drawing/tc_hyperlink.rb +0 -64
  200. data/test/drawing/tc_line_3d_chart.rb +0 -47
  201. data/test/drawing/tc_line_chart.rb +0 -39
  202. data/test/drawing/tc_line_series.rb +0 -71
  203. data/test/drawing/tc_marker.rb +0 -44
  204. data/test/drawing/tc_named_axis_data.rb +0 -27
  205. data/test/drawing/tc_num_data.rb +0 -31
  206. data/test/drawing/tc_num_val.rb +0 -29
  207. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  208. data/test/drawing/tc_pic.rb +0 -103
  209. data/test/drawing/tc_picture_locking.rb +0 -72
  210. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  211. data/test/drawing/tc_pie_series.rb +0 -33
  212. data/test/drawing/tc_scaling.rb +0 -36
  213. data/test/drawing/tc_scatter_chart.rb +0 -48
  214. data/test/drawing/tc_scatter_series.rb +0 -74
  215. data/test/drawing/tc_ser_axis.rb +0 -31
  216. data/test/drawing/tc_series.rb +0 -23
  217. data/test/drawing/tc_series_title.rb +0 -54
  218. data/test/drawing/tc_str_data.rb +0 -18
  219. data/test/drawing/tc_str_val.rb +0 -30
  220. data/test/drawing/tc_title.rb +0 -70
  221. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  222. data/test/drawing/tc_val_axis.rb +0 -24
  223. data/test/drawing/tc_view_3D.rb +0 -54
  224. data/test/drawing/tc_vml_drawing.rb +0 -25
  225. data/test/drawing/tc_vml_shape.rb +0 -106
  226. data/test/fixtures/image1.gif +0 -0
  227. data/test/fixtures/image1.jpeg +0 -0
  228. data/test/fixtures/image1.jpg +0 -0
  229. data/test/fixtures/image1.png +0 -0
  230. data/test/fixtures/image1_fake.jpg +0 -0
  231. data/test/profile.rb +0 -24
  232. data/test/rels/tc_relationship.rb +0 -52
  233. data/test/rels/tc_relationships.rb +0 -37
  234. data/test/stylesheet/tc_border.rb +0 -37
  235. data/test/stylesheet/tc_border_pr.rb +0 -32
  236. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  237. data/test/stylesheet/tc_cell_protection.rb +0 -29
  238. data/test/stylesheet/tc_cell_style.rb +0 -57
  239. data/test/stylesheet/tc_color.rb +0 -43
  240. data/test/stylesheet/tc_dxf.rb +0 -81
  241. data/test/stylesheet/tc_fill.rb +0 -18
  242. data/test/stylesheet/tc_font.rb +0 -133
  243. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  244. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  245. data/test/stylesheet/tc_num_fmt.rb +0 -30
  246. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  247. data/test/stylesheet/tc_styles.rb +0 -309
  248. data/test/stylesheet/tc_table_style.rb +0 -44
  249. data/test/stylesheet/tc_table_style_element.rb +0 -45
  250. data/test/stylesheet/tc_table_styles.rb +0 -29
  251. data/test/stylesheet/tc_xf.rb +0 -120
  252. data/test/tc_axlsx.rb +0 -109
  253. data/test/tc_helper.rb +0 -10
  254. data/test/tc_package.rb +0 -317
  255. data/test/util/tc_mime_type_utils.rb +0 -13
  256. data/test/util/tc_serialized_attributes.rb +0 -19
  257. data/test/util/tc_simple_typed_list.rb +0 -77
  258. data/test/util/tc_validators.rb +0 -210
  259. data/test/workbook/tc_defined_name.rb +0 -49
  260. data/test/workbook/tc_shared_strings_table.rb +0 -59
  261. data/test/workbook/tc_workbook.rb +0 -165
  262. data/test/workbook/tc_workbook_view.rb +0 -50
  263. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  264. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  265. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  266. data/test/workbook/worksheet/tc_break.rb +0 -49
  267. data/test/workbook/worksheet/tc_cell.rb +0 -465
  268. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  269. data/test/workbook/worksheet/tc_col.rb +0 -93
  270. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  271. data/test/workbook/worksheet/tc_comment.rb +0 -72
  272. data/test/workbook/worksheet/tc_comments.rb +0 -57
  273. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  274. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  275. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  276. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  277. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  278. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  279. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  280. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  281. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  282. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  283. data/test/workbook/worksheet/tc_pane.rb +0 -54
  284. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  285. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  286. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  287. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  288. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  289. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  290. data/test/workbook/worksheet/tc_row.rb +0 -160
  291. data/test/workbook/worksheet/tc_selection.rb +0 -55
  292. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  293. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  294. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  295. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  296. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  297. data/test/workbook/worksheet/tc_table.rb +0 -77
  298. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  299. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  300. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,97 +1,97 @@
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
+ # 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,59 +1,59 @@
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
+ # 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,63 +1,63 @@
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
+ # 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,85 +1,85 @@
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
+ # 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