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,79 +1,75 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # The Dxf class defines an incremental formatting record for use in Styles. The recommended way to manage styles for your workbook is with Styles#add_style
4
- # @see Styles#add_style
5
- class Dxf
6
-
7
- include Axlsx::OptionsParser
8
-
9
- # The order in which the child elements is put in the XML seems to
10
- # be important for Excel
11
- CHILD_ELEMENTS = [:font, :numFmt, :fill, :alignment, :border, :protection]
12
- #does not support extList (ExtensionList)
13
-
14
- # The cell alignment for this style
15
- # @return [CellAlignment]
16
- # @see CellAlignment
17
- attr_reader :alignment
18
-
19
- # The cell protection for this style
20
- # @return [CellProtection]
21
- # @see CellProtection
22
- attr_reader :protection
23
-
24
- # the child NumFmt to be used to this style
25
- # @return [NumFmt]
26
- attr_reader :numFmt
27
-
28
- # the child font to be used for this style
29
- # @return [Font]
30
- attr_reader :font
31
-
32
- # the child fill to be used in this style
33
- # @return [Fill]
34
- attr_reader :fill
35
-
36
- # the border to be used in this style
37
- # @return [Border]
38
- attr_reader :border
39
-
40
- # Creates a new Xf object
41
- # @option options [Border] border
42
- # @option options [NumFmt] numFmt
43
- # @option options [Fill] fill
44
- # @option options [Font] font
45
- # @option options [CellAlignment] alignment
46
- # @option options [CellProtection] protection
47
- def initialize(options={})
48
- parse_options options
49
- end
50
-
51
- # @see Dxf#alignment
52
- def alignment=(v) DataTypeValidator.validate "Dxf.alignment", CellAlignment, v; @alignment = v end
53
- # @see protection
54
- def protection=(v) DataTypeValidator.validate "Dxf.protection", CellProtection, v; @protection = v end
55
- # @see numFmt
56
- def numFmt=(v) DataTypeValidator.validate "Dxf.numFmt", NumFmt, v; @numFmt = v end
57
- # @see font
58
- def font=(v) DataTypeValidator.validate "Dxf.font", Font, v; @font = v end
59
- # @see border
60
- def border=(v) DataTypeValidator.validate "Dxf.border", Border, v; @border = v end
61
- # @see fill
62
- def fill=(v) DataTypeValidator.validate "Dxf.fill", Fill, v; @fill = v end
63
-
64
- # Serializes the object
65
- # @param [String] str
66
- # @return [String]
67
- def to_xml_string(str = '')
68
- str << '<dxf>'
69
- # Dxf elements have no attributes. All of the instance variables
70
- # are child elements.
71
- CHILD_ELEMENTS.each do |element|
72
- self.send(element).to_xml_string(str) if self.send(element)
73
- end
74
- str << '</dxf>'
75
- end
76
-
77
- end
78
-
79
- end
1
+ module Axlsx
2
+ # The Dxf class defines an incremental formatting record for use in Styles. The recommended way to manage styles for your workbook is with Styles#add_style
3
+ # @see Styles#add_style
4
+ class Dxf
5
+ include Axlsx::OptionsParser
6
+
7
+ # The order in which the child elements is put in the XML seems to
8
+ # be important for Excel
9
+ CHILD_ELEMENTS = [:font, :numFmt, :fill, :alignment, :border, :protection]
10
+ # does not support extList (ExtensionList)
11
+
12
+ # The cell alignment for this style
13
+ # @return [CellAlignment]
14
+ # @see CellAlignment
15
+ attr_reader :alignment
16
+
17
+ # The cell protection for this style
18
+ # @return [CellProtection]
19
+ # @see CellProtection
20
+ attr_reader :protection
21
+
22
+ # the child NumFmt to be used to this style
23
+ # @return [NumFmt]
24
+ attr_reader :numFmt
25
+
26
+ # the child font to be used for this style
27
+ # @return [Font]
28
+ attr_reader :font
29
+
30
+ # the child fill to be used in this style
31
+ # @return [Fill]
32
+ attr_reader :fill
33
+
34
+ # the border to be used in this style
35
+ # @return [Border]
36
+ attr_reader :border
37
+
38
+ # Creates a new Xf object
39
+ # @option options [Border] border
40
+ # @option options [NumFmt] numFmt
41
+ # @option options [Fill] fill
42
+ # @option options [Font] font
43
+ # @option options [CellAlignment] alignment
44
+ # @option options [CellProtection] protection
45
+ def initialize(options = {})
46
+ parse_options options
47
+ end
48
+
49
+ # @see Dxf#alignment
50
+ def alignment=(v) DataTypeValidator.validate "Dxf.alignment", CellAlignment, v; @alignment = v end
51
+ # @see protection
52
+ def protection=(v) DataTypeValidator.validate "Dxf.protection", CellProtection, v; @protection = v end
53
+ # @see numFmt
54
+ def numFmt=(v) DataTypeValidator.validate "Dxf.numFmt", NumFmt, v; @numFmt = v end
55
+ # @see font
56
+ def font=(v) DataTypeValidator.validate "Dxf.font", Font, v; @font = v end
57
+ # @see border
58
+ def border=(v) DataTypeValidator.validate "Dxf.border", Border, v; @border = v end
59
+ # @see fill
60
+ def fill=(v) DataTypeValidator.validate "Dxf.fill", Fill, v; @fill = v end
61
+
62
+ # Serializes the object
63
+ # @param [String] str
64
+ # @return [String]
65
+ def to_xml_string(str = '')
66
+ str << '<dxf>'
67
+ # Dxf elements have no attributes. All of the instance variables
68
+ # are child elements.
69
+ CHILD_ELEMENTS.each do |element|
70
+ self.send(element).to_xml_string(str) if self.send(element)
71
+ end
72
+ str << '</dxf>'
73
+ end
74
+ end
75
+ end
@@ -1,35 +1,31 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # The Fill is a formatting object that manages the background color, and pattern for cells.
4
- # @note The recommended way to manage styles in your workbook is to use Styles#add_style.
5
- # @see Styles#add_style
6
- # @see PatternFill
7
- # @see GradientFill
8
- class Fill
9
-
10
- # The type of fill
11
- # @return [PatternFill, GradientFill]
12
- attr_reader :fill_type
13
-
14
- # Creates a new Fill object
15
- # @param [PatternFill, GradientFill] fill_type
16
- # @raise [ArgumentError] if the fill_type parameter is not a PatternFill or a GradientFill instance
17
- def initialize(fill_type)
18
- self.fill_type = fill_type
19
- end
20
-
21
- # Serializes the object
22
- # @param [String] str
23
- # @return [String]
24
- def to_xml_string(str = '')
25
- str << '<fill>'
26
- @fill_type.to_xml_string(str)
27
- str << '</fill>'
28
- end
29
-
30
- # @see fill_type
31
- def fill_type=(v) DataTypeValidator.validate "Fill.fill_type", [PatternFill, GradientFill], v; @fill_type = v; end
32
-
33
-
34
- end
35
- end
1
+ module Axlsx
2
+ # The Fill is a formatting object that manages the background color, and pattern for cells.
3
+ # @note The recommended way to manage styles in your workbook is to use Styles#add_style.
4
+ # @see Styles#add_style
5
+ # @see PatternFill
6
+ # @see GradientFill
7
+ class Fill
8
+ # The type of fill
9
+ # @return [PatternFill, GradientFill]
10
+ attr_reader :fill_type
11
+
12
+ # Creates a new Fill object
13
+ # @param [PatternFill, GradientFill] fill_type
14
+ # @raise [ArgumentError] if the fill_type parameter is not a PatternFill or a GradientFill instance
15
+ def initialize(fill_type)
16
+ self.fill_type = fill_type
17
+ end
18
+
19
+ # Serializes the object
20
+ # @param [String] str
21
+ # @return [String]
22
+ def to_xml_string(str = '')
23
+ str << '<fill>'
24
+ @fill_type.to_xml_string(str)
25
+ str << '</fill>'
26
+ end
27
+
28
+ # @see fill_type
29
+ def fill_type=(v) DataTypeValidator.validate "Fill.fill_type", [PatternFill, GradientFill], v; @fill_type = v; end
30
+ end
31
+ end
@@ -1,156 +1,157 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- # The Font class details a font instance for use in styling cells.
4
- # @note The recommended way to manage fonts, and other styles is Styles#add_style
5
- # @see Styles#add_style
6
- class Font
7
- include Axlsx::OptionsParser
8
-
9
- # Creates a new Font
10
- # @option options [String] name
11
- # @option options [Integer] charset
12
- # @option options [Integer] family
13
- # @option options [Integer] family
14
- # @option options [Boolean] b
15
- # @option options [Boolean] i
16
- # @option options [Boolean] u
17
- # @option options [Boolean] strike
18
- # @option options [Boolean] outline
19
- # @option options [Boolean] shadow
20
- # @option options [Boolean] condense
21
- # @option options [Boolean] extend
22
- # @option options [Color] color
23
- # @option options [Integer] sz
24
- def initialize(options={})
25
- parse_options options
26
- end
27
-
28
- # The name of the font
29
- # @return [String]
30
- attr_reader :name
31
-
32
- # The charset of the font
33
- # @return [Integer]
34
- # @note
35
- # The following values are defined in the OOXML specification and are OS dependant values
36
- # 0 ANSI_CHARSET
37
- # 1 DEFAULT_CHARSET
38
- # 2 SYMBOL_CHARSET
39
- # 77 MAC_CHARSET
40
- # 128 SHIFTJIS_CHARSET
41
- # 129 HANGUL_CHARSET
42
- # 130 JOHAB_CHARSET
43
- # 134 GB2312_CHARSET
44
- # 136 CHINESEBIG5_CHARSET
45
- # 161 GREEK_CHARSET
46
- # 162 TURKISH_CHARSET
47
- # 163 VIETNAMESE_CHARSET
48
- # 177 HEBREW_CHARSET
49
- # 178 ARABIC_CHARSET
50
- # 186 BALTIC_CHARSET
51
- # 204 RUSSIAN_CHARSET
52
- # 222 THAI_CHARSET
53
- # 238 EASTEUROPE_CHARSET
54
- # 255 OEM_CHARSET
55
- attr_reader :charset
56
-
57
- # The font's family
58
- # @note
59
- # The following are defined OOXML specification
60
- # 0 Not applicable.
61
- # 1 Roman
62
- # 2 Swiss
63
- # 3 Modern
64
- # 4 Script
65
- # 5 Decorative
66
- # 6..14 Reserved for future use
67
- # @return [Integer]
68
- attr_reader :family
69
-
70
- # Indicates if the font should be rendered in *bold*
71
- # @return [Boolean]
72
- attr_reader :b
73
-
74
- # Indicates if the font should be rendered italicized
75
- # @return [Boolean]
76
- attr_reader :i
77
-
78
- # Indicates if the font should be rendered underlined
79
- # It must be one of :none, :single, :double, :singleAccounting, :doubleAccounting, true, false
80
- # @return [String]
81
- # @note
82
- # true or false is for backwards compatibility and is reassigned to :single or :none respectively
83
- attr_reader :u
84
-
85
- # Indicates if the font should be rendered with a strikthrough
86
- # @return [Boolean]
87
- attr_reader :strike
88
-
89
- # Indicates if the font should be rendered with an outline
90
- # @return [Boolean]
91
- attr_reader :outline
92
-
93
- # Indicates if the font should be rendered with a shadow
94
- # @return [Boolean]
95
- attr_reader :shadow
96
-
97
- # Indicates if the font should be condensed
98
- # @return [Boolean]
99
- attr_reader :condense
100
-
101
- # The font's extend property
102
- # @return [Boolean]
103
- attr_reader :extend
104
-
105
- # The color of the font
106
- # @return [Color]
107
- attr_reader :color
108
-
109
- # The size of the font.
110
- # @return [Integer]
111
- attr_reader :sz
112
-
113
- # @see name
114
- def name=(v) Axlsx::validate_string v; @name = v end
115
- # @see charset
116
- def charset=(v) Axlsx::validate_unsigned_int v; @charset = v end
117
- # @see family
118
- def family=(v) Axlsx::validate_unsigned_int v; @family = v end
119
- # @see b
120
- def b=(v) Axlsx::validate_boolean v; @b = v end
121
- # @see i
122
- def i=(v) Axlsx::validate_boolean v; @i = v end
123
- # @see u
124
- def u=(v)
125
- v = :single if (v == true || v == 1 || v == :true || v == 'true')
126
- v = :none if (v == false || v == 0 || v == :false || v == 'false')
127
- Axlsx::validate_cell_u v
128
- @u = v
129
- end
130
- # @see strike
131
- def strike=(v) Axlsx::validate_boolean v; @strike = v end
132
- # @see outline
133
- def outline=(v) Axlsx::validate_boolean v; @outline = v end
134
- # @see shadow
135
- def shadow=(v) Axlsx::validate_boolean v; @shadow = v end
136
- # @see condense
137
- def condense=(v) Axlsx::validate_boolean v; @condense = v end
138
- # @see extend
139
- def extend=(v) Axlsx::validate_boolean v; @extend = v end
140
- # @see color
141
- def color=(v) DataTypeValidator.validate "Font.color", Color, v; @color=v end
142
- # @see sz
143
- def sz=(v) Axlsx::validate_unsigned_int v; @sz=v end
144
-
145
- # Serializes the object
146
- # @param [String] str
147
- # @return [String]
148
- def to_xml_string(str = '')
149
- str << '<font>'
150
- instance_values.each do |k, v|
151
- v.is_a?(Color) ? v.to_xml_string(str) : (str << ('<' << k.to_s << ' val="' << Axlsx.booleanize(v).to_s << '"/>'))
152
- end
153
- str << '</font>'
154
- end
155
- end
156
- end
1
+ module Axlsx
2
+ # The Font class details a font instance for use in styling cells.
3
+ # @note The recommended way to manage fonts, and other styles is Styles#add_style
4
+ # @see Styles#add_style
5
+ class Font
6
+ include Axlsx::OptionsParser
7
+
8
+ # Creates a new Font
9
+ # @option options [String] name
10
+ # @option options [Integer] charset
11
+ # @option options [Integer] family
12
+ # @option options [Integer] family
13
+ # @option options [Boolean] b
14
+ # @option options [Boolean] i
15
+ # @option options [Boolean] u
16
+ # @option options [Boolean] strike
17
+ # @option options [Boolean] outline
18
+ # @option options [Boolean] shadow
19
+ # @option options [Boolean] condense
20
+ # @option options [Boolean] extend
21
+ # @option options [Color] color
22
+ # @option options [Integer] sz
23
+ def initialize(options = {})
24
+ parse_options options
25
+ end
26
+
27
+ # The name of the font
28
+ # @return [String]
29
+ attr_reader :name
30
+
31
+ # The charset of the font
32
+ # @return [Integer]
33
+ # @note
34
+ # The following values are defined in the OOXML specification and are OS dependant values
35
+ # 0 ANSI_CHARSET
36
+ # 1 DEFAULT_CHARSET
37
+ # 2 SYMBOL_CHARSET
38
+ # 77 MAC_CHARSET
39
+ # 128 SHIFTJIS_CHARSET
40
+ # 129 HANGUL_CHARSET
41
+ # 130 JOHAB_CHARSET
42
+ # 134 GB2312_CHARSET
43
+ # 136 CHINESEBIG5_CHARSET
44
+ # 161 GREEK_CHARSET
45
+ # 162 TURKISH_CHARSET
46
+ # 163 VIETNAMESE_CHARSET
47
+ # 177 HEBREW_CHARSET
48
+ # 178 ARABIC_CHARSET
49
+ # 186 BALTIC_CHARSET
50
+ # 204 RUSSIAN_CHARSET
51
+ # 222 THAI_CHARSET
52
+ # 238 EASTEUROPE_CHARSET
53
+ # 255 OEM_CHARSET
54
+ attr_reader :charset
55
+
56
+ # The font's family
57
+ # @note
58
+ # The following are defined OOXML specification
59
+ # 0 Not applicable.
60
+ # 1 Roman
61
+ # 2 Swiss
62
+ # 3 Modern
63
+ # 4 Script
64
+ # 5 Decorative
65
+ # 6..14 Reserved for future use
66
+ # @return [Integer]
67
+ attr_reader :family
68
+
69
+ # Indicates if the font should be rendered in *bold*
70
+ # @return [Boolean]
71
+ attr_reader :b
72
+
73
+ # Indicates if the font should be rendered italicized
74
+ # @return [Boolean]
75
+ attr_reader :i
76
+
77
+ # Indicates if the font should be rendered underlined
78
+ # It must be one of :none, :single, :double, :singleAccounting, :doubleAccounting, true, false
79
+ # @return [String]
80
+ # @note
81
+ # true or false is for backwards compatibility and is reassigned to :single or :none respectively
82
+ attr_reader :u
83
+
84
+ # Indicates if the font should be rendered with a strikthrough
85
+ # @return [Boolean]
86
+ attr_reader :strike
87
+
88
+ # Indicates if the font should be rendered with an outline
89
+ # @return [Boolean]
90
+ attr_reader :outline
91
+
92
+ # Indicates if the font should be rendered with a shadow
93
+ # @return [Boolean]
94
+ attr_reader :shadow
95
+
96
+ # Indicates if the font should be condensed
97
+ # @return [Boolean]
98
+ attr_reader :condense
99
+
100
+ # The font's extend property
101
+ # @return [Boolean]
102
+ attr_reader :extend
103
+
104
+ # The color of the font
105
+ # @return [Color]
106
+ attr_reader :color
107
+
108
+ # The size of the font.
109
+ # @return [Integer]
110
+ attr_reader :sz
111
+
112
+ # @see name
113
+ def name=(v) Axlsx::validate_string v; @name = v end
114
+ # @see charset
115
+ def charset=(v) Axlsx::validate_unsigned_int v; @charset = v end
116
+ # @see family
117
+ def family=(v) Axlsx::validate_unsigned_int v; @family = v end
118
+ # @see b
119
+ def b=(v) Axlsx::validate_boolean v; @b = v end
120
+ # @see i
121
+ def i=(v) Axlsx::validate_boolean v; @i = v end
122
+
123
+ # @see u
124
+ def u=(v)
125
+ v = :single if (v == true || v == 1 || v == :true || v == 'true')
126
+ v = :none if (v == false || v == 0 || v == :false || v == 'false')
127
+ Axlsx::validate_cell_u v
128
+ @u = v
129
+ end
130
+
131
+ # @see strike
132
+ def strike=(v) Axlsx::validate_boolean v; @strike = v end
133
+ # @see outline
134
+ def outline=(v) Axlsx::validate_boolean v; @outline = v end
135
+ # @see shadow
136
+ def shadow=(v) Axlsx::validate_boolean v; @shadow = v end
137
+ # @see condense
138
+ def condense=(v) Axlsx::validate_boolean v; @condense = v end
139
+ # @see extend
140
+ def extend=(v) Axlsx::validate_boolean v; @extend = v end
141
+ # @see color
142
+ def color=(v) DataTypeValidator.validate "Font.color", Color, v; @color = v end
143
+ # @see sz
144
+ def sz=(v) Axlsx::validate_unsigned_int v; @sz = v end
145
+
146
+ # Serializes the object
147
+ # @param [String] str
148
+ # @return [String]
149
+ def to_xml_string(str = '')
150
+ str << '<font>'
151
+ Axlsx.instance_values_for(self).each do |k, v|
152
+ v.is_a?(Color) ? v.to_xml_string(str) : (str << ('<' << k.to_s << ' val="' << Axlsx.booleanize(v).to_s << '"/>'))
153
+ end
154
+ str << '</font>'
155
+ end
156
+ end
157
+ end