caxlsx 3.2.0 → 3.4.0

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