caxlsx 2.0.2

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 (305) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +9 -0
  3. data/.yardopts_guide +19 -0
  4. data/CHANGELOG.md +239 -0
  5. data/LICENSE +22 -0
  6. data/README.md +256 -0
  7. data/Rakefile +31 -0
  8. data/examples/2010_comments.rb +17 -0
  9. data/examples/anchor_swapping.rb +28 -0
  10. data/examples/auto_filter.rb +16 -0
  11. data/examples/basic_charts.rb +58 -0
  12. data/examples/chart_colors.rb +88 -0
  13. data/examples/colored_links.rb +59 -0
  14. data/examples/conditional_formatting/example_conditional_formatting.rb +74 -0
  15. data/examples/conditional_formatting/getting_barred.rb +37 -0
  16. data/examples/conditional_formatting/hitting_the_high_notes.rb +37 -0
  17. data/examples/conditional_formatting/scaled_colors.rb +39 -0
  18. data/examples/conditional_formatting/stop_and_go.rb +37 -0
  19. data/examples/data_validation.rb +50 -0
  20. data/examples/example.rb +777 -0
  21. data/examples/extractive.rb +45 -0
  22. data/examples/image1.jpeg +0 -0
  23. data/examples/ios_preview.rb +14 -0
  24. data/examples/page_setup.rb +11 -0
  25. data/examples/pivot_table.rb +39 -0
  26. data/examples/sheet_protection.rb +10 -0
  27. data/examples/skydrive/real_example.rb +63 -0
  28. data/examples/styles.rb +66 -0
  29. data/examples/underline.rb +13 -0
  30. data/examples/wrap_text.rb +21 -0
  31. data/lib/axlsx.rb +152 -0
  32. data/lib/axlsx/content_type/abstract_content_type.rb +32 -0
  33. data/lib/axlsx/content_type/content_type.rb +26 -0
  34. data/lib/axlsx/content_type/default.rb +25 -0
  35. data/lib/axlsx/content_type/override.rb +25 -0
  36. data/lib/axlsx/doc_props/app.rb +235 -0
  37. data/lib/axlsx/doc_props/core.rb +39 -0
  38. data/lib/axlsx/drawing/ax_data_source.rb +26 -0
  39. data/lib/axlsx/drawing/axes.rb +61 -0
  40. data/lib/axlsx/drawing/axis.rb +187 -0
  41. data/lib/axlsx/drawing/bar_3D_chart.rb +151 -0
  42. data/lib/axlsx/drawing/bar_series.rb +82 -0
  43. data/lib/axlsx/drawing/cat_axis.rb +85 -0
  44. data/lib/axlsx/drawing/chart.rb +232 -0
  45. data/lib/axlsx/drawing/d_lbls.rb +90 -0
  46. data/lib/axlsx/drawing/drawing.rb +162 -0
  47. data/lib/axlsx/drawing/graphic_frame.rb +54 -0
  48. data/lib/axlsx/drawing/hyperlink.rb +102 -0
  49. data/lib/axlsx/drawing/line_3D_chart.rb +68 -0
  50. data/lib/axlsx/drawing/line_chart.rb +99 -0
  51. data/lib/axlsx/drawing/line_series.rb +81 -0
  52. data/lib/axlsx/drawing/marker.rb +84 -0
  53. data/lib/axlsx/drawing/num_data.rb +52 -0
  54. data/lib/axlsx/drawing/num_data_source.rb +62 -0
  55. data/lib/axlsx/drawing/num_val.rb +32 -0
  56. data/lib/axlsx/drawing/one_cell_anchor.rb +98 -0
  57. data/lib/axlsx/drawing/pic.rb +205 -0
  58. data/lib/axlsx/drawing/picture_locking.rb +44 -0
  59. data/lib/axlsx/drawing/pie_3D_chart.rb +48 -0
  60. data/lib/axlsx/drawing/pie_series.rb +74 -0
  61. data/lib/axlsx/drawing/scaling.rb +60 -0
  62. data/lib/axlsx/drawing/scatter_chart.rb +74 -0
  63. data/lib/axlsx/drawing/scatter_series.rb +65 -0
  64. data/lib/axlsx/drawing/ser_axis.rb +45 -0
  65. data/lib/axlsx/drawing/series.rb +69 -0
  66. data/lib/axlsx/drawing/series_title.rb +23 -0
  67. data/lib/axlsx/drawing/str_data.rb +42 -0
  68. data/lib/axlsx/drawing/str_val.rb +32 -0
  69. data/lib/axlsx/drawing/title.rb +78 -0
  70. data/lib/axlsx/drawing/two_cell_anchor.rb +92 -0
  71. data/lib/axlsx/drawing/val_axis.rb +37 -0
  72. data/lib/axlsx/drawing/view_3D.rb +115 -0
  73. data/lib/axlsx/drawing/vml_drawing.rb +42 -0
  74. data/lib/axlsx/drawing/vml_shape.rb +66 -0
  75. data/lib/axlsx/package.rb +352 -0
  76. data/lib/axlsx/rels/relationship.rb +129 -0
  77. data/lib/axlsx/rels/relationships.rb +29 -0
  78. data/lib/axlsx/stylesheet/border.rb +71 -0
  79. data/lib/axlsx/stylesheet/border_pr.rb +71 -0
  80. data/lib/axlsx/stylesheet/cell_alignment.rb +134 -0
  81. data/lib/axlsx/stylesheet/cell_protection.rb +43 -0
  82. data/lib/axlsx/stylesheet/cell_style.rb +74 -0
  83. data/lib/axlsx/stylesheet/color.rb +78 -0
  84. data/lib/axlsx/stylesheet/dxf.rb +79 -0
  85. data/lib/axlsx/stylesheet/fill.rb +35 -0
  86. data/lib/axlsx/stylesheet/font.rb +148 -0
  87. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -0
  88. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -0
  89. data/lib/axlsx/stylesheet/num_fmt.rb +79 -0
  90. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -0
  91. data/lib/axlsx/stylesheet/styles.rb +420 -0
  92. data/lib/axlsx/stylesheet/table_style.rb +54 -0
  93. data/lib/axlsx/stylesheet/table_style_element.rb +79 -0
  94. data/lib/axlsx/stylesheet/table_styles.rb +46 -0
  95. data/lib/axlsx/stylesheet/xf.rb +147 -0
  96. data/lib/axlsx/util/accessors.rb +64 -0
  97. data/lib/axlsx/util/constants.rb +392 -0
  98. data/lib/axlsx/util/options_parser.rb +15 -0
  99. data/lib/axlsx/util/parser.rb +44 -0
  100. data/lib/axlsx/util/serialized_attributes.rb +79 -0
  101. data/lib/axlsx/util/simple_typed_list.rb +203 -0
  102. data/lib/axlsx/util/storage.rb +146 -0
  103. data/lib/axlsx/util/validators.rb +300 -0
  104. data/lib/axlsx/version.rb +5 -0
  105. data/lib/axlsx/workbook/defined_name.rb +129 -0
  106. data/lib/axlsx/workbook/defined_names.rb +21 -0
  107. data/lib/axlsx/workbook/shared_strings_table.rb +77 -0
  108. data/lib/axlsx/workbook/workbook.rb +354 -0
  109. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -0
  110. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -0
  111. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +246 -0
  112. data/lib/axlsx/workbook/worksheet/break.rb +37 -0
  113. data/lib/axlsx/workbook/worksheet/cell.rb +416 -0
  114. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +144 -0
  115. data/lib/axlsx/workbook/worksheet/cfvo.rb +62 -0
  116. data/lib/axlsx/workbook/worksheet/cfvos.rb +15 -0
  117. data/lib/axlsx/workbook/worksheet/col.rb +144 -0
  118. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -0
  119. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -0
  120. data/lib/axlsx/workbook/worksheet/cols.rb +20 -0
  121. data/lib/axlsx/workbook/worksheet/comment.rb +92 -0
  122. data/lib/axlsx/workbook/worksheet/comments.rb +85 -0
  123. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -0
  124. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -0
  125. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -0
  126. data/lib/axlsx/workbook/worksheet/data_bar.rb +131 -0
  127. data/lib/axlsx/workbook/worksheet/data_validation.rb +244 -0
  128. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -0
  129. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -0
  130. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -0
  131. data/lib/axlsx/workbook/worksheet/header_footer.rb +54 -0
  132. data/lib/axlsx/workbook/worksheet/icon_set.rb +83 -0
  133. data/lib/axlsx/workbook/worksheet/merged_cells.rb +35 -0
  134. data/lib/axlsx/workbook/worksheet/page_margins.rb +99 -0
  135. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -0
  136. data/lib/axlsx/workbook/worksheet/page_setup.rb +242 -0
  137. data/lib/axlsx/workbook/worksheet/pane.rb +141 -0
  138. data/lib/axlsx/workbook/worksheet/pivot_table.rb +273 -0
  139. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -0
  140. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -0
  141. data/lib/axlsx/workbook/worksheet/print_options.rb +41 -0
  142. data/lib/axlsx/workbook/worksheet/protected_range.rb +49 -0
  143. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +34 -0
  144. data/lib/axlsx/workbook/worksheet/row.rb +172 -0
  145. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -0
  146. data/lib/axlsx/workbook/worksheet/selection.rb +103 -0
  147. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -0
  148. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -0
  149. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +60 -0
  150. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +69 -0
  151. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +120 -0
  152. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -0
  153. data/lib/axlsx/workbook/worksheet/table.rb +102 -0
  154. data/lib/axlsx/workbook/worksheet/table_style_info.rb +51 -0
  155. data/lib/axlsx/workbook/worksheet/tables.rb +31 -0
  156. data/lib/axlsx/workbook/worksheet/worksheet.rb +769 -0
  157. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -0
  158. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -0
  159. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -0
  160. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -0
  161. data/lib/schema/dc.xsd +118 -0
  162. data/lib/schema/dcmitype.xsd +52 -0
  163. data/lib/schema/dcterms.xsd +331 -0
  164. data/lib/schema/dml-chart.xsd +1499 -0
  165. data/lib/schema/dml-chartDrawing.xsd +146 -0
  166. data/lib/schema/dml-compatibility.xsd +14 -0
  167. data/lib/schema/dml-diagram.xsd +1091 -0
  168. data/lib/schema/dml-lockedCanvas.xsd +11 -0
  169. data/lib/schema/dml-main.xsd +3048 -0
  170. data/lib/schema/dml-picture.xsd +23 -0
  171. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -0
  172. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -0
  173. data/lib/schema/opc-contentTypes.xsd +42 -0
  174. data/lib/schema/opc-coreProperties.xsd +54 -0
  175. data/lib/schema/opc-digSig.xsd +49 -0
  176. data/lib/schema/opc-relationships.xsd +33 -0
  177. data/lib/schema/pml.xsd +1676 -0
  178. data/lib/schema/shared-additionalCharacteristics.xsd +28 -0
  179. data/lib/schema/shared-bibliography.xsd +144 -0
  180. data/lib/schema/shared-commonSimpleTypes.xsd +166 -0
  181. data/lib/schema/shared-customXmlDataProperties.xsd +25 -0
  182. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -0
  183. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -0
  184. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -0
  185. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -0
  186. data/lib/schema/shared-math.xsd +582 -0
  187. data/lib/schema/shared-relationshipReference.xsd +25 -0
  188. data/lib/schema/sml.xsd +4434 -0
  189. data/lib/schema/vml-main.xsd +569 -0
  190. data/lib/schema/vml-officeDrawing.xsd +509 -0
  191. data/lib/schema/vml-presentationDrawing.xsd +12 -0
  192. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -0
  193. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -0
  194. data/lib/schema/wml.xsd +3644 -0
  195. data/lib/schema/xml.xsd +116 -0
  196. data/test/benchmark.rb +72 -0
  197. data/test/content_type/tc_content_type.rb +76 -0
  198. data/test/content_type/tc_default.rb +16 -0
  199. data/test/content_type/tc_override.rb +14 -0
  200. data/test/doc_props/tc_app.rb +43 -0
  201. data/test/doc_props/tc_core.rb +42 -0
  202. data/test/drawing/tc_axes.rb +8 -0
  203. data/test/drawing/tc_axis.rb +85 -0
  204. data/test/drawing/tc_bar_3D_chart.rb +71 -0
  205. data/test/drawing/tc_bar_series.rb +37 -0
  206. data/test/drawing/tc_cat_axis.rb +31 -0
  207. data/test/drawing/tc_cat_axis_data.rb +27 -0
  208. data/test/drawing/tc_chart.rb +110 -0
  209. data/test/drawing/tc_d_lbls.rb +57 -0
  210. data/test/drawing/tc_data_source.rb +17 -0
  211. data/test/drawing/tc_drawing.rb +80 -0
  212. data/test/drawing/tc_graphic_frame.rb +27 -0
  213. data/test/drawing/tc_hyperlink.rb +64 -0
  214. data/test/drawing/tc_line_3d_chart.rb +47 -0
  215. data/test/drawing/tc_line_chart.rb +39 -0
  216. data/test/drawing/tc_line_series.rb +30 -0
  217. data/test/drawing/tc_marker.rb +44 -0
  218. data/test/drawing/tc_named_axis_data.rb +27 -0
  219. data/test/drawing/tc_num_data.rb +31 -0
  220. data/test/drawing/tc_num_val.rb +29 -0
  221. data/test/drawing/tc_one_cell_anchor.rb +66 -0
  222. data/test/drawing/tc_pic.rb +107 -0
  223. data/test/drawing/tc_picture_locking.rb +72 -0
  224. data/test/drawing/tc_pie_3D_chart.rb +28 -0
  225. data/test/drawing/tc_pie_series.rb +32 -0
  226. data/test/drawing/tc_scaling.rb +36 -0
  227. data/test/drawing/tc_scatter_chart.rb +48 -0
  228. data/test/drawing/tc_scatter_series.rb +21 -0
  229. data/test/drawing/tc_ser_axis.rb +31 -0
  230. data/test/drawing/tc_series.rb +23 -0
  231. data/test/drawing/tc_series_title.rb +33 -0
  232. data/test/drawing/tc_str_data.rb +18 -0
  233. data/test/drawing/tc_str_val.rb +21 -0
  234. data/test/drawing/tc_title.rb +49 -0
  235. data/test/drawing/tc_two_cell_anchor.rb +36 -0
  236. data/test/drawing/tc_val_axis.rb +24 -0
  237. data/test/drawing/tc_view_3D.rb +54 -0
  238. data/test/drawing/tc_vml_drawing.rb +25 -0
  239. data/test/drawing/tc_vml_shape.rb +106 -0
  240. data/test/profile.rb +24 -0
  241. data/test/rels/tc_relationship.rb +44 -0
  242. data/test/rels/tc_relationships.rb +37 -0
  243. data/test/stylesheet/tc_border.rb +37 -0
  244. data/test/stylesheet/tc_border_pr.rb +32 -0
  245. data/test/stylesheet/tc_cell_alignment.rb +81 -0
  246. data/test/stylesheet/tc_cell_protection.rb +29 -0
  247. data/test/stylesheet/tc_cell_style.rb +57 -0
  248. data/test/stylesheet/tc_color.rb +43 -0
  249. data/test/stylesheet/tc_dxf.rb +81 -0
  250. data/test/stylesheet/tc_fill.rb +18 -0
  251. data/test/stylesheet/tc_font.rb +121 -0
  252. data/test/stylesheet/tc_gradient_fill.rb +72 -0
  253. data/test/stylesheet/tc_gradient_stop.rb +31 -0
  254. data/test/stylesheet/tc_num_fmt.rb +30 -0
  255. data/test/stylesheet/tc_pattern_fill.rb +43 -0
  256. data/test/stylesheet/tc_styles.rb +235 -0
  257. data/test/stylesheet/tc_table_style.rb +44 -0
  258. data/test/stylesheet/tc_table_style_element.rb +45 -0
  259. data/test/stylesheet/tc_table_styles.rb +29 -0
  260. data/test/stylesheet/tc_xf.rb +120 -0
  261. data/test/tc_axlsx.rb +72 -0
  262. data/test/tc_helper.rb +10 -0
  263. data/test/tc_package.rb +227 -0
  264. data/test/util/tc_serialized_attributes.rb +19 -0
  265. data/test/util/tc_simple_typed_list.rb +78 -0
  266. data/test/util/tc_validators.rb +186 -0
  267. data/test/workbook/tc_defined_name.rb +41 -0
  268. data/test/workbook/tc_shared_strings_table.rb +44 -0
  269. data/test/workbook/tc_workbook.rb +125 -0
  270. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -0
  271. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -0
  272. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -0
  273. data/test/workbook/worksheet/tc_break.rb +49 -0
  274. data/test/workbook/worksheet/tc_cell.rb +319 -0
  275. data/test/workbook/worksheet/tc_cfvo.rb +31 -0
  276. data/test/workbook/worksheet/tc_col.rb +78 -0
  277. data/test/workbook/worksheet/tc_color_scale.rb +58 -0
  278. data/test/workbook/worksheet/tc_comment.rb +72 -0
  279. data/test/workbook/worksheet/tc_comments.rb +57 -0
  280. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -0
  281. data/test/workbook/worksheet/tc_data_bar.rb +46 -0
  282. data/test/workbook/worksheet/tc_data_validation.rb +265 -0
  283. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -0
  284. data/test/workbook/worksheet/tc_header_footer.rb +151 -0
  285. data/test/workbook/worksheet/tc_icon_set.rb +45 -0
  286. data/test/workbook/worksheet/tc_page_margins.rb +97 -0
  287. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -0
  288. data/test/workbook/worksheet/tc_page_setup.rb +143 -0
  289. data/test/workbook/worksheet/tc_pane.rb +54 -0
  290. data/test/workbook/worksheet/tc_pivot_table.rb +120 -0
  291. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +54 -0
  292. data/test/workbook/worksheet/tc_print_options.rb +72 -0
  293. data/test/workbook/worksheet/tc_protected_range.rb +17 -0
  294. data/test/workbook/worksheet/tc_row.rb +117 -0
  295. data/test/workbook/worksheet/tc_selection.rb +55 -0
  296. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -0
  297. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -0
  298. data/test/workbook/worksheet/tc_sheet_pr.rb +27 -0
  299. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -0
  300. data/test/workbook/worksheet/tc_sheet_view.rb +214 -0
  301. data/test/workbook/worksheet/tc_table.rb +68 -0
  302. data/test/workbook/worksheet/tc_table_style_info.rb +53 -0
  303. data/test/workbook/worksheet/tc_worksheet.rb +538 -0
  304. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -0
  305. metadata +546 -0
