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,110 +1,107 @@
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
+ module Axlsx
2
+ # A LineSeries defines the title, data and labels for line charts
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 LineSeries < Series
7
+ # The data for this series.
8
+ # @return [ValAxisData]
9
+ attr_reader :data
10
+
11
+ # The labels for this series.
12
+ # @return [CatAxisData]
13
+ attr_reader :labels
14
+
15
+ # The fill color for this series.
16
+ # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
17
+ # @return [String]
18
+ attr_reader :color
19
+
20
+ # show markers on values
21
+ # @return [Boolean]
22
+ attr_reader :show_marker
23
+
24
+ # custom marker symbol
25
+ # @return [String]
26
+ attr_reader :marker_symbol
27
+
28
+ # line smoothing on values
29
+ # @return [Boolean]
30
+ attr_reader :smooth
31
+
32
+ # Creates a new series
33
+ # @option options [Array, SimpleTypedList] data
34
+ # @option options [Array, SimpleTypedList] labels
35
+ # @param [Chart] chart
36
+ def initialize(chart, options = {})
37
+ @show_marker = false
38
+ @marker_symbol = options[:marker_symbol] ? options[:marker_symbol] : :default
39
+ @smooth = false
40
+ @labels, @data = nil, nil
41
+ super(chart, options)
42
+ @labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
43
+ @data = NumDataSource.new(options) unless options[:data].nil?
44
+ end
45
+
46
+ # @see color
47
+ def color=(v)
48
+ @color = v
49
+ end
50
+
51
+ # @see show_marker
52
+ def show_marker=(v)
53
+ Axlsx::validate_boolean(v)
54
+ @show_marker = v
55
+ end
56
+
57
+ # @see marker_symbol
58
+ def marker_symbol=(v)
59
+ Axlsx::validate_marker_symbol(v)
60
+ @marker_symbol = v
61
+ end
62
+
63
+ # @see smooth
64
+ def smooth=(v)
65
+ Axlsx::validate_boolean(v)
66
+ @smooth = v
67
+ end
68
+
69
+ # Serializes the object
70
+ # @param [String] str
71
+ # @return [String]
72
+ def to_xml_string(str = '')
73
+ super(str) do
74
+ if color
75
+ str << '<c:spPr><a:solidFill>'
76
+ str << ('<a:srgbClr val="' << color << '"/>')
77
+ str << '</a:solidFill>'
78
+ str << '<a:ln w="28800">'
79
+ str << '<a:solidFill>'
80
+ str << ('<a:srgbClr val="' << color << '"/>')
81
+ str << '</a:solidFill>'
82
+ str << '</a:ln>'
83
+ str << '<a:round/>'
84
+ str << '</c:spPr>'
85
+ end
86
+
87
+ if !@show_marker
88
+ str << '<c:marker><c:symbol val="none"/></c:marker>'
89
+ elsif @marker_symbol != :default
90
+ str << '<c:marker><c:symbol val="' + @marker_symbol.to_s + '"/></c:marker>'
91
+ end
92
+
93
+ @labels.to_xml_string(str) unless @labels.nil?
94
+ @data.to_xml_string(str) unless @data.nil?
95
+ str << ('<c:smooth val="' << ((smooth) ? '1' : '0') << '"/>')
96
+ end
97
+ end
98
+
99
+ private
100
+
101
+ # assigns the data for this series
102
+ def data=(v) DataTypeValidator.validate "Series.data", [NumDataSource], v; @data = v; end
103
+
104
+ # assigns the labels for this series
105
+ def labels=(v) DataTypeValidator.validate "Series.labels", [AxDataSource], v; @labels = v; end
106
+ end
107
+ end
@@ -1,84 +1,80 @@
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
+ module Axlsx
2
+ # The Marker class defines a point in the worksheet that drawing anchors attach to.
3
+ # @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.
4
+ # @see Worksheet#add_chart
5
+ class Marker
6
+ include Axlsx::OptionsParser
7
+
8
+ # Creates a new Marker object
9
+ # @option options [Integer] col
10
+ # @option options [Integer] colOff
11
+ # @option options [Integer] row
12
+ # @option options [Integer] rowOff
13
+ def initialize(options = {})
14
+ @col, @colOff, @row, @rowOff = 0, 0, 0, 0
15
+ parse_options options
16
+ end
17
+
18
+ # The column this marker anchors to
19
+ # @return [Integer]
20
+ attr_reader :col
21
+
22
+ # The offset distance from this marker's column
23
+ # @return [Integer]
24
+ attr_reader :colOff
25
+
26
+ # The row this marker anchors to
27
+ # @return [Integer]
28
+ attr_reader :row
29
+
30
+ # The offset distance from this marker's row
31
+ # @return [Integer]
32
+ attr_reader :rowOff
33
+
34
+ # @see col
35
+ def col=(v) Axlsx::validate_unsigned_int v; @col = v end
36
+ # @see colOff
37
+ def colOff=(v) Axlsx::validate_int v; @colOff = v end
38
+ # @see row
39
+ def row=(v) Axlsx::validate_unsigned_int v; @row = v end
40
+ # @see rowOff
41
+ def rowOff=(v) Axlsx::validate_int v; @rowOff = v end
42
+
43
+ # shortcut to set the column, row position for this marker
44
+ # @param col the column for the marker, a Cell object or a string reference like "B7"
45
+ # or an Array.
46
+ # @param row the row of the marker. This is ignored if the col parameter is a Cell or
47
+ # String or Array.
48
+ def coord(col, row = 0)
49
+ coordinates = parse_coord_args(col, row)
50
+ self.col = coordinates[0]
51
+ self.row = coordinates[1]
52
+ end
53
+
54
+ # Serializes the object
55
+ # @param [String] str
56
+ # @return [String]
57
+ def to_xml_string(str = '')
58
+ [:col, :colOff, :row, :rowOff].each do |k|
59
+ str << ('<xdr:' << k.to_s << '>' << self.send(k).to_s << '</xdr:' << k.to_s << '>')
60
+ end
61
+ end
62
+
63
+ private
64
+
65
+ # handles multiple inputs for setting the position of a marker
66
+ # @see Chart#start_at
67
+ def parse_coord_args(x, y = 0)
68
+ if x.is_a?(String)
69
+ x, y = *Axlsx::name_to_indices(x)
70
+ end
71
+ if x.is_a?(Cell)
72
+ x, y = *x.pos
73
+ end
74
+ if x.is_a?(Array)
75
+ x, y = *x
76
+ end
77
+ [x, y]
78
+ end
79
+ end
80
+ end
@@ -1,52 +1,47 @@
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
+ module Axlsx
2
+ # This class specifies data for a particular data point. It is used for both numCache and numLit object
3
+ class NumData
4
+ include Axlsx::OptionsParser
5
+
6
+ # creates a new NumVal object
7
+ # @option options [String] formatCode
8
+ # @option options [Array] :data
9
+ # @see StrData
10
+ def initialize(options = {})
11
+ @format_code = "General"
12
+ @pt = SimpleTypedList.new NumVal
13
+ parse_options options
14
+ end
15
+
16
+ # A string representing the format code to apply. For more information see see the SpreadsheetML numFmt element's (§18.8.30) formatCode attribute.
17
+ # @return [String]
18
+ attr_reader :format_code
19
+
20
+ # Creates the val objects for this data set. I am not overly confident this is going to play nicely with time and data types.
21
+ # @param [Array] values An array of cells or values.
22
+ def data=(values = [])
23
+ @tag_name = values.first.is_a?(Cell) ? :numCache : :numLit
24
+ values.each do |value|
25
+ value = value.is_formula? ? 0 : value.value if value.is_a?(Cell)
26
+ @pt << NumVal.new(:v => value)
27
+ end
28
+ end
29
+
30
+ # @see format_code
31
+ def format_code=(v = 'General')
32
+ Axlsx::validate_string(v)
33
+ @format_code = v
34
+ end
35
+
36
+ # serialize the object
37
+ def to_xml_string(str = "")
38
+ str << ('<c:' << @tag_name.to_s << '>')
39
+ str << ('<c:formatCode>' << format_code.to_s << '</c:formatCode>')
40
+ str << ('<c:ptCount val="' << @pt.size.to_s << '"/>')
41
+ @pt.each_with_index do |num_val, index|
42
+ num_val.to_xml_string index, str
43
+ end
44
+ str << ('</c:' << @tag_name.to_s << '>')
45
+ end
46
+ end
47
+ end
@@ -1,62 +1,58 @@
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
+ # A numeric data source for use by charts.
3
+ class NumDataSource
4
+ include Axlsx::OptionsParser
5
+
6
+ # creates a new NumDataSource object
7
+ # @option options [Array] data An array of Cells or Numeric objects
8
+ # @option options [Symbol] tag_name see tag_name
9
+ def initialize(options = {})
10
+ # override these three in child classes
11
+ @data_type ||= NumData
12
+ @tag_name ||= :val
13
+ @ref_tag_name ||= :numRef
14
+
15
+ @f = nil
16
+ @data = @data_type.new(options)
17
+ if options[:data] && options[:data].first.is_a?(Cell)
18
+ @f = Axlsx::cell_range(options[:data])
19
+ end
20
+ parse_options options
21
+ end
22
+
23
+ # The tag name to use when serializing this data source.
24
+ # Only items defined in allowed_tag_names are allowed
25
+ # @return [Symbol]
26
+ attr_reader :tag_name
27
+
28
+ attr_reader :data
29
+
30
+ # allowed element tag names
31
+ # @return [Array]
32
+ def self.allowed_tag_names
33
+ [:yVal, :val, :bubbleSize]
34
+ end
35
+
36
+ # sets the tag name for this data source
37
+ # @param [Symbol] v One of the allowed_tag_names
38
+ def tag_name=(v)
39
+ Axlsx::RestrictionValidator.validate "#{self.class.name}.tag_name", self.class.allowed_tag_names, v
40
+ @tag_name = v
41
+ end
42
+
43
+ # serialize the object
44
+ # @param [String] str
45
+ def to_xml_string(str = "")
46
+ str << ('<c:' << tag_name.to_s << '>')
47
+ if @f
48
+ str << ('<c:' << @ref_tag_name.to_s << '>')
49
+ str << ('<c:f>' << @f.to_s << '</c:f>')
50
+ end
51
+ @data.to_xml_string str
52
+ if @f
53
+ str << ('</c:' << @ref_tag_name.to_s << '>')
54
+ end
55
+ str << ('</c:' << tag_name.to_s << '>')
56
+ end
57
+ end
58
+ end