caxlsx 3.2.0 → 3.4.0

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