caxlsx 3.0.4 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +354 -334
  5. data/LICENSE +21 -21
  6. data/README.md +168 -170
  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 -151
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -143
  22. data/lib/axlsx/drawing/bar_series.rb +97 -80
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +276 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +90 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -98
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +97 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +388 -363
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -71
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +494 -420
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +410 -401
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +395 -370
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  98. data/lib/axlsx/workbook/worksheet/cell.rb +506 -505
  99. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  100. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  101. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  102. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  103. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  104. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  105. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  106. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  107. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  108. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  110. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  111. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  112. data/lib/axlsx/workbook/worksheet/data_validation.rb +246 -246
  113. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  114. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  115. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  116. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  117. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  118. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  119. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  120. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  121. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  122. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  123. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  124. data/lib/axlsx/workbook/worksheet/pivot_table.rb +296 -289
  125. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  126. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  127. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  128. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  129. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  130. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  131. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  132. data/lib/axlsx/workbook/worksheet/row.rb +164 -162
  133. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  134. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  135. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  136. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  137. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  138. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  139. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  140. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  141. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  142. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  143. data/lib/axlsx/workbook/worksheet/worksheet.rb +786 -764
  144. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  145. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  148. data/lib/axlsx.rb +185 -170
  149. data/lib/caxlsx.rb +2 -2
  150. data/lib/schema/dc.xsd +118 -118
  151. data/lib/schema/dcmitype.xsd +51 -51
  152. data/lib/schema/dcterms.xsd +331 -331
  153. data/lib/schema/dml-chartDrawing.xsd +146 -146
  154. data/lib/schema/dml-compatibility.xsd +14 -14
  155. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  156. data/lib/schema/dml-main.xsd +3048 -3048
  157. data/lib/schema/dml-picture.xsd +23 -23
  158. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  159. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  160. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  161. data/lib/schema/shared-bibliography.xsd +144 -144
  162. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  163. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  164. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  165. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  166. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  167. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  168. data/lib/schema/shared-relationshipReference.xsd +25 -25
  169. data/lib/schema/vml-main.xsd +569 -569
  170. data/lib/schema/vml-officeDrawing.xsd +509 -509
  171. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  172. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  173. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  174. data/lib/schema/xml.xsd +116 -116
  175. data/test/benchmark.rb +72 -72
  176. data/test/content_type/tc_content_type.rb +76 -76
  177. data/test/content_type/tc_default.rb +16 -16
  178. data/test/content_type/tc_override.rb +14 -14
  179. data/test/doc_props/tc_app.rb +43 -43
  180. data/test/doc_props/tc_core.rb +42 -42
  181. data/test/drawing/tc_area_chart.rb +39 -39
  182. data/test/drawing/tc_area_series.rb +71 -71
  183. data/test/drawing/tc_axes.rb +7 -7
  184. data/test/drawing/tc_axis.rb +112 -112
  185. data/test/drawing/tc_bar_3D_chart.rb +86 -71
  186. data/test/drawing/tc_bar_chart.rb +86 -71
  187. data/test/drawing/tc_bar_series.rb +46 -37
  188. data/test/drawing/tc_bubble_chart.rb +44 -44
  189. data/test/drawing/tc_bubble_series.rb +21 -21
  190. data/test/drawing/tc_cat_axis.rb +31 -31
  191. data/test/drawing/tc_cat_axis_data.rb +27 -27
  192. data/test/drawing/tc_chart.rb +123 -123
  193. data/test/drawing/tc_d_lbls.rb +57 -57
  194. data/test/drawing/tc_data_source.rb +23 -23
  195. data/test/drawing/tc_drawing.rb +80 -80
  196. data/test/drawing/tc_graphic_frame.rb +27 -27
  197. data/test/drawing/tc_hyperlink.rb +64 -64
  198. data/test/drawing/tc_line_3d_chart.rb +47 -47
  199. data/test/drawing/tc_line_chart.rb +39 -39
  200. data/test/drawing/tc_line_series.rb +71 -71
  201. data/test/drawing/tc_marker.rb +44 -44
  202. data/test/drawing/tc_named_axis_data.rb +27 -27
  203. data/test/drawing/tc_num_data.rb +31 -31
  204. data/test/drawing/tc_num_val.rb +29 -29
  205. data/test/drawing/tc_one_cell_anchor.rb +66 -66
  206. data/test/drawing/tc_pic.rb +103 -103
  207. data/test/drawing/tc_picture_locking.rb +72 -72
  208. data/test/drawing/tc_pie_3D_chart.rb +28 -28
  209. data/test/drawing/tc_pie_series.rb +33 -33
  210. data/test/drawing/tc_scaling.rb +36 -36
  211. data/test/drawing/tc_scatter_chart.rb +48 -48
  212. data/test/drawing/tc_scatter_series.rb +74 -56
  213. data/test/drawing/tc_ser_axis.rb +31 -31
  214. data/test/drawing/tc_series.rb +23 -23
  215. data/test/drawing/tc_series_title.rb +54 -54
  216. data/test/drawing/tc_str_data.rb +18 -18
  217. data/test/drawing/tc_str_val.rb +30 -30
  218. data/test/drawing/tc_title.rb +70 -70
  219. data/test/drawing/tc_two_cell_anchor.rb +36 -36
  220. data/test/drawing/tc_val_axis.rb +24 -24
  221. data/test/drawing/tc_view_3D.rb +54 -54
  222. data/test/drawing/tc_vml_drawing.rb +25 -25
  223. data/test/drawing/tc_vml_shape.rb +106 -106
  224. data/test/profile.rb +24 -24
  225. data/test/rels/tc_relationship.rb +52 -52
  226. data/test/rels/tc_relationships.rb +37 -37
  227. data/test/stylesheet/tc_border.rb +37 -37
  228. data/test/stylesheet/tc_border_pr.rb +32 -32
  229. data/test/stylesheet/tc_cell_alignment.rb +81 -81
  230. data/test/stylesheet/tc_cell_protection.rb +29 -29
  231. data/test/stylesheet/tc_cell_style.rb +57 -57
  232. data/test/stylesheet/tc_color.rb +43 -43
  233. data/test/stylesheet/tc_dxf.rb +81 -81
  234. data/test/stylesheet/tc_fill.rb +18 -18
  235. data/test/stylesheet/tc_font.rb +133 -133
  236. data/test/stylesheet/tc_gradient_fill.rb +72 -72
  237. data/test/stylesheet/tc_gradient_stop.rb +31 -31
  238. data/test/stylesheet/tc_num_fmt.rb +30 -30
  239. data/test/stylesheet/tc_pattern_fill.rb +43 -43
  240. data/test/stylesheet/tc_styles.rb +309 -261
  241. data/test/stylesheet/tc_table_style.rb +44 -44
  242. data/test/stylesheet/tc_table_style_element.rb +45 -45
  243. data/test/stylesheet/tc_table_styles.rb +29 -29
  244. data/test/stylesheet/tc_xf.rb +120 -120
  245. data/test/tc_axlsx.rb +109 -109
  246. data/test/tc_helper.rb +10 -12
  247. data/test/tc_package.rb +317 -264
  248. data/test/util/tc_mime_type_utils.rb +13 -13
  249. data/test/util/tc_serialized_attributes.rb +19 -19
  250. data/test/util/tc_simple_typed_list.rb +77 -77
  251. data/test/util/tc_validators.rb +210 -210
  252. data/test/workbook/tc_defined_name.rb +49 -49
  253. data/test/workbook/tc_shared_strings_table.rb +59 -59
  254. data/test/workbook/tc_workbook.rb +165 -160
  255. data/test/workbook/tc_workbook_view.rb +50 -50
  256. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +38 -38
  257. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +76 -76
  258. data/test/workbook/worksheet/auto_filter/tc_filters.rb +50 -50
  259. data/test/workbook/worksheet/tc_break.rb +49 -49
  260. data/test/workbook/worksheet/tc_cell.rb +465 -453
  261. data/test/workbook/worksheet/tc_cfvo.rb +31 -31
  262. data/test/workbook/worksheet/tc_col.rb +93 -93
  263. data/test/workbook/worksheet/tc_color_scale.rb +58 -58
  264. data/test/workbook/worksheet/tc_comment.rb +72 -72
  265. data/test/workbook/worksheet/tc_comments.rb +57 -57
  266. data/test/workbook/worksheet/tc_conditional_formatting.rb +224 -224
  267. data/test/workbook/worksheet/tc_data_bar.rb +46 -46
  268. data/test/workbook/worksheet/tc_data_validation.rb +265 -265
  269. data/test/workbook/worksheet/tc_date_time_converter.rb +124 -124
  270. data/test/workbook/worksheet/tc_header_footer.rb +151 -151
  271. data/test/workbook/worksheet/tc_icon_set.rb +45 -45
  272. data/test/workbook/worksheet/tc_outline_pr.rb +19 -19
  273. data/test/workbook/worksheet/tc_page_margins.rb +97 -97
  274. data/test/workbook/worksheet/tc_page_set_up_pr.rb +15 -15
  275. data/test/workbook/worksheet/tc_page_setup.rb +143 -143
  276. data/test/workbook/worksheet/tc_pane.rb +54 -54
  277. data/test/workbook/worksheet/tc_pivot_table.rb +180 -135
  278. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +62 -54
  279. data/test/workbook/worksheet/tc_print_options.rb +72 -72
  280. data/test/workbook/worksheet/tc_protected_range.rb +17 -17
  281. data/test/workbook/worksheet/tc_rich_text.rb +44 -44
  282. data/test/workbook/worksheet/tc_rich_text_run.rb +173 -173
  283. data/test/workbook/worksheet/tc_row.rb +160 -139
  284. data/test/workbook/worksheet/tc_selection.rb +55 -55
  285. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +18 -18
  286. data/test/workbook/worksheet/tc_sheet_format_pr.rb +88 -88
  287. data/test/workbook/worksheet/tc_sheet_pr.rb +49 -49
  288. data/test/workbook/worksheet/tc_sheet_protection.rb +117 -117
  289. data/test/workbook/worksheet/tc_sheet_view.rb +214 -214
  290. data/test/workbook/worksheet/tc_table.rb +77 -67
  291. data/test/workbook/worksheet/tc_table_style_info.rb +53 -53
  292. data/test/workbook/worksheet/tc_worksheet.rb +632 -601
  293. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +55 -55
  294. metadata +11 -11
