caxlsx 3.0.4 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -334
  5. data/LICENSE +21 -21
  6. data/README.md +168 -170
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -151
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -143
  22. data/lib/axlsx/drawing/bar_series.rb +97 -80
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -98
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +97 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +388 -363
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -71
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +494 -420
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +410 -401
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +395 -370
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -162
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -170
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -71
  186. data/test/drawing/tc_bar_chart.rb +86 -71
  187. data/test/drawing/tc_bar_series.rb +46 -37
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -12
  247. data/test/tc_package.rb +317 -264
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -139
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -67
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +11 -11
@@ -1,80 +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
- # Creates a new series
26
- # @option options [Array, SimpleTypedList] data
27
- # @option options [Array, SimpleTypedList] labels
28
- # @option options [String] title
29
- # @option options [String] shape
30
- # @option options [String] colors an array of colors to use when rendering each data point
31
- # @param [Chart] chart
32
- def initialize(chart, options={})
33
- @shape = :box
34
- @colors = []
35
- super(chart, options)
36
- self.labels = AxDataSource.new({:data => options[:labels]}) unless options[:labels].nil?
37
- self.data = NumDataSource.new(options) unless options[:data].nil?
38
- end
39
-
40
- # @see colors
41
- def colors=(v) DataTypeValidator.validate "BarSeries.colors", [Array], v; @colors = v end
42
-
43
- # @see shape
44
- def shape=(v)
45
- RestrictionValidator.validate "BarSeries.shape", [:cone, :coneToMax, :box, :cylinder, :pyramid, :pyramidToMax], v
46
- @shape = v
47
- end
48
-
49
- # Serializes the object
50
- # @param [String] str
51
- # @return [String]
52
- def to_xml_string(str = '')
53
- super(str) do
54
-
55
- colors.each_with_index do |c, index|
56
- str << '<c:dPt>'
57
- str << ('<c:idx val="' << index.to_s << '"/>')
58
- str << '<c:spPr><a:solidFill>'
59
- str << ('<a:srgbClr val="' << c << '"/>')
60
- str << '</a:solidFill></c:spPr></c:dPt>'
61
- end
62
-
63
- @labels.to_xml_string(str) unless @labels.nil?
64
- @data.to_xml_string(str) unless @data.nil?
65
- # this is actually only required for shapes other than box
66
- str << ('<c:shape val="' << shape.to_s << '"></c:shape>')
67
- end
68
- end
69
-
70
- private
71
-
72
- # assigns the data for this series
73
- def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
74
-
75
- # assigns the labels for this series
76
- def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
77
-
78
- end
79
-
80
- 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