caxlsx 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +385 -354
  5. data/LICENSE +21 -21
  6. data/README.md +165 -168
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +299 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +91 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +107 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +398 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +535 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +416 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +425 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +76 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +532 -506
  100. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  101. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  102. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +267 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +335 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  139. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  140. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  141. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  142. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  143. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  144. data/lib/axlsx/workbook/worksheet/worksheet.rb +829 -786
  145. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  149. data/lib/axlsx.rb +204 -185
  150. data/lib/caxlsx.rb +2 -2
  151. data/lib/schema/dc.xsd +118 -118
  152. data/lib/schema/dcmitype.xsd +51 -51
  153. data/lib/schema/dcterms.xsd +331 -331
  154. data/lib/schema/dml-chartDrawing.xsd +146 -146
  155. data/lib/schema/dml-compatibility.xsd +14 -14
  156. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  157. data/lib/schema/dml-main.xsd +3048 -3048
  158. data/lib/schema/dml-picture.xsd +23 -23
  159. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  160. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  161. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  162. data/lib/schema/shared-bibliography.xsd +144 -144
  163. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  164. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  165. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  166. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  167. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  168. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  169. data/lib/schema/shared-relationshipReference.xsd +25 -25
  170. data/lib/schema/vml-main.xsd +569 -569
  171. data/lib/schema/vml-officeDrawing.xsd +509 -509
  172. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  173. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  174. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  175. data/lib/schema/xml.xsd +116 -116
  176. metadata +5 -252
  177. data/test/benchmark.rb +0 -72
  178. data/test/content_type/tc_content_type.rb +0 -76
  179. data/test/content_type/tc_default.rb +0 -16
  180. data/test/content_type/tc_override.rb +0 -14
  181. data/test/doc_props/tc_app.rb +0 -43
  182. data/test/doc_props/tc_core.rb +0 -42
  183. data/test/drawing/tc_area_chart.rb +0 -39
  184. data/test/drawing/tc_area_series.rb +0 -71
  185. data/test/drawing/tc_axes.rb +0 -8
  186. data/test/drawing/tc_axis.rb +0 -112
  187. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  188. data/test/drawing/tc_bar_chart.rb +0 -86
  189. data/test/drawing/tc_bar_series.rb +0 -46
  190. data/test/drawing/tc_bubble_chart.rb +0 -44
  191. data/test/drawing/tc_bubble_series.rb +0 -21
  192. data/test/drawing/tc_cat_axis.rb +0 -31
  193. data/test/drawing/tc_cat_axis_data.rb +0 -27
  194. data/test/drawing/tc_chart.rb +0 -123
  195. data/test/drawing/tc_d_lbls.rb +0 -57
  196. data/test/drawing/tc_data_source.rb +0 -23
  197. data/test/drawing/tc_drawing.rb +0 -80
  198. data/test/drawing/tc_graphic_frame.rb +0 -27
  199. data/test/drawing/tc_hyperlink.rb +0 -64
  200. data/test/drawing/tc_line_3d_chart.rb +0 -47
  201. data/test/drawing/tc_line_chart.rb +0 -39
  202. data/test/drawing/tc_line_series.rb +0 -71
  203. data/test/drawing/tc_marker.rb +0 -44
  204. data/test/drawing/tc_named_axis_data.rb +0 -27
  205. data/test/drawing/tc_num_data.rb +0 -31
  206. data/test/drawing/tc_num_val.rb +0 -29
  207. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  208. data/test/drawing/tc_pic.rb +0 -103
  209. data/test/drawing/tc_picture_locking.rb +0 -72
  210. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  211. data/test/drawing/tc_pie_series.rb +0 -33
  212. data/test/drawing/tc_scaling.rb +0 -36
  213. data/test/drawing/tc_scatter_chart.rb +0 -48
  214. data/test/drawing/tc_scatter_series.rb +0 -74
  215. data/test/drawing/tc_ser_axis.rb +0 -31
  216. data/test/drawing/tc_series.rb +0 -23
  217. data/test/drawing/tc_series_title.rb +0 -54
  218. data/test/drawing/tc_str_data.rb +0 -18
  219. data/test/drawing/tc_str_val.rb +0 -30
  220. data/test/drawing/tc_title.rb +0 -70
  221. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  222. data/test/drawing/tc_val_axis.rb +0 -24
  223. data/test/drawing/tc_view_3D.rb +0 -54
  224. data/test/drawing/tc_vml_drawing.rb +0 -25
  225. data/test/drawing/tc_vml_shape.rb +0 -106
  226. data/test/fixtures/image1.gif +0 -0
  227. data/test/fixtures/image1.jpeg +0 -0
  228. data/test/fixtures/image1.jpg +0 -0
  229. data/test/fixtures/image1.png +0 -0
  230. data/test/fixtures/image1_fake.jpg +0 -0
  231. data/test/profile.rb +0 -24
  232. data/test/rels/tc_relationship.rb +0 -52
  233. data/test/rels/tc_relationships.rb +0 -37
  234. data/test/stylesheet/tc_border.rb +0 -37
  235. data/test/stylesheet/tc_border_pr.rb +0 -32
  236. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  237. data/test/stylesheet/tc_cell_protection.rb +0 -29
  238. data/test/stylesheet/tc_cell_style.rb +0 -57
  239. data/test/stylesheet/tc_color.rb +0 -43
  240. data/test/stylesheet/tc_dxf.rb +0 -81
  241. data/test/stylesheet/tc_fill.rb +0 -18
  242. data/test/stylesheet/tc_font.rb +0 -133
  243. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  244. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  245. data/test/stylesheet/tc_num_fmt.rb +0 -30
  246. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  247. data/test/stylesheet/tc_styles.rb +0 -309
  248. data/test/stylesheet/tc_table_style.rb +0 -44
  249. data/test/stylesheet/tc_table_style_element.rb +0 -45
  250. data/test/stylesheet/tc_table_styles.rb +0 -29
  251. data/test/stylesheet/tc_xf.rb +0 -120
  252. data/test/tc_axlsx.rb +0 -109
  253. data/test/tc_helper.rb +0 -10
  254. data/test/tc_package.rb +0 -317
  255. data/test/util/tc_mime_type_utils.rb +0 -13
  256. data/test/util/tc_serialized_attributes.rb +0 -19
  257. data/test/util/tc_simple_typed_list.rb +0 -77
  258. data/test/util/tc_validators.rb +0 -210
  259. data/test/workbook/tc_defined_name.rb +0 -49
  260. data/test/workbook/tc_shared_strings_table.rb +0 -59
  261. data/test/workbook/tc_workbook.rb +0 -165
  262. data/test/workbook/tc_workbook_view.rb +0 -50
  263. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  264. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  265. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  266. data/test/workbook/worksheet/tc_break.rb +0 -49
  267. data/test/workbook/worksheet/tc_cell.rb +0 -465
  268. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  269. data/test/workbook/worksheet/tc_col.rb +0 -93
  270. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  271. data/test/workbook/worksheet/tc_comment.rb +0 -72
  272. data/test/workbook/worksheet/tc_comments.rb +0 -57
  273. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  274. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  275. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  276. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  277. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  278. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  279. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  280. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  281. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  282. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  283. data/test/workbook/worksheet/tc_pane.rb +0 -54
  284. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  285. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  286. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  287. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  288. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  289. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  290. data/test/workbook/worksheet/tc_row.rb +0 -160
  291. data/test/workbook/worksheet/tc_selection.rb +0 -55
  292. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  293. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  294. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  295. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  296. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  297. data/test/workbook/worksheet/tc_table.rb +0 -77
  298. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  299. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  300. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,110 +1,110 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # A LineSeries defines the title, data and labels for line 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 LineSeries < Series