@@ -1,103 +1,103 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # A GradientFill defines the color and positioning for gradiant cell fill.
4
- # @see Open Office XML Part 1 §18.8.24
5
- class GradientFill
6
-
7
- include Axlsx::OptionsParser
8
- include Axlsx::SerializedAttributes
9
-
10
- # Creates a new GradientFill object
11
- # @option options [Symbol] type
12
- # @option options [Float] degree
13
- # @option options [Float] left
14
- # @option options [Float] right
15
- # @option options [Float] top
16
- # @option options [Float] bottom
17
- def initialize(options={})
18
- options[:type] ||= :linear
19
- parse_options options
20
- @stop = SimpleTypedList.new GradientStop
21
- end
22
-
23
- serializable_attributes :type, :degree, :left, :right, :top, :bottom
24
-
25
- # The type of gradient.
26
- # @note
27
- # valid options are
28
- # :linear
29
- # :path
30
- # @return [Symbol]
31
- attr_reader :type
32
-
33
- # Angle of the linear gradient
34
- # @return [Float]
35
- attr_reader :degree
36
-
37
- # Percentage format left
38
- # @return [Float]
39
- attr_reader :left
40
-
41
- # Percentage format right
42
- # @return [Float]
43
- attr_reader :right
44
-
45
- # Percentage format top
46
- # @return [Float]
47
- attr_reader :top
48
-
49
- # Percentage format bottom
50
- # @return [Float]
51
- attr_reader :bottom
52
-
53
- # Collection of stop objects
54
- # @return [SimpleTypedList]
55
- attr_reader :stop
56
-
57
- # @see type
58
- def type=(v) Axlsx::validate_gradient_type v; @type = v end
59
-
60
- # @see degree
61
- def degree=(v) Axlsx::validate_float v; @degree = v end
62
-
63
- # @see left
64
- def left=(v)
65
- validate_format_percentage "GradientFill.left", v
66
- @left = v
67
- end
68
-
69
- # @see right
70
- def right=(v)
71
- validate_format_percentage "GradientFill.right", v
72
- @right = v
73
- end
74
-
75
- # @see top
76
- def top=(v)
77
- validate_format_percentage "GradientFill.top", v
78
- @top = v
79
- end
80
-
81
- # @see bottom
82
- def bottom=(v)
83
- validate_format_percentage "GradientFill.bottom", v
84
- @bottom = v
85
- end
86
-
87
- # validates that the value provided is between 0.0 and 1.0
88
- def validate_format_percentage(name, value)
89
- DataTypeValidator.validate name, Float, value, lambda { |arg| arg >= 0.0 && arg <= 1.0}
90
- end
91
-
92
- # Serializes the object
93
- # @param [String] str
94
- # @return [String]
95
- def to_xml_string(str = '')
96
- str << '<gradientFill '
97
- serialized_attributes str
98
- str << '>'
99
- @stop.each { |s| s.to_xml_string(str) }
100
- str << '</gradientFill>'
101
- end
102
- end
103
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # A GradientFill defines the color and positioning for gradiant cell fill.
4
+ # @see Open Office XML Part 1 §18.8.24
5
+ class GradientFill
6
+
7
+ include Axlsx::OptionsParser
8
+ include Axlsx::SerializedAttributes
9
+
10
+ # Creates a new GradientFill object
11
+ # @option options [Symbol] type
12
+ # @option options [Float] degree
13
+ # @option options [Float] left
14
+ # @option options [Float] right
15
+ # @option options [Float] top
16
+ # @option options [Float] bottom
17
+ def initialize(options={})
18
+ options[:type] ||= :linear
19
+ parse_options options
20
+ @stop = SimpleTypedList.new GradientStop
21
+ end
22
+
23
+ serializable_attributes :type, :degree, :left, :right, :top, :bottom
24
+
25
+ # The type of gradient.
26
+ # @note
27
+ # valid options are
28
+ # :linear
29
+ # :path
30
+ # @return [Symbol]
31
+ attr_reader :type
32
+
33
+ # Angle of the linear gradient
34
+ # @return [Float]
35
+ attr_reader :degree
36
+
37
+ # Percentage format left
38
+ # @return [Float]
39
+ attr_reader :left
40
+
41
+ # Percentage format right
42
+ # @return [Float]
43
+ attr_reader :right
44
+
45
+ # Percentage format top
46
+ # @return [Float]
47
+ attr_reader :top
48
+
49
+ # Percentage format bottom
50
+ # @return [Float]
51
+ attr_reader :bottom
52
+
53
+ # Collection of stop objects
54
+ # @return [SimpleTypedList]
55
+ attr_reader :stop
56
+
57
+ # @see type
58
+ def type=(v) Axlsx::validate_gradient_type v; @type = v end
59
+
60
+ # @see degree
61
+ def degree=(v) Axlsx::validate_float v; @degree = v end
62
+
63
+ # @see left
64
+ def left=(v)
65
+ validate_format_percentage "GradientFill.left", v
66
+ @left = v
67
+ end
68
+
69
+ # @see right
70
+ def right=(v)
71
+ validate_format_percentage "GradientFill.right", v
72
+ @right = v
73
+ end
74
+
75
+ # @see top
76
+ def top=(v)
77
+ validate_format_percentage "GradientFill.top", v
78
+ @top = v
79
+ end
80
+
81
+ # @see bottom
82
+ def bottom=(v)
83
+ validate_format_percentage "GradientFill.bottom", v
84
+ @bottom = v
85
+ end
86
+
87
+ # validates that the value provided is between 0.0 and 1.0
88
+ def validate_format_percentage(name, value)
89
+ DataTypeValidator.validate name, Float, value, lambda { |arg| arg >= 0.0 && arg <= 1.0}
90
+ end
91
+
92
+ # Serializes the object
93
+ # @param [String] str
94
+ # @return [String]
95
+ def to_xml_string(str = '')
96
+ str << '<gradientFill '
97
+ serialized_attributes str
98
+ str << '>'
99
+ @stop.each { |s| s.to_xml_string(str) }
100
+ str << '</gradientFill>'
101
+ end
102
+ end
103
+ end
@@ -1,37 +1,37 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # The GradientStop object represents a color point in a gradient.
4
- # @see Open Office XML Part 1 §18.8.24
5
- class GradientStop
6
- # The color for this gradient stop
7
- # @return [Color]
8
- # @see Color
9
- attr_reader :color
10
-
11
- # The position of the color
12
- # @return [Float]
13
- attr_reader :position
14
-
15
- # Creates a new GradientStop object
16
- # @param [Color] color
17
- # @param [Float] position
18
- def initialize(color, position)
19
- self.color = color
20
- self.position = position
21
- end
22
-
23
- # @see color
24
- def color=(v) DataTypeValidator.validate "GradientStop.color", Color, v; @color=v end
25
- # @see position
26
- def position=(v) DataTypeValidator.validate "GradientStop.position", Float, v, lambda { |arg| arg >= 0 && arg <= 1}; @position = v end
27
-
28
- # Serializes the object
29
- # @param [String] str
30
- # @return [String]
31
- def to_xml_string(str = '')
32
- str << ('<stop position="' << position.to_s << '">')
33
- self.color.to_xml_string(str)
34
- str << '</stop>'
35
- end
36
- end
37
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # The GradientStop object represents a color point in a gradient.
4
+ # @see Open Office XML Part 1 §18.8.24
5
+ class GradientStop
6
+ # The color for this gradient stop
7
+ # @return [Color]
8
+ # @see Color
9
+ attr_reader :color
10
+
11
+ # The position of the color
12
+ # @return [Float]
13
+ attr_reader :position
14
+
15
+ # Creates a new GradientStop object
16
+ # @param [Color] color
17
+ # @param [Float] position
18
+ def initialize(color, position)
19
+ self.color = color
20
+ self.position = position
21
+ end
22
+
23
+ # @see color
24
+ def color=(v) DataTypeValidator.validate "GradientStop.color", Color, v; @color=v end
25
+ # @see position
26
+ def position=(v) DataTypeValidator.validate "GradientStop.position", Float, v, lambda { |arg| arg >= 0 && arg <= 1}; @position = v end
27
+
28
+ # Serializes the object
29
+ # @param [String] str
30
+ # @return [String]
31
+ def to_xml_string(str = '')
32
+ str << ('<stop position="' << position.to_s << '">')
33
+ self.color.to_xml_string(str)
34
+ str << '</stop>'
35
+ end
36
+ end
37
+ end
@@ -1,86 +1,86 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # A NumFmt object defines an identifier and formatting code for data in cells.
4
- # @note The recommended way to manage styles is Styles#add_style
5
- class NumFmt
6
-
7
- include Axlsx::OptionsParser
8
- include Axlsx::SerializedAttributes
9
-
10
- # Creates a new NumFmt object
11
- # @param [Hash] options Options for the number format object
12
- # @option [Integer] numFmtId The predefined format id or new format id for this format
13
- # @option [String] formatCode The format code for this number format
14
- def initialize(options={})
15
- @numFmtId = 0
16
- @formatCode = ""
17
- parse_options options
18
- end
19
-
20
- serializable_attributes :formatCode, :numFmtId
21
-
22
- # @return [String] The formatting to use for this number format.
23
- # @see http://support.microsoft.com/kb/264372
24
- attr_reader :formatCode
25
-
26
- # @return [Integer] An unsigned integer referencing a standard or custom number format.
27
- # @note
28
- # These are the known formats I can dig up. The constant NUM_FMT_PERCENT is 9, and uses the default % formatting. Axlsx also defines a few formats for date and time that are commonly used in asia as NUM_FMT_YYYYMMDD and NUM_FRM_YYYYMMDDHHMMSS.
29
- # 1 0
30
- # 2 0.00
31
- # 3 #,##0
32
- # 4 #,##0.00
33
- # 5 $#,##0_);($#,##0)
34
- # 6 $#,##0_);[Red]($#,##0)
35
- # 7 $#,##0.00_);($#,##0.00)
36
- # 8 $#,##0.00_);[Red]($#,##0.00)
37
- # 9 0%
38
- # 10 0.00%
39
- # 11 0.00E+00
40
- # 12 # ?/?
41
- # 13 # ??/??
42
- # 14 m/d/yyyy
43
- # 15 d-mmm-yy
44
- # 16 d-mmm
45
- # 17 mmm-yy
46
- # 18 h:mm AM/PM
47
- # 19 h:mm:ss AM/PM
48
- # 20 h:mm
49
- # 21 h:mm:ss
50
- # 22 m/d/yyyy h:mm
51
- # 37 #,##0_);(#,##0)
52
- # 38 #,##0_);[Red](#,##0)
53
- # 39 #,##0.00_);(#,##0.00)
54
- # 40 #,##0.00_);[Red](#,##0.00)
55
- # 45 mm:ss
56
- # 46 [h]:mm:ss
57
- # 47 mm:ss.0
58
- # 48 ##0.0E+0
59
- # 49 @
60
- # @see Axlsx
61
- attr_reader :numFmtId
62
-
63
- # @see numFmtId
64
- def numFmtId=(v) Axlsx::validate_unsigned_int v; @numFmtId = v end
65
-
66
- # @see formatCode
67
- def formatCode=(v) Axlsx::validate_string v; @formatCode = v end
68
-
69
- # Serializes the object
70
- # @param [String] str
71
- # @return [String]
72
- def to_xml_string(str = '')
73
- serialized_tag('numFmt', str)
74
- end
75
-
76
- # Override to avoid removing underscores
77
- def serialized_attributes(str = '', additional_attributes = {})
78
- attributes = declared_attributes.merge! additional_attributes
79
- attributes.each do |key, value|
80
- str << "#{Axlsx.camel(key, false)}=\"#{Axlsx.booleanize(value)}\" "
81
- end
82
- str
83
- end
84
-
85
- end
86
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # A NumFmt object defines an identifier and formatting code for data in cells.
4
+ # @note The recommended way to manage styles is Styles#add_style
5
+ class NumFmt
6
+
7
+ include Axlsx::OptionsParser
8
+ include Axlsx::SerializedAttributes
9
+
10
+ # Creates a new NumFmt object
11
+ # @param [Hash] options Options for the number format object
12
+ # @option [Integer] numFmtId The predefined format id or new format id for this format
13
+ # @option [String] formatCode The format code for this number format
14
+ def initialize(options={})
15
+ @numFmtId = 0
16
+ @formatCode = ""
17
+ parse_options options
18
+ end
19
+
20
+ serializable_attributes :formatCode, :numFmtId
21
+
22
+ # @return [String] The formatting to use for this number format.
23
+ # @see http://support.microsoft.com/kb/264372
24
+ attr_reader :formatCode
25
+
26
+ # @return [Integer] An unsigned integer referencing a standard or custom number format.
27
+ # @note
28
+ # These are the known formats I can dig up. The constant NUM_FMT_PERCENT is 9, and uses the default % formatting. Axlsx also defines a few formats for date and time that are commonly used in asia as NUM_FMT_YYYYMMDD and NUM_FRM_YYYYMMDDHHMMSS.
29
+ # 1 0
30
+ # 2 0.00
31
+ # 3 #,##0
32
+ # 4 #,##0.00
33
+ # 5 $#,##0_);($#,##0)
34
+ # 6 $#,##0_);[Red]($#,##0)
35
+ # 7 $#,##0.00_);($#,##0.00)
36
+ # 8 $#,##0.00_);[Red]($#,##0.00)
37
+ # 9 0%
38
+ # 10 0.00%
39
+ # 11 0.00E+00
40
+ # 12 # ?/?
41
+ # 13 # ??/??
42
+ # 14 m/d/yyyy
43
+ # 15 d-mmm-yy
44
+ # 16 d-mmm
45
+ # 17 mmm-yy
46
+ # 18 h:mm AM/PM
47
+ # 19 h:mm:ss AM/PM
48
+ # 20 h:mm
49
+ # 21 h:mm:ss
50
+ # 22 m/d/yyyy h:mm
51
+ # 37 #,##0_);(#,##0)
52
+ # 38 #,##0_);[Red](#,##0)
53
+ # 39 #,##0.00_);(#,##0.00)
54
+ # 40 #,##0.00_);[Red](#,##0.00)
55
+ # 45 mm:ss
56
+ # 46 [h]:mm:ss
57
+ # 47 mm:ss.0
58
+ # 48 ##0.0E+0
59
+ # 49 @
60
+ # @see Axlsx
61
+ attr_reader :numFmtId
62
+
63
+ # @see numFmtId
64
+ def numFmtId=(v) Axlsx::validate_unsigned_int v; @numFmtId = v end
65
+
66
+ # @see formatCode
67
+ def formatCode=(v) Axlsx::validate_string v; @formatCode = v end
68
+
69
+ # Serializes the object
70
+ # @param [String] str
71
+ # @return [String]
72
+ def to_xml_string(str = '')
73
+ serialized_tag('numFmt', str)
74
+ end
75
+
76
+ # Override to avoid removing underscores
77
+ def serialized_attributes(str = '', additional_attributes = {})
78
+ attributes = declared_attributes.merge! additional_attributes
79
+ attributes.each do |key, value|
80
+ str << "#{Axlsx.camel(key, false)}=\"#{Axlsx.booleanize(value)}\" "
81
+ end
82
+ str
83
+ end
84
+
85
+ end
86
+ end
@@ -1,73 +1,73 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # A PatternFill is the pattern and solid fill styling for a cell.
4
- # @note The recommended way to manage styles is with Styles#add_style
5
- # @see Style#add_style
6
- class PatternFill
7
-
8
- include Axlsx::OptionsParser
9
- # Creates a new PatternFill Object
10
- # @option options [Symbol] patternType
11
- # @option options [Color] fgColor
12
- # @option options [Color] bgColor
13
- def initialize(options={})
14
- @patternType = :none
15
- parse_options options
16
- end
17
-
18
- # The color to use for the the background in solid fills.
19
- # @return [Color]
20
- attr_reader :fgColor
21
-
22
- # The color to use for the background of the fill when the type is not solid.
23
- # @return [Color]
24
- attr_reader :bgColor
25
-
26
- # The pattern type to use
27
- # @note
28
- # patternType must be one of
29
- # :none
30
- # :solid
31
- # :mediumGray
32
- # :darkGray
33
- # :lightGray
34
- # :darkHorizontal
35
- # :darkVertical
36
- # :darkDown
37
- # :darkUp
38
- # :darkGrid
39
- # :darkTrellis
40
- # :lightHorizontal
41
- # :lightVertical
42
- # :lightDown
43
- # :lightUp
44
- # :lightGrid
45
- # :lightTrellis
46
- # :gray125
47
- # :gray0625
48
- # @see Office Open XML Part 1 18.18.55
49
- attr_reader :patternType
50
-
51
- # @see fgColor
52
- def fgColor=(v) DataTypeValidator.validate "PatternFill.fgColor", Color, v; @fgColor=v end
53
- # @see bgColor
54
- def bgColor=(v) DataTypeValidator.validate "PatternFill.bgColor", Color, v; @bgColor=v end
55
- # @see patternType
56
- def patternType=(v) Axlsx::validate_pattern_type v; @patternType = v end
57
-
58
- # Serializes the object
59
- # @param [String] str
60
- # @return [String]
61
- def to_xml_string(str = '')
62
- str << ('<patternFill patternType="' << patternType.to_s << '">')
63
- if fgColor.is_a?(Color)
64
- fgColor.to_xml_string str, "fgColor"
65
- end
66
-
67
- if bgColor.is_a?(Color)
68
- bgColor.to_xml_string str, "bgColor"
69
- end
70
- str << '</patternFill>'
71
- end
72
- end
73
- end
1
+ # encoding: UTF-8
2
+ module Axlsx
3
+ # A PatternFill is the pattern and solid fill styling for a cell.
4
+ # @note The recommended way to manage styles is with Styles#add_style
5
+ # @see Style#add_style
6
+ class PatternFill
7
+
8
+ include Axlsx::OptionsParser
9
+ # Creates a new PatternFill Object
10
+ # @option options [Symbol] patternType
11
+ # @option options [Color] fgColor
12
+ # @option options [Color] bgColor
13
+ def initialize(options={})
14
+ @patternType = :none
15
+ parse_options options
16
+ end
17
+
18
+ # The color to use for the the background in solid fills.
19
+ # @return [Color]
20
+ attr_reader :fgColor
21
+
22
+ # The color to use for the background of the fill when the type is not solid.
23
+ # @return [Color]
24
+ attr_reader :bgColor
25
+
26
+ # The pattern type to use
27
+ # @note
28
+ # patternType must be one of
29
+ # :none
30
+ # :solid
31
+ # :mediumGray
32
+ # :darkGray
33
+ # :lightGray
34
+ # :darkHorizontal
35
+ # :darkVertical
36
+ # :darkDown
37
+ # :darkUp
38
+ # :darkGrid
39
+ # :darkTrellis
40
+ # :lightHorizontal
41
+ # :lightVertical
42
+ # :lightDown
43
+ # :lightUp
44
+ # :lightGrid
45
+ # :lightTrellis
46
+ # :gray125
47
+ # :gray0625
48
+ # @see Office Open XML Part 1 18.18.55
49
+ attr_reader :patternType
50
+
51
+ # @see fgColor
52
+ def fgColor=(v) DataTypeValidator.validate "PatternFill.fgColor", Color, v; @fgColor=v end
53
+ # @see bgColor
54
+ def bgColor=(v) DataTypeValidator.validate "PatternFill.bgColor", Color, v; @bgColor=v end
55
+ # @see patternType
56
+ def patternType=(v) Axlsx::validate_pattern_type v; @patternType = v end
57
+
58
+ # Serializes the object
59
+ # @param [String] str
60
+ # @return [String]
61
+ def to_xml_string(str = '')
62
+ str << ('<patternFill patternType="' << patternType.to_s << '">')
63
+ if fgColor.is_a?(Color)
64
+ fgColor.to_xml_string str, "fgColor"
65
+ end
66
+
67
+ if bgColor.is_a?(Color)
68
+ bgColor.to_xml_string str, "bgColor"
69
+ end
70
+ str << '</patternFill>'
71
+ end
72
+ end
73
+ end