caxlsx 3.2.0 → 3.3.0

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