8
-
9
- # The data for this series.
10
- # @return [ValAxisData]
11
- attr_reader :data
12
-
13
- # The labels for this series.
14
- # @return [CatAxisData]
15
- attr_reader :labels
16
-
17
- # The fill color for this series.
18
- # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
19
- # @return [String]
20
- attr_reader :color
21
-
22
- # show markers on values
23
- # @return [Boolean]
24
- attr_reader :show_marker
25
-
26
- # custom marker symbol
27
- # @return [String]
28
- attr_reader :marker_symbol
29
-
30
- # line smoothing on values
31
- # @return [Boolean]
32
- attr_reader :smooth
33
-
34
- # Creates a new series
35
- # @option options [Array, SimpleTypedList] data
36
- # @option options [Array, SimpleTypedList] labels
37
- # @param [Chart] chart
38
- def initialize(chart, options={})
39
- @show_marker = false
40
- @marker_symbol = options[:marker_symbol] ? options[:marker_symbol] : :default
41
- @smooth = false
42
- @labels, @data = nil, nil
43
- super(chart, options)
44
- @labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
45
- @data = NumDataSource.new(options) unless options[:data].nil?
46
- end
47
-
48
- # @see color
49
- def color=(v)
50
- @color = v
51
- end
52
-
53
- # @see show_marker
54
- def show_marker=(v)
55
- Axlsx::validate_boolean(v)
56
- @show_marker = v
57
- end
58
-
59
- # @see marker_symbol
60
- def marker_symbol=(v)
61
- Axlsx::validate_marker_symbol(v)
62
- @marker_symbol = v
63
- end
64
-
65
- # @see smooth
66
- def smooth=(v)
67
- Axlsx::validate_boolean(v)
68
- @smooth = v
69
- end
70
-
71
- # Serializes the object
72
- # @param [String] str
73
- # @return [String]
74
- def to_xml_string(str = '')
75
- super(str) do
76
- if color
77
- str << '<c:spPr><a:solidFill>'
78
- str << ('<a:srgbClr val="' << color << '"/>')
79
- str << '</a:solidFill>'
80
- str << '<a:ln w="28800">'
81
- str << '<a:solidFill>'
82
- str << ('<a:srgbClr val="' << color << '"/>')
83
- str << '</a:solidFill>'
84
- str << '</a:ln>'
85
- str << '<a:round/>'
86
- str << '</c:spPr>'
87
- end
88
-
89
- if !@show_marker
90
- str << '<c:marker><c:symbol val="none"/></c:marker>'
91
- elsif @marker_symbol != :default
92
- str << '<c:marker><c:symbol val="' + @marker_symbol.to_s + '"/></c:marker>'
93
- end
94
-
95
- @labels.to_xml_string(str) unless @labels.nil?
96
- @data.to_xml_string(str) unless @data.nil?
97
- str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
98
- end
99
- end
100
-
101
- private
102
-
103
- # assigns the data for this series
104
- def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
105
-
106
- # assigns the labels for this series
107
- def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
108
-
109
- end
110
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # A LineSeries defines the title, data and labels for line 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 LineSeries < Series
8
+
9
+ # The data for this series.
10
+ # @return [ValAxisData]
11
+ attr_reader :data
12
+
13
+ # The labels for this series.
14
+ # @return [CatAxisData]
15
+ attr_reader :labels
16
+
17
+ # The fill color for this series.
18
+ # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
19
+ # @return [String]
20
+ attr_reader :color
21
+
22
+ # show markers on values
23
+ # @return [Boolean]
24
+ attr_reader :show_marker
25
+
26
+ # custom marker symbol
27
+ # @return [String]
28
+ attr_reader :marker_symbol
29
+
30
+ # line smoothing on values
31
+ # @return [Boolean]
32
+ attr_reader :smooth
33
+
34
+ # Creates a new series
35
+ # @option options [Array, SimpleTypedList] data
36
+ # @option options [Array, SimpleTypedList] labels
37
+ # @param [Chart] chart
38
+ def initialize(chart, options={})
39
+ @show_marker = false
40
+ @marker_symbol = options[:marker_symbol] ? options[:marker_symbol] : :default
41
+ @smooth = false
42
+ @labels, @data = nil, nil
43
+ super(chart, options)
44
+ @labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
45
+ @data = NumDataSource.new(options) unless options[:data].nil?
46
+ end
47
+
48
+ # @see color
49
+ def color=(v)
50
+ @color = v
51
+ end
52
+
53
+ # @see show_marker
54
+ def show_marker=(v)
55
+ Axlsx::validate_boolean(v)
56
+ @show_marker = v
57
+ end
58
+
59
+ # @see marker_symbol
60
+ def marker_symbol=(v)
61
+ Axlsx::validate_marker_symbol(v)
62
+ @marker_symbol = v
63
+ end
64
+
65
+ # @see smooth
66
+ def smooth=(v)
67
+ Axlsx::validate_boolean(v)
68
+ @smooth = v
69
+ end
70
+
71
+ # Serializes the object
72
+ # @param [String] str
73
+ # @return [String]
74
+ def to_xml_string(str = '')
75
+ super(str) do
76
+ if color
77
+ str << '<c:spPr><a:solidFill>'
78
+ str << ('<a:srgbClr val="' << color << '"/>')
79
+ str << '</a:solidFill>'
80
+ str << '<a:ln w="28800">'
81
+ str << '<a:solidFill>'
82
+ str << ('<a:srgbClr val="' << color << '"/>')
83
+ str << '</a:solidFill>'
84
+ str << '</a:ln>'
85
+ str << '<a:round/>'
86
+ str << '</c:spPr>'
87
+ end
88
+
89
+ if !@show_marker
90
+ str << '<c:marker><c:symbol val="none"/></c:marker>'
91
+ elsif @marker_symbol != :default
92
+ str << '<c:marker><c:symbol val="' + @marker_symbol.to_s + '"/></c:marker>'
93
+ end
94
+
95
+ @labels.to_xml_string(str) unless @labels.nil?
96
+ @data.to_xml_string(str) unless @data.nil?
97
+ str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
98
+ end
99
+ end
100
+
101
+ private
102
+
103
+ # assigns the data for this series
104
+ def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
105
+
106
+ # assigns the labels for this series
107
+ def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
108
+
109
+ end
110
+ end
@@ -1,84 +1,84 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # The Marker class defines a point in the worksheet that drawing anchors attach to.
4
- # @note The recommended way to manage markers is Worksheet#add_chart Markers are created for a two cell anchor based on the :start and :end options.
5
- # @see Worksheet#add_chart
6
- class Marker
7
-
8
- include Axlsx::OptionsParser
9
-
10
- # Creates a new Marker object
11
- # @option options [Integer] col
12
- # @option options [Integer] colOff
13
- # @option options [Integer] row
14
- # @option options [Integer] rowOff
15
- def initialize(options={})
16
- @col, @colOff, @row, @rowOff = 0, 0, 0, 0
17
- parse_options options
18
- end
19
-
20
- # The column this marker anchors to
21
- # @return [Integer]
22
- attr_reader :col
23
-
24
- # The offset distance from this marker's column
25
- # @return [Integer]
26
- attr_reader :colOff
27
-
28
- # The row this marker anchors to
29
- # @return [Integer]
30
- attr_reader :row
31
-
32
- # The offset distance from this marker's row
33
- # @return [Integer]
34
- attr_reader :rowOff
35
-
36
- # @see col
37
- def col=(v) Axlsx::validate_unsigned_int v; @col = v end
38
- # @see colOff
39
- def colOff=(v) Axlsx::validate_int v; @colOff = v end
40
- # @see row
41
- def row=(v) Axlsx::validate_unsigned_int v; @row = v end
42
- # @see rowOff
43
- def rowOff=(v) Axlsx::validate_int v; @rowOff = v end
44
-
45
- # shortcut to set the column, row position for this marker
46
- # @param col the column for the marker, a Cell object or a string reference like "B7"
47
- # or an Array.
48
- # @param row the row of the marker. This is ignored if the col parameter is a Cell or
49
- # String or Array.
50
- def coord(col, row=0)
51
- coordinates = parse_coord_args(col, row)
52
- self.col = coordinates[0]
53
- self.row = coordinates[1]
54
- end
55
-
56
- # Serializes the object
57
- # @param [String] str
58
- # @return [String]
59
- def to_xml_string(str = '')
60
- [:col, :colOff, :row, :rowOff].each do |k|
61
- str << ('<xdr:' << k.to_s << '>' << self.send(k).to_s << '</xdr:' << k.to_s << '>')
62
- end
63
- end
64
- private
65
-
66
- # handles multiple inputs for setting the position of a marker
67
- # @see Chart#start_at
68
- def parse_coord_args(x, y=0)
69
- if x.is_a?(String)
70
- x, y = *Axlsx::name_to_indices(x)
71
- end
72
- if x.is_a?(Cell)
73
- x, y = *x.pos
74
- end
75
- if x.is_a?(Array)
76
- x, y = *x
77
- end
78
- [x, y]
79
- end
80
-
81
-
82
- end
83
-
84
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # The Marker class defines a point in the worksheet that drawing anchors attach to.
4
+ # @note The recommended way to manage markers is Worksheet#add_chart Markers are created for a two cell anchor based on the :start and :end options.
5
+ # @see Worksheet#add_chart
6
+ class Marker
7
+
8
+ include Axlsx::OptionsParser
9
+
10
+ # Creates a new Marker object
11
+ # @option options [Integer] col
12
+ # @option options [Integer] colOff
13
+ # @option options [Integer] row
14
+ # @option options [Integer] rowOff
15
+ def initialize(options={})
16
+ @col, @colOff, @row, @rowOff = 0, 0, 0, 0
17
+ parse_options options
18
+ end
19
+
20
+ # The column this marker anchors to
21
+ # @return [Integer]
22
+ attr_reader :col
23
+
24
+ # The offset distance from this marker's column
25
+ # @return [Integer]
26
+ attr_reader :colOff
27
+
28
+ # The row this marker anchors to
29
+ # @return [Integer]
30
+ attr_reader :row
31
+
32
+ # The offset distance from this marker's row
33
+ # @return [Integer]
34
+ attr_reader :rowOff
35
+
36
+ # @see col
37
+ def col=(v) Axlsx::validate_unsigned_int v; @col = v end
38
+ # @see colOff
39
+ def colOff=(v) Axlsx::validate_int v; @colOff = v end
40
+ # @see row
41
+ def row=(v) Axlsx::validate_unsigned_int v; @row = v end
42
+ # @see rowOff
43
+ def rowOff=(v) Axlsx::validate_int v; @rowOff = v end
44
+
45
+ # shortcut to set the column, row position for this marker
46
+ # @param col the column for the marker, a Cell object or a string reference like "B7"
47
+ # or an Array.
48
+ # @param row the row of the marker. This is ignored if the col parameter is a Cell or
49
+ # String or Array.
50
+ def coord(col, row=0)
51
+ coordinates = parse_coord_args(col, row)
52
+ self.col = coordinates[0]
53
+ self.row = coordinates[1]
54
+ end
55
+
56
+ # Serializes the object
57
+ # @param [String] str
58
+ # @return [String]
59
+ def to_xml_string(str = '')
60
+ [:col, :colOff, :row, :rowOff].each do |k|
61
+ str << ('<xdr:' << k.to_s << '>' << self.send(k).to_s << '</xdr:' << k.to_s << '>')
62
+ end
63
+ end
64
+ private
65
+
66
+ # handles multiple inputs for setting the position of a marker
67
+ # @see Chart#start_at
68
+ def parse_coord_args(x, y=0)
69
+ if x.is_a?(String)
70
+ x, y = *Axlsx::name_to_indices(x)
71
+ end
72
+ if x.is_a?(Cell)
73
+ x, y = *x.pos
74
+ end
75
+ if x.is_a?(Array)
76
+ x, y = *x
77
+ end
78
+ [x, y]
79
+ end
80
+
81
+
82
+ end
83
+
84
+ end
@@ -1,52 +1,52 @@
1
- # -*- coding: utf-8 -*-
2
- module Axlsx
3
-
4
- #This class specifies data for a particular data point. It is used for both numCache and numLit object
5
- class NumData
6
-
7
- include Axlsx::OptionsParser
8
-
9
- # creates a new NumVal object
10
- # @option options [String] formatCode
11
- # @option options [Array] :data
12
- # @see StrData
13
- def initialize(options={})
14
- @format_code = "General"
15
- @pt = SimpleTypedList.new NumVal
16
- parse_options options
17
- end
18
-
19
- # A string representing the format code to apply. For more information see see the SpreadsheetML numFmt element's (§18.8.30) formatCode attribute.
20
- # @return [String]
21
- attr_reader :format_code
22
-
23
- # Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
24
- # @param [Array] values An array of cells or values.
25
- def data=(values=[])
26
- @tag_name = values.first.is_a?(Cell) ? :numCache : :numLit
27
- values.each do |value|
28
- value = value.is_formula? ? 0 : value.value if value.is_a?(Cell)
29
- @pt << NumVal.new(:v => value)
30
- end
31
- end
32
-
33
- # @see format_code
34
- def format_code=(v='General')
35
- Axlsx::validate_string(v)
36
- @format_code = v
37
- end
38
-
39
- # serialize the object
40
- def to_xml_string(str = "")
41
- str << ('<c:' << @tag_name.to_s << '>')
42
- str << ('<c:formatCode>' << format_code.to_s << '</c:formatCode>')
43
- str << ('<c:ptCount val="' << @pt.size.to_s << '"/>')
44
- @pt.each_with_index do |num_val, index|
45
- num_val.to_xml_string index, str
46
- end
47
- str << ('</c:' << @tag_name.to_s << '>')
48
- end
49
-
50
- end
51
-
52
- end
1
+ # -*- coding: utf-8 -*-
2
+ module Axlsx
3
+
4
+ #This class specifies data for a particular data point. It is used for both numCache and numLit object
5
+ class NumData
6
+
7
+ include Axlsx::OptionsParser
8
+
9
+ # creates a new NumVal object
10
+ # @option options [String] formatCode
11
+ # @option options [Array] :data
12
+ # @see StrData
13
+ def initialize(options={})
14
+ @format_code = "General"
15
+ @pt = SimpleTypedList.new NumVal
16
+ parse_options options
17
+ end
18
+
19
+ # A string representing the format code to apply. For more information see see the SpreadsheetML numFmt element's (§18.8.30) formatCode attribute.
20
+ # @return [String]
21
+ attr_reader :format_code
22
+
23
+ # Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
24
+ # @param [Array] values An array of cells or values.
25
+ def data=(values=[])
26
+ @tag_name = values.first.is_a?(Cell) ? :numCache : :numLit
27
+ values.each do |value|
28
+ value = value.is_formula? ? 0 : value.value if value.is_a?(Cell)
29
+ @pt << NumVal.new(:v => value)
30
+ end
31
+ end
32
+
33
+ # @see format_code
34
+ def format_code=(v='General')
35
+ Axlsx::validate_string(v)
36
+ @format_code = v
37
+ end
38
+
39
+ # serialize the object
40
+ def to_xml_string(str = "")
41
+ str << ('<c:' << @tag_name.to_s << '>')
42
+ str << ('<c:formatCode>' << format_code.to_s << '</c:formatCode>')
43
+ str << ('<c:ptCount val="' << @pt.size.to_s << '"/>')
44
+ @pt.each_with_index do |num_val, index|
45
+ num_val.to_xml_string index, str
46
+ end
47
+ str << ('</c:' << @tag_name.to_s << '>')
48
+ end
49
+
50
+ end
51
+
52
+ end
@@ -1,62 +1,62 @@
1
- module Axlsx
2
-
3
- # A numeric data source for use by charts.
4
- class NumDataSource
5
-
6
- include Axlsx::OptionsParser
7
-
8
- # creates a new NumDataSource object
9
- # @option options [Array] data An array of Cells or Numeric objects
10
- # @option options [Symbol] tag_name see tag_name
11
- def initialize(options={})
12
- # override these three in child classes
13
- @data_type ||= NumData
14
- @tag_name ||= :val
15
- @ref_tag_name ||= :numRef
16
-
17
- @f = nil
18
- @data = @data_type.new(options)
19
- if options[:data] && options[:data].first.is_a?(Cell)
20
- @f = Axlsx::cell_range(options[:data])
21
- end
22
- parse_options options
23
- end
24
-
25
-
26
- # The tag name to use when serializing this data source.
27
- # Only items defined in allowed_tag_names are allowed
28
- # @return [Symbol]
29
- attr_reader :tag_name
30
-
31
- attr_reader :data
32
-
33
- # allowed element tag names
34
- # @return [Array]
35
- def self.allowed_tag_names
36
- [:yVal, :val, :bubbleSize]
37
- end
38
-
39
- # sets the tag name for this data source
40
- # @param [Symbol] v One of the allowed_tag_names
41
- def tag_name=(v)
42
- Axlsx::RestrictionValidator.validate "#{self.class.name}.tag_name", self.class.allowed_tag_names, v
43
- @tag_name = v
44
- end
45
-
46
- # serialize the object
47
- # @param [String] str
48
- def to_xml_string(str="")
49
- str << ('<c:' << tag_name.to_s << '>')
50
- if @f
51
- str << ('<c:' << @ref_tag_name.to_s << '>')
52
- str << ('<c:f>' << @f.to_s << '</c:f>')
53
- end
54
- @data.to_xml_string str
55
- if @f
56
- str << ('</c:' << @ref_tag_name.to_s << '>')
57
- end
58
- str << ('</c:' << tag_name.to_s << '>')
59
- end
60
- end
61
- end
62
-
1
+ module Axlsx
2
+
3
+ # A numeric data source for use by charts.
4
+ class NumDataSource
5
+
6
+ include Axlsx::OptionsParser
7
+
8
+ # creates a new NumDataSource object
9
+ # @option options [Array] data An array of Cells or Numeric objects
10
+ # @option options [Symbol] tag_name see tag_name
11
+ def initialize(options={})
12
+ # override these three in child classes
13
+ @data_type ||= NumData
14
+ @tag_name ||= :val
15
+ @ref_tag_name ||= :numRef
16
+
17
+ @f = nil
18
+ @data = @data_type.new(options)
19
+ if options[:data] && options[:data].first.is_a?(Cell)
20
+ @f = Axlsx::cell_range(options[:data])
21
+ end
22
+ parse_options options
23
+ end
24
+
25
+
26
+ # The tag name to use when serializing this data source.
27
+ # Only items defined in allowed_tag_names are allowed
28
+ # @return [Symbol]
29
+ attr_reader :tag_name
30
+
31
+ attr_reader :data
32
+
33
+ # allowed element tag names
34
+ # @return [Array]
35
+ def self.allowed_tag_names
36
+ [:yVal, :val, :bubbleSize]
37
+ end
38
+
39
+ # sets the tag name for this data source
40
+ # @param [Symbol] v One of the allowed_tag_names
41
+ def tag_name=(v)
42
+ Axlsx::RestrictionValidator.validate "#{self.class.name}.tag_name", self.class.allowed_tag_names, v
43
+ @tag_name = v
44
+ end
45
+
46
+ # serialize the object
47
+ # @param [String] str
48
+ def to_xml_string(str="")
49
+ str << ('<c:' << tag_name.to_s << '>')
50
+ if @f
51
+ str << ('<c:' << @ref_tag_name.to_s << '>')
52
+ str << ('<c:f>' << @f.to_s << '</c:f>')
53
+ end
54
+ @data.to_xml_string str
55
+ if @f
56
+ str << ('</c:' << @ref_tag_name.to_s << '>')
57
+ end
58
+ str << ('</c:' << tag_name.to_s << '>')
59
+ end
60
+ end
61
+ end
62
+