caxlsx 3.1.1 → 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 -343
  5. data/LICENSE +21 -21
  6. data/README.md +168 -172
  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 +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 -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 -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 -294
  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 -164
  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 -768
  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 -171
  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 -86
  186. data/test/drawing/tc_bar_chart.rb +86 -86
  187. data/test/drawing/tc_bar_series.rb +46 -46
  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 -10
  247. data/test/tc_package.rb +317 -314
  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 -143
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -62
  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 -160
  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 -77
  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 +101 -101
@@ -1,74 +1,74 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # A PieSeries defines the data and labels and explosion for pie charts series.
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
- class PieSeries < Series
9
-
10
- # The data for this series.
11
- # @return [SimpleTypedList]
12
- attr_reader :data
13
-
14
- # The labels for this series.
15
- # @return [SimpleTypedList]
16
- attr_reader :labels
17
-
18
- # The explosion for this series
19
- # @return [Integert]
20
- attr_reader :explosion
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 [Integer] explosion
30
- # @param [Chart] chart
31
- def initialize(chart, options={})
32
- @explosion = nil
33
- @colors = []
34
- super(chart, options)
35
- self.labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
36
- self.data = NumDataSource.new(options) unless options[:data].nil?
37
- end
38
-
39
- # @see colors
40
- def colors=(v) DataTypeValidator.validate "BarSeries.colors", [Array], v; @colors = v end
41
-
42
- # @see explosion
43
- def explosion=(v) Axlsx::validate_unsigned_int(v); @explosion = v; end
44
-
45
- # Serializes the object
46
- # @param [String] str
47
- # @return [String]
48
- def to_xml_string(str = '')
49
- super(str) do
50
- str << '<c:explosion val="' + @explosion.to_s + '"/>' unless @explosion.nil?
51
- colors.each_with_index do |c, index|
52
- str << '<c:dPt>'
53
- str << ('<c:idx val="' << index.to_s << '"/>')
54
- str << '<c:spPr><a:solidFill>'
55
- str << ('<a:srgbClr val="' << c << '"/>')
56
- str << '</a:solidFill></c:spPr></c:dPt>'
57
- end
58
- @labels.to_xml_string str unless @labels.nil?
59
- @data.to_xml_string str unless @data.nil?
60
- end
61
- str
62
- end
63
-
64
- private
65
-
66
- # assigns the data for this series
67
- def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
68
-
69
- # assigns the labels for this series
70
- def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
71
-
72
- end
73
-
74
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # A PieSeries defines the data and labels and explosion for pie charts series.
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
+ class PieSeries < Series
9
+
10
+ # The data for this series.
11
+ # @return [SimpleTypedList]
12
+ attr_reader :data
13
+
14
+ # The labels for this series.
15
+ # @return [SimpleTypedList]
16
+ attr_reader :labels
17
+
18
+ # The explosion for this series
19
+ # @return [Integert]
20
+ attr_reader :explosion
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 [Integer] explosion
30
+ # @param [Chart] chart
31
+ def initialize(chart, options={})
32
+ @explosion = nil
33
+ @colors = []
34
+ super(chart, options)
35
+ self.labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
36
+ self.data = NumDataSource.new(options) unless options[:data].nil?
37
+ end
38
+
39
+ # @see colors
40
+ def colors=(v) DataTypeValidator.validate "BarSeries.colors", [Array], v; @colors = v end
41
+
42
+ # @see explosion
43
+ def explosion=(v) Axlsx::validate_unsigned_int(v); @explosion = v; end
44
+
45
+ # Serializes the object
46
+ # @param [String] str
47
+ # @return [String]
48
+ def to_xml_string(str = '')
49
+ super(str) do
50
+ str << '<c:explosion val="' + @explosion.to_s + '"/>' unless @explosion.nil?
51
+ colors.each_with_index do |c, index|
52
+ str << '<c:dPt>'
53
+ str << ('<c:idx val="' << index.to_s << '"/>')
54
+ str << '<c:spPr><a:solidFill>'
55
+ str << ('<a:srgbClr val="' << c << '"/>')
56
+ str << '</a:solidFill></c:spPr></c:dPt>'
57
+ end
58
+ @labels.to_xml_string str unless @labels.nil?
59
+ @data.to_xml_string str unless @data.nil?
60
+ end
61
+ str
62
+ end
63
+
64
+ private
65
+
66
+ # assigns the data for this series
67
+ def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
68
+
69
+ # assigns the labels for this series
70
+ def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
71
+
72
+ end
73
+
74
+ end
@@ -1,60 +1,60 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # The Scaling class defines axis scaling
4
- class Scaling
5
-
6
- include Axlsx::OptionsParser
7
-
8
- # creates a new Scaling object
9
- # @option options [Integer] logBase
10
- # @option options [Symbol] orientation
11
- # @option options [Float] max
12
- # @option options [Float] min
13
- def initialize(options={})
14
- @orientation = :minMax
15
- @logBase, @min, @max = nil, nil, nil
16
- parse_options options
17
- end
18
-
19
- # logarithmic base for a logarithmic axis.
20
- # must be between 2 and 1000
21
- # @return [Integer]
22
- attr_reader :logBase
23
-
24
- # the orientation of the axis
25
- # must be one of [:minMax, :maxMin]
26
- # @return [Symbol]
27
- attr_reader :orientation
28
-
29
- # the maximum scaling
30
- # @return [Float]
31
- attr_reader :max
32
-
33
- # the minimu scaling
34
- # @return [Float]
35
- attr_reader :min
36
-
37
- # @see logBase
38
- def logBase=(v) DataTypeValidator.validate "Scaling.logBase", [Integer], v, lambda { |arg| arg >= 2 && arg <= 1000}; @logBase = v; end
39
- # @see orientation
40
- def orientation=(v) RestrictionValidator.validate "Scaling.orientation", [:minMax, :maxMin], v; @orientation = v; end
41
- # @see max
42
- def max=(v) DataTypeValidator.validate "Scaling.max", Float, v; @max = v; end
43
-
44
- # @see min
45
- def min=(v) DataTypeValidator.validate "Scaling.min", Float, v; @min = v; end
46
-
47
- # Serializes the object
48
- # @param [String] str
49
- # @return [String]
50
- def to_xml_string(str = '')
51
- str << '<c:scaling>'
52
- str << ('<c:logBase val="' << @logBase.to_s << '"/>') unless @logBase.nil?
53
- str << ('<c:orientation val="' << @orientation.to_s << '"/>') unless @orientation.nil?
54
- str << ('<c:min val="' << @min.to_s << '"/>') unless @min.nil?
55
- str << ('<c:max val="' << @max.to_s << '"/>') unless @max.nil?
56
- str << '</c:scaling>'
57
- end
58
-
59
- end
60
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # The Scaling class defines axis scaling
4
+ class Scaling
5
+
6
+ include Axlsx::OptionsParser
7
+
8
+ # creates a new Scaling object
9
+ # @option options [Integer] logBase
10
+ # @option options [Symbol] orientation
11
+ # @option options [Float] max
12
+ # @option options [Float] min
13
+ def initialize(options={})
14
+ @orientation = :minMax
15
+ @logBase, @min, @max = nil, nil, nil
16
+ parse_options options
17
+ end
18
+
19
+ # logarithmic base for a logarithmic axis.
20
+ # must be between 2 and 1000
21
+ # @return [Integer]
22
+ attr_reader :logBase
23
+
24
+ # the orientation of the axis
25
+ # must be one of [:minMax, :maxMin]
26
+ # @return [Symbol]
27
+ attr_reader :orientation
28
+
29
+ # the maximum scaling
30
+ # @return [Float]
31
+ attr_reader :max
32
+
33
+ # the minimu scaling
34
+ # @return [Float]
35
+ attr_reader :min
36
+
37
+ # @see logBase
38
+ def logBase=(v) DataTypeValidator.validate "Scaling.logBase", [Integer], v, lambda { |arg| arg >= 2 && arg <= 1000}; @logBase = v; end
39
+ # @see orientation
40
+ def orientation=(v) RestrictionValidator.validate "Scaling.orientation", [:minMax, :maxMin], v; @orientation = v; end
41
+ # @see max
42
+ def max=(v) DataTypeValidator.validate "Scaling.max", Float, v; @max = v; end
43
+
44
+ # @see min
45
+ def min=(v) DataTypeValidator.validate "Scaling.min", Float, v; @min = v; end
46
+
47
+ # Serializes the object
48
+ # @param [String] str
49
+ # @return [String]
50
+ def to_xml_string(str = '')
51
+ str << '<c:scaling>'
52
+ str << ('<c:logBase val="' << @logBase.to_s << '"/>') unless @logBase.nil?
53
+ str << ('<c:orientation val="' << @orientation.to_s << '"/>') unless @orientation.nil?
54
+ str << ('<c:min val="' << @min.to_s << '"/>') unless @min.nil?
55
+ str << ('<c:max val="' << @max.to_s << '"/>') unless @max.nil?
56
+ str << '</c:scaling>'
57
+ end
58
+
59
+ end
60
+ end
@@ -1,74 +1,74 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # The ScatterChart allows you to insert a scatter chart into your worksheet
5
- # @see Worksheet#add_chart
6
- # @see Chart#add_series
7
- # @see README for an example
8
- class ScatterChart < Chart
9
-
10
- include Axlsx::OptionsParser
11
-
12
- # The Style for the scatter chart
13
- # must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker
14
- # return [Symbol]
15
- attr_reader :scatter_style
16
- alias :scatterStyle :scatter_style
17
-
18
- # the x value axis
19
- # @return [ValAxis]
20
- def x_val_axis
21
- axes[:x_val_axis]
22
- end
23
- alias :xValAxis :x_val_axis
24
-
25
- # the y value axis
26
- # @return [ValAxis]
27
- def y_val_axis
28
- axes[:y_val_axis]
29
- end
30
- alias :yValAxis :y_val_axis
31
-
32
- # Creates a new scatter chart
33
- def initialize(frame, options={})
34
- @vary_colors = 0
35
- @scatter_style = :lineMarker
36
-
37
- super(frame, options)
38
- @series_type = ScatterSeries
39
- @d_lbls = nil
40
- parse_options options
41
- end
42
-
43
- # see #scatterStyle
44
- def scatter_style=(v)
45
- Axlsx.validate_scatter_style(v)
46
- @scatter_style = v
47
- end
48
- alias :scatterStyle= :scatter_style=
49
-
50
- # Serializes the object
51
- # @param [String] str
52
- # @return [String]
53
- def to_xml_string(str = '')
54
- super(str) do
55
- str << '<c:scatterChart>'
56
- str << ('<c:scatterStyle val="' << scatter_style.to_s << '"/>')
57
- str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
58
- @series.each { |ser| ser.to_xml_string(str) }
59
- d_lbls.to_xml_string(str) if @d_lbls
60
- axes.to_xml_string(str, :ids => true)
61
- str << '</c:scatterChart>'
62
- axes.to_xml_string(str)
63
- end
64
- str
65
- end
66
-
67
- # The axes for the scatter chart. ScatterChart has an x_val_axis and
68
- # a y_val_axis
69
- # @return [Axes]
70
- def axes
71
- @axes ||= Axes.new(:x_val_axis => ValAxis, :y_val_axis => ValAxis)
72
- end
73
- end
74
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # The ScatterChart allows you to insert a scatter chart into your worksheet
5
+ # @see Worksheet#add_chart
6
+ # @see Chart#add_series
7
+ # @see README for an example
8
+ class ScatterChart < Chart
9
+
10
+ include Axlsx::OptionsParser
11
+
12
+ # The Style for the scatter chart
13
+ # must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker
14
+ # return [Symbol]
15
+ attr_reader :scatter_style
16
+ alias :scatterStyle :scatter_style
17
+
18
+ # the x value axis
19
+ # @return [ValAxis]
20
+ def x_val_axis
21
+ axes[:x_val_axis]
22
+ end
23
+ alias :xValAxis :x_val_axis
24
+
25
+ # the y value axis
26
+ # @return [ValAxis]
27
+ def y_val_axis
28
+ axes[:y_val_axis]
29
+ end
30
+ alias :yValAxis :y_val_axis
31
+
32
+ # Creates a new scatter chart
33
+ def initialize(frame, options={})
34
+ @vary_colors = 0
35
+ @scatter_style = :lineMarker
36
+
37
+ super(frame, options)
38
+ @series_type = ScatterSeries
39
+ @d_lbls = nil
40
+ parse_options options
41
+ end
42
+
43
+ # see #scatterStyle
44
+ def scatter_style=(v)
45
+ Axlsx.validate_scatter_style(v)
46
+ @scatter_style = v
47
+ end
48
+ alias :scatterStyle= :scatter_style=
49
+
50
+ # Serializes the object
51
+ # @param [String] str
52
+ # @return [String]
53
+ def to_xml_string(str = '')
54
+ super(str) do
55
+ str << '<c:scatterChart>'
56
+ str << ('<c:scatterStyle val="' << scatter_style.to_s << '"/>')
57
+ str << ('<c:varyColors val="' << vary_colors.to_s << '"/>')
58
+ @series.each { |ser| ser.to_xml_string(str) }
59
+ d_lbls.to_xml_string(str) if @d_lbls
60
+ axes.to_xml_string(str, :ids => true)
61
+ str << '</c:scatterChart>'
62
+ axes.to_xml_string(str)
63
+ end
64
+ str
65
+ end
66
+
67
+ # The axes for the scatter chart. ScatterChart has an x_val_axis and
68
+ # a y_val_axis
69
+ # @return [Axes]
70
+ def axes
71
+ @axes ||= Axes.new(:x_val_axis => ValAxis, :y_val_axis => ValAxis)
72
+ end
73
+ end
74
+ end
@@ -1,98 +1,129 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
-
4
- # A ScatterSeries defines the x and y position 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 ScatterSeries < Series
10
-
11
- # The x data for this series.
12
- # @return [NamedAxisData]
13
- attr_reader :xData
14
-
15
- # The y data for this series.
16
- # @return [NamedAxisData]
17
- attr_reader :yData
18
-
19
- # The fill color for this series.
20
- # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
21
- # @return [String]
22
- attr_reader :color
23
-
24
- # @return [String]
25
- attr_reader :ln_width
26
-
27
- # Line smoothing between data points
28
- # @return [Boolean]
29
- attr_reader :smooth
30
-
31
- # Creates a new ScatterSeries
32
- def initialize(chart, options={})
33
- @xData, @yData = nil
34
- if options[:smooth].nil?
35
- # If caller hasn't specified smoothing or not, turn smoothing on or off based on scatter style
36
- @smooth = [:smooth, :smoothMarker].include?(chart.scatter_style)
37
- else
38
- # Set smoothing according to the option provided
39
- Axlsx::validate_boolean(options[:smooth])
40
- @smooth = options[:smooth]
41
- end
42
- @ln_width = options[:ln_width] unless options[:ln_width].nil?
43
- super(chart, options)
44
- @xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
45
- @yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
46
- end
47
-
48
- # @see color
49
- def color=(v)
50
- @color = v
51
- end
52
-
53
- # @see smooth
54
- def smooth=(v)
55
- Axlsx::validate_boolean(v)
56
- @smooth = v
57
- end
58
-
59
- # @see ln_width
60
- def ln_width=(v)
61
- @ln_width = v
62
- end
63
-
64
- # Serializes the object
65
- # @param [String] str
66
- # @return [String]
67
- def to_xml_string(str = '')
68
- super(str) do
69
- # needs to override the super color here to push in ln/and something else!
70
- if color
71
- str << '<c:spPr><a:solidFill>'
72
- str << ('<a:srgbClr val="' << color << '"/>')
73
- str << '</a:solidFill>'
74
- str << '<a:ln><a:solidFill>'
75
- str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
76
- str << '</c:spPr>'
77
- str << '<c:marker>'
78
- str << '<c:spPr><a:solidFill>'
79
- str << ('<a:srgbClr val="' << color << '"/>')
80
- str << '</a:solidFill>'
81
- str << '<a:ln><a:solidFill>'
82
- str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
83
- str << '</c:spPr>'
84
- str << '</c:marker>'
85
- end
86
- if ln_width
87
- str << '<c:spPr>'
88
- str << '<a:ln w="' << ln_width.to_s << '"/>'
89
- str << '</c:spPr>'
90
- end
91
- @xData.to_xml_string(str) unless @xData.nil?
92
- @yData.to_xml_string(str) unless @yData.nil?
93
- str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
94
- end
95
- str
96
- end
97
- end
98
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # A ScatterSeries defines the x and y position 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 ScatterSeries < Series
10
+
11
+ # The x data for this series.
12
+ # @return [NamedAxisData]
13
+ attr_reader :xData
14
+
15
+ # The y data for this series.
16
+ # @return [NamedAxisData]
17
+ attr_reader :yData
18
+
19
+ # The fill color for this series.
20
+ # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
21
+ # @return [String]
22
+ attr_reader :color
23
+
24
+ # @return [String]
25
+ attr_reader :ln_width
26
+
27
+ # Line smoothing between data points
28
+ # @return [Boolean]
29
+ attr_reader :smooth
30
+
31
+ # Line markers presence
32
+ # @return [Boolean]
33
+ attr_reader :show_marker
34
+
35
+ # custom marker symbol
36
+ # @return [String]
37
+ attr_reader :marker_symbol
38
+
39
+ # Creates a new ScatterSeries
40
+ def initialize(chart, options={})
41
+ @xData, @yData = nil
42
+ if options[:smooth].nil?
43
+ # If caller hasn't specified smoothing or not, turn smoothing on or off based on scatter style
44
+ @smooth = [:smooth, :smoothMarker].include?(chart.scatter_style)
45
+ else
46
+ # Set smoothing according to the option provided
47
+ Axlsx::validate_boolean(options[:smooth])
48
+ @smooth = options[:smooth]
49
+ end
50
+ @ln_width = options[:ln_width] unless options[:ln_width].nil?
51
+ @show_marker = [:lineMarker, :marker, :smoothMarker].include?(chart.scatter_style)
52
+ @marker_symbol = :default
53
+
54
+ super(chart, options)
55
+ @xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
56
+ @yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
57
+ end
58
+
59
+ # @see color
60
+ def color=(v)
61
+ @color = v
62
+ end
63
+
64
+ # @see smooth
65
+ def smooth=(v)
66
+ Axlsx::validate_boolean(v)
67
+ @smooth = v
68
+ end
69
+
70
+ # @see ln_width
71
+ def ln_width=(v)
72
+ @ln_width = v
73
+ end
74
+
75
+ # @see marker_symbol
76
+ def marker_symbol=(v)
77
+ Axlsx::validate_marker_symbol(v)
78
+ @marker_symbol = v
79
+ end
80
+
81
+ # Serializes the object
82
+ # @param [String] str
83
+ # @return [String]
84
+ def to_xml_string(str = '')
85
+ super(str) do
86
+ # needs to override the super color here to push in ln/and something else!
87
+ if color
88
+ str << '<c:spPr><a:solidFill>'
89
+ str << ('<a:srgbClr val="' << color << '"/>')
90
+ str << '</a:solidFill>'
91
+ str << '<a:ln><a:solidFill>'
92
+ str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
93
+ str << '</c:spPr>'
94
+ str << '<c:marker>'
95
+ str << '<c:spPr><a:solidFill>'
96
+ str << ('<a:srgbClr val="' << color << '"/>')
97
+ str << '</a:solidFill>'
98
+ str << '<a:ln><a:solidFill>'
99
+ str << ('<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>')
100
+ str << '</c:spPr>'
101
+ str << marker_symbol_xml
102
+ str << '</c:marker>'
103
+ else
104
+ str << "<c:marker>#{marker_symbol_xml}</c:marker>"
105
+ end
106
+
107
+ if ln_width
108
+ str << '<c:spPr>'
109
+ str << '<a:ln w="' << ln_width.to_s << '"/>'
110
+ str << '</c:spPr>'
111
+ end
112
+ @xData.to_xml_string(str) unless @xData.nil?
113
+ @yData.to_xml_string(str) unless @yData.nil?
114
+ str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
115
+ end
116
+ str
117
+ end
118
+
119
+ private
120
+
121
+ def marker_symbol_xml
122
+ if !@show_marker
123
+ '<c:symbol val="none"/>'
124
+ elsif @marker_symbol != :default
125
+ '<c:symbol val="' + @marker_symbol.to_s + '"/>'
126
+ end.to_s
127
+ end
128
+ end
129
+ end