@@ -0,0 +1,44 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # The picture locking class defines the locking properties for pictures in your workbook.
4
+ class PictureLocking
5
+
6
+ include Axlsx::OptionsParser
7
+ include Axlsx::SerializedAttributes
8
+ include Axlsx::Accessors
9
+
10
+ boolean_attr_accessor :noGrp, :noSelect, :noRot, :noChangeAspect,
11
+ :noMove, :noResize, :noEditPoints, :noAdjustHandles,
12
+ :noChangeArrowheads, :noChangeShapeType
13
+
14
+ serializable_attributes :noGrp, :noSelect, :noRot, :noChangeAspect,
15
+ :noMove, :noResize, :noEditPoints, :noAdjustHandles,
16
+ :noChangeArrowheads, :noChangeShapeType
17
+
18
+ # Creates a new PictureLocking object
19
+ # @option options [Boolean] noGrp
20
+ # @option options [Boolean] noSelect
21
+ # @option options [Boolean] noRot
22
+ # @option options [Boolean] noChangeAspect
23
+ # @option options [Boolean] noMove
24
+ # @option options [Boolean] noResize
25
+ # @option options [Boolean] noEditPoints
26
+ # @option options [Boolean] noAdjustHandles
27
+ # @option options [Boolean] noChangeArrowheads
28
+ # @option options [Boolean] noChangeShapeType
29
+ def initialize(options={})
30
+ @noChangeAspect = true
31
+ parse_options options
32
+ end
33
+
34
+ # Serializes the object
35
+ # @param [String] str
36
+ # @return [String]
37
+ def to_xml_string(str = '')
38
+ str << '<a:picLocks '
39
+ serialized_attributes str
40
+ str << '/>'
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,48 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+
5
+ # The Pie3DChart is a three dimentional piechart (who would have guessed?) that you can add to your worksheet.
6
+ # @see Worksheet#add_chart
7
+ # @see Chart#add_series
8
+ # @see README for an example
9
+ class Pie3DChart < Chart
10
+
11
+ # Creates a new pie chart object
12
+ # @param [GraphicFrame] frame The workbook that owns this chart.
13
+ # @option options [Cell, String] title
14
+ # @option options [Boolean] show_legend
15
+ # @option options [Symbol] grouping
16
+ # @option options [String] gap_depth
17
+ # @option options [Integer] rot_x
18
+ # @option options [String] h_percent
19
+ # @option options [Integer] rot_y
20
+ # @option options [String] depth_percent
21
+ # @option options [Boolean] r_ang_ax
22
+ # @option options [Integer] perspective
23
+ # @see Chart
24
+ # @see View3D
25
+ def initialize(frame, options={})
26
+ @vary_colors = true
27
+ super(frame, options)
28
+ @series_type = PieSeries
29
+ @view_3D = View3D.new({:rot_x =>30, :perspective=>30}.merge(options))
30
+ @d_lbls = nil
31
+ end
32
+
33
+ # Serializes the object
34
+ # @param [String] str
35
+ # @return [String]
36
+ def to_xml_string(str = '')
37
+ super(str) do |str_inner|
38
+
39
+ str_inner << '<c:pie3DChart>'
40
+ str_inner << '<c:varyColors val="' << vary_colors.to_s << '"/>'
41
+ @series.each { |ser| ser.to_xml_string(str_inner) }
42
+ d_lbls.to_xml_string(str) if @d_lbls
43
+ str_inner << '</c:pie3DChart>'
44
+ end
45
+ end
46
+
47
+ end
48
+ end
@@ -0,0 +1,74 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # A PieSeries defines the data and labels and explosion for pie charts series.
5
+ # @note The recommended way to manage series is to use Chart#add_series
6
+ # @see Worksheet#add_chart
7
+ # @see Chart#add_series
8
+ class PieSeries < Series
9
+
10
+ # The data for this series.
11
+ # @return [SimpleTypedList]
12
+ attr_reader :data
13
+
14
+ # The labels for this series.
15
+ # @return [SimpleTypedList]
16
+ attr_reader :labels
17
+
18
+ # The explosion for this series
19
+ # @return [Integert]
20
+ attr_reader :explosion
21
+
22
+ # An array of rgb colors to apply to your bar chart.
23
+ attr_reader :colors
24
+
25
+ # Creates a new series
26
+ # @option options [Array, SimpleTypedList] data
27
+ # @option options [Array, SimpleTypedList] labels
28
+ # @option options [String] title
29
+ # @option options [Integer] explosion
30
+ # @param [Chart] chart
31
+ def initialize(chart, options={})
32
+ @explosion = nil
33
+ @colors = []
34
+ super(chart, options)
35
+ self.labels = AxDataSource.new(:data => options[:labels]) unless options[:labels].nil?
36
+ self.data = NumDataSource.new(options) unless options[:data].nil?
37
+ end
38
+
39
+ # @see colors
40
+ def colors=(v) DataTypeValidator.validate "BarSeries.colors", [Array], v; @colors = v end
41
+
42
+ # @see explosion
43
+ def explosion=(v) Axlsx::validate_unsigned_int(v); @explosion = v; end
44
+
45
+ # Serializes the object
46
+ # @param [String] str
47
+ # @return [String]
48
+ def to_xml_string(str = '')
49
+ super(str) do |str_inner|
50
+ str_inner << '<c:explosion val="' << @explosion << '"/>' 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_inner unless @labels.nil?
59
+ @data.to_xml_string str_inner 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
@@ -0,0 +1,60 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # The Scaling class defines axis scaling
4
+ class Scaling
5
+
6
+ include Axlsx::OptionsParser
7
+
8
+ # creates a new Scaling object
9
+ # @option options [Integer, Fixnum] 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, Fixnum], 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
@@ -0,0 +1,74 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # The ScatterChart allows you to insert a scatter chart into your worksheet
5
+ # @see Worksheet#add_chart
6
+ # @see Chart#add_series
7
+ # @see README for an example
8
+ class ScatterChart < Chart
9
+
10
+ include Axlsx::OptionsParser
11
+
12
+ # The Style for the scatter chart
13
+ # must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker
14
+ # return [Symbol]
15
+ attr_reader :scatter_style
16
+ alias :scatterStyle :scatter_style
17
+
18
+ # the x value axis
19
+ # @return [ValAxis]
20
+ def x_val_axis
21
+ axes[:x_val_axis]
22
+ end
23
+ alias :xValAxis :x_val_axis
24
+
25
+ # the y value axis
26
+ # @return [ValAxis]
27
+ def y_val_axis
28
+ axes[:x_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 |str_inner|
55
+ str_inner << '<c:scatterChart>'
56
+ str_inner << '<c:scatterStyle val="' << scatter_style.to_s << '"/>'
57
+ str_inner << '<c:varyColors val="' << vary_colors.to_s << '"/>'
58
+ @series.each { |ser| ser.to_xml_string(str_inner) }
59
+ d_lbls.to_xml_string(str_inner) if @d_lbls
60
+ axes.to_xml_string(str_inner, :ids => true)
61
+ str_inner << '</c:scatterChart>'
62
+ axes.to_xml_string(str_inner)
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
@@ -0,0 +1,65 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+
4
+ # A ScatterSeries defines the x and y position of data in the chart
5
+ # @note The recommended way to manage series is to use Chart#add_series
6
+ # @see Worksheet#add_chart
7
+ # @see Chart#add_series
8
+ # @see examples/example.rb
9
+ class ScatterSeries < Series
10
+
11
+ # The x data for this series.
12
+ # @return [NamedAxisData]
13
+ attr_reader :xData
14
+
15
+ # The y data for this series.
16
+ # @return [NamedAxisData]
17
+ attr_reader :yData
18
+
19
+ # The fill color for this series.
20
+ # Red, green, and blue is expressed as sequence of hex digits, RRGGBB. A perceptual gamma of 2.2 is used.
21
+ # @return [String]
22
+ attr_reader :color
23
+
24
+ # Creates a new ScatterSeries
25
+ def initialize(chart, options={})
26
+ @xData, @yData = nil
27
+ super(chart, options)
28
+ @xData = AxDataSource.new(:tag_name => :xVal, :data => options[:xData]) unless options[:xData].nil?
29
+ @yData = NumDataSource.new({:tag_name => :yVal, :data => options[:yData]}) unless options[:yData].nil?
30
+ end
31
+
32
+ # @see color
33
+ def color=(v)
34
+ @color = v
35
+ end
36
+
37
+ # Serializes the object
38
+ # @param [String] str
39
+ # @return [String]
40
+ def to_xml_string(str = '')
41
+ super(str) do |inner_str|
42
+ # needs to override the super color here to push in ln/and something else!
43
+ if color
44
+ str << '<c:spPr><a:solidFill>'
45
+ str << '<a:srgbClr val="' << color << '"/>'
46
+ str << '</a:solidFill>'
47
+ str << '<a:ln><a:solidFill>'
48
+ str << '<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>'
49
+ str << '</c:spPr>'
50
+ str << '<c:marker>'
51
+ str << '<c:spPr><a:solidFill>'
52
+ str << '<a:srgbClr val="' << color << '"/>'
53
+ str << '</a:solidFill>'
54
+ str << '<a:ln><a:solidFill>'
55
+ str << '<a:srgbClr val="' << color << '"/></a:solidFill></a:ln>'
56
+ str << '</c:spPr>'
57
+ str << '</c:marker>'
58
+ end
59
+ @xData.to_xml_string(inner_str) unless @xData.nil?
60
+ @yData.to_xml_string(inner_str) unless @yData.nil?
61
+ end
62
+ str
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,45 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ #A SerAxis object defines a series axis
4
+ class SerAxis < Axis
5
+
6
+ # The number of tick lables to skip between labels
7
+ # @return [Integer]
8
+ attr_reader :tick_lbl_skip
9
+ alias :tickLblSkip :tick_lbl_skip
10
+
11
+ # The number of tickmarks to be skipped before the next one is rendered.
12
+ # @return [Boolean]
13
+ attr_reader :tick_mark_skip
14
+ alias :tickMarkSkip :tick_mark_skip
15
+
16
+ # Creates a new SerAxis object
17
+ # @option options [Integer] tick_lbl_skip
18
+ # @option options [Integer] tick_mark_skip
19
+ def initialize(options={})
20
+ @tick_lbl_skip, @tick_mark_skip = 1, 1
21
+ super(options)
22
+ end
23
+
24
+ # @see tickLblSkip
25
+ def tick_lbl_skip=(v) Axlsx::validate_unsigned_int(v); @tick_lbl_skip = v; end
26
+ alias :tickLblSkip= :tick_lbl_skip=
27
+
28
+ # @see tickMarkSkip
29
+ def tick_mark_skip=(v) Axlsx::validate_unsigned_int(v); @tick_mark_skip = v; end
30
+ alias :tickMarkSkip= :tick_mark_skip=
31
+
32
+ # Serializes the object
33
+ # @param [String] str
34
+ # @return [String]
35
+ def to_xml_string(str = '')
36
+ str << '<c:serAx>'
37
+ super(str)
38
+ str << '<c:tickLblSkip val="' << @tick_lbl_skip.to_s << '"/>' unless @tick_lbl_skip.nil?
39
+ str << '<c:tickMarkSkip val="' << @tick_mark_skip.to_s << '"/>' unless @tick_mark_skip.nil?
40
+ str << '</c:serAx>'
41
+ end
42
+ end
43
+
44
+
45
+ end
@@ -0,0 +1,69 @@
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # A Series defines the common series attributes and is the super class for all concrete series types.
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 Series
8
+
9
+ include Axlsx::OptionsParser
10
+
11
+ # The chart that owns this series
12
+ # @return [Chart]
13
+ attr_reader :chart
14
+
15
+ # The title of the series
16
+ # @return [SeriesTitle]
17
+ attr_reader :title
18
+
19
+ # Creates a new series
20
+ # @param [Chart] chart
21
+ # @option options [Integer] order
22
+ # @option options [String] title
23
+ def initialize(chart, options={})
24
+ @order = nil
25
+ self.chart = chart
26
+ @chart.series << self
27
+ parse_options options
28
+ end
29
+
30
+ # The index of this series in the chart's series.
31
+ # @return [Integer]
32
+ def index
33
+ @chart.series.index(self)
34
+ end
35
+
36
+ # The order of this series in the chart's series. By default the order is the index of the series.
37
+ # @return [Integer]
38
+ def order
39
+ @order || index
40
+ end
41
+
42
+ # @see order
43
+ def order=(v) Axlsx::validate_unsigned_int(v); @order = v; end
44
+
45
+ # @see title
46
+ def title=(v)
47
+ v = SeriesTitle.new(v) if v.is_a?(String) || v.is_a?(Cell)
48
+ DataTypeValidator.validate "#{self.class}.title", SeriesTitle, v
49
+ @title = v
50
+ end
51
+
52
+ private
53
+
54
+ # assigns the chart for this series
55
+ def chart=(v) DataTypeValidator.validate "Series.chart", Chart, v; @chart = v; end
56
+
57
+ # Serializes the object
58
+ # @param [String] str
59
+ # @return [String]
60
+ def to_xml_string(str = '')
61
+ str << '<c:ser>'
62
+ str << '<c:idx val="' << index.to_s << '"/>'
63
+ str << '<c:order val="' << (order || index).to_s << '"/>'
64
+ title.to_xml_string(str) unless title.nil?
65
+ yield str if block_given?
66
+ str << '</c:ser>'
67
+ end
68
+ end
69
+ end