caxlsx 3.2.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
data/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- Copyright (c) 2011, 2012 Randy Morgan
2
-
3
- Permission is hereby granted, free of charge, to any person
4
- obtaining a copy of this software and associated documentation
5
- files (the "Software"), to deal in the Software without
6
- restriction, including without limitation the rights to use,
7
- copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the
9
- Software is furnished to do so, subject to the following
10
- conditions:
11
-
12
- The above copyright notice and this permission notice shall be
13
- included in all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
1
+ Copyright (c) 2011, 2012 Randy Morgan
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
22
  OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,168 +1,184 @@
1
- # Caxlsx (Community Continued Version)
2
- [![Build Status](https://github.com/caxlsx/caxlsx/workflows/Test/badge.svg)](https://github.com/caxlsx/caxlsx/actions)
3
- [![Gem
4
- Version](https://badge.fury.io/rb/caxlsx.svg)](http://badge.fury.io/rb/caxlsx)
5
- ![Total downloads](http://ruby-gem-downloads-badge.herokuapp.com/caxlsx?type=total)
6
- ![Downloads for 3.2.0 (latest)](http://ruby-gem-downloads-badge.herokuapp.com/caxlsx/3.2.0?label=downloads%203.2.0)
7
-
8
- ## Notice: Community Axlsx Organization
9
-
10
- To better maintain the Axlsx ecosystem, all related gems have been forked or moved to the following community organization:
11
-
12
- http://github.com/caxlsx
13
-
14
- [Join the Caxlsx Slack channel](https://join.slack.com/t/caxlsx/shared_invite/enQtOTI5OTM0MzI1Njk5LTBlMDQzNDk2YzkwODMxMmVkODMyYzJiZGU5NTQ3YTg5NTBlN2IwZTlmNTRjNzhiY2E0MDY2OTEyYmFlODI5NjA)
15
-
16
- ## Synopsis
17
-
18
- Axlsx is an Office Open XML Spreadsheet generator for the Ruby programming language.
19
- With Axlsx you can create excel worksheets with charts, images (with links), automated and fixed column widths, customized styles, functions, tables, conditional formatting, print options, comments, merged cells, auto filters, file and stream serialization as well as full schema validation. Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents without having to understand the entire ECMA specification.
20
-
21
- ![Screen 1](https://github.com/caxlsx/caxlsx/raw/master/examples/sample.png)
22
-
23
-
24
- ## Feature List
25
-
26
- 1. Author xlsx documents: Caxlsx is made to let you easily and quickly generate professional xlsx based reports that can be validated before serialization.
27
-
28
- 2. Generate 3D Pie, Line, Scatter and Bar Charts: With Caxlsx chart generation and management is as easy as a few lines of code. You can build charts based off data in your worksheet or generate charts without any data in your sheet at all. Customize gridlines, label rotation and series colors as well.
29
-
30
- 3. Custom Styles: With guaranteed document validity, you can style borders, alignment, fills, fonts, and number formats in a single line of code. Those styles can be applied to an entire row, or a single cell anywhere in your workbook.
31
-
32
- 4. Automatic type support: Caxlsx will automatically determine the type of data you are generating. In this release Float, Integer, String, Date, Time and Boolean types are automatically identified and serialized to your spreadsheet.
33
-
34
- 5. Automatic and fixed column widths: Caxlsx will automatically determine the appropriate width for your columns based on the content in the worksheet, or use any value you specify for the really funky stuff.
35
-
36
- 6. Support for automatically formatted 1904 and 1900 epochs configurable in the workbook.
37
-
38
- 7. Add jpg, gif and png images to worksheets with hyperlinks
39
-
40
- 8. Reference cells in your worksheet with "A1" and "A1:D4" style references or from the workbook using "Sheet1!A3:B4" style references
41
-
42
- 9. Cell level style overrides for default and customized style objects
43
-
44
- 10. Support for formulas, merging, row and column outlining as well as
45
- cell level input data validation.
46
-
47
- 12. Auto filtering tables with worksheet.auto_filter as well as support for Tables
48
-
49
- 13. Export using shared strings or inline strings so we can inter-op with iWork Numbers (sans charts for now).
50
-
51
- 14. Output to file or StringIO
52
-
53
- 15. Support for page margins and print options
54
-
55
- 16. Support for password and non password based sheet protection.
56
-
57
- 17. First stage interoperability support for GoogleDocs, LibreOffice,
58
- and Numbers
59
-
60
- 18. Support for defined names, which gives you repeated header rows for printing.
61
-
62
- 19. Data labels for charts as well as series color customization.
63
-
64
- 20. Support for sheet headers and footers
65
-
66
- 21. Pivot Tables
67
-
68
- 22. Page Breaks
69
-
70
-
71
- ## Install
72
-
73
- ```ruby
74
- gem 'caxlsx'
75
- ```
76
-
77
- ## Usage
78
-
79
- Here's a teaser that kicks about 2% of what the gem can do.
80
-
81
- ```ruby
82
- Axlsx::Package.new do |p|
83
- p.workbook.add_worksheet(:name => "Pie Chart") do |sheet|
84
- sheet.add_row ["Simple Pie Chart"]
85
- %w(first second third).each { |label| sheet.add_row [label, rand(24)+1] }
86
- sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,5], :end_at => [10, 20], :title => "example 3: Pie Chart") do |chart|
87
- chart.add_series :data => sheet["B2:B4"], :labels => sheet["A2:A4"], :colors => ['FF0000', '00FF00', '0000FF']
88
- end
89
- end
90
- p.serialize('simple.xlsx')
91
- end
92
- ```
93
-
94
- Please see the [examples folder](https://github.com/caxlsx/caxlsx/tree/master/examples) for further information on what you can do with this gem Chances are that it has already been implemented. If it hasn't, let's take a look at adding it in.
95
-
96
- ## Documentation
97
-
98
- Detailed documentation is available at:
99
-
100
- [https://www.rubydoc.info/gems/caxlsx/](https://www.rubydoc.info/gems/caxlsx/)
101
-
102
- Additional documentation is listed below:
103
-
104
- - [Examples](https://github.com/caxlsx/caxlsx/tree/master/examples)
105
- - [FAQ](https://github.com/caxlsx/caxlsx/wiki/FAQ) (work in progress)
106
- - [Style Reference](https://github.com/caxlsx/caxlsx/blob/master/docs/style_reference.md)
107
- - [Header and Footer Codes](https://github.com/caxlsx/caxlsx/blob/master/docs/header_and_footer_codes.md)
108
-
109
- Please __do not create issues__ for questions regarding the usage of axlsx / caxlsx. Look through this README, the [examples](https://github.com/caxlsx/caxlsx/tree/master/examples/example.rb), and the [FAQ](https://github.com/caxlsx/caxlsx/wiki/FAQ), and also check [questions tagged `axlsx` on Stack Overflow](https://stackoverflow.com/questions/tagged/axlsx).
110
-
111
- Feel free to add your question (including an answer!) to the FAQ if you think it is of general interest.
112
-
113
- ## Plugins, Integrations, and Extensions
114
-
115
- Currently the following additional gems are available:
116
-
117
- - [acts_as_caxlsx](https://github.com/caxlsx/acts_as_caxlsx)
118
- * Provides simple ActiveRecord integration
119
- - [caxlsx_rails](https://github.com/caxlsx/caxlsx_rails)
120
- * Provides a `.axlsx` renderer to Rails so you can move all your spreadsheet code from your controller into view files.
121
- - [activeadmin-caxlsx](https://github.com/caxlsx/activeadmin-caxlsx)
122
- * An Active Admin plugin that includes DSL to create downloadable reports.
123
- - [axlsx_styler](https://github.com/axlsx-styler-gem/axlsx_styler)
124
- * Allows you to build clean and maintainable styles for your axlsx spreadsheets. Build your spreadsheeet with data and then apply styles later.
125
-
126
- ## Known Software Interoperability Issues
127
-
128
- As axslx implements the Office Open XML (ECMA-376 spec) much of the
129
- functionality is interoperable with other spreadsheet software. Below is
130
- a listing of some known issues.
131
-
132
- 1. Libre Office
133
- - You must specify colors for your series. see examples/chart_colors.rb
134
- for an example.
135
- - You must use data in your sheet for charts. You cannot use hard coded
136
- values.
137
- - Chart axis and gridlines do not render. I have a feeling this is
138
- related to themes, which axlsx does not implement at this time.
139
-
140
- 2. Google Docs
141
- - Images are known to not work with google docs
142
- - border colors do not work
143
-
144
- 3. Apple Numbers
145
- - charts do not render
146
- - you must set 'use_shared_strings' to true. This is most conveniently done just before rendering by calling Package.use_shared_strings = true prior to serialization.
147
-
148
- ```ruby
149
- p = Axlsx::Package.new
150
- p.workbook.add_worksheet(:name => "Basic Worksheet") do |sheet|
151
- sheet.add_row ["First Column", "Second", "Third"]
152
- sheet.add_row [1, 2, 3]
153
- end
154
- p.use_shared_strings = true
155
- p.serialize('simple.xlsx')
156
- ```
157
-
158
- ## Contributing
159
-
160
- See [CONTRIBUTING.md](https://github.com/caxlsx/caxlsx/blob/master/CONTRIBUTING.md)
161
-
162
- ## Credits
163
-
164
- Originally created by Randy Morgan - @randym
165
-
166
- Forked in 2019, to enable the community to maintain the Axlsx ecosystem - http://github.com/caxlsx
167
-
168
- Open source software is a community effort. None of this could have been done without the help of [our Contributors](https://github.com/caxlsx/caxlsx/graphs/contributors).
1
+ # Caxlsx (Community Continued Version)
2
+ [![Build Status](https://github.com/caxlsx/caxlsx/workflows/Test/badge.svg)](https://github.com/caxlsx/caxlsx/actions)
3
+ [![Gem Version](https://badge.fury.io/rb/caxlsx.svg)](https://badge.fury.io/rb/caxlsx)
4
+ ![downloads](https://img.shields.io/gem/dt/caxlsx?label=downloads)
5
+
6
+ ## Notice: Community Axlsx Organization
7
+
8
+ To better maintain the Axlsx ecosystem, all related gems have been forked or moved to the following community organization:
9
+
10
+ https://github.com/caxlsx
11
+
12
+ [Join the Caxlsx Slack channel](https://join.slack.com/t/caxlsx/shared_invite/enQtOTI5OTM0MzI1Njk5LTBlMDQzNDk2YzkwODMxMmVkODMyYzJiZGU5NTQ3YTg5NTBlN2IwZTlmNTRjNzhiY2E0MDY2OTEyYmFlODI5NjA)
13
+
14
+ ## Synopsis
15
+
16
+ Axlsx is an Office Open XML Spreadsheet generator for the Ruby programming language.
17
+ With Axlsx you can create excel worksheets with charts, images (with links), automated and fixed column widths, customized styles, functions, tables, conditional formatting, print options, comments, merged cells, auto filters, file and stream serialization as well as full schema validation. Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents without having to understand the entire ECMA specification.
18
+
19
+ ![Screen 1](https://github.com/caxlsx/caxlsx/raw/master/examples/sample.png)
20
+
21
+
22
+ ## Feature List
23
+
24
+ 1. Author xlsx documents: Caxlsx is made to let you easily and quickly generate professional xlsx based reports that can be validated before serialization.
25
+
26
+ 2. Generate 3D Pie, Line, Scatter and Bar Charts: With Caxlsx chart generation and management is as easy as a few lines of code. You can build charts based off data in your worksheet or generate charts without any data in your sheet at all. Customize gridlines, label rotation and series colors as well.
27
+
28
+ 3. Custom Styles: With guaranteed document validity, you can style borders, alignment, fills, fonts, and number formats in a single line of code. Those styles can be applied to an entire row, or a single cell anywhere in your workbook.
29
+
30
+ 4. Automatic type support: Caxlsx will automatically determine the type of data you are generating. In this release Float, Integer, String, Date, Time and Boolean types are automatically identified and serialized to your spreadsheet.
31
+
32
+ 5. Automatic and fixed column widths: Caxlsx will automatically determine the appropriate width for your columns based on the content in the worksheet, or use any value you specify for the really funky stuff.
33
+
34
+ 6. Support for automatically formatted 1904 and 1900 epochs configurable in the workbook.
35
+
36
+ 7. Add jpg, gif and png images to worksheets with hyperlinks
37
+
38
+ 8. Reference cells in your worksheet with "A1" and "A1:D4" style references or from the workbook using "Sheet1!A3:B4" style references
39
+
40
+ 9. Cell level style overrides for default and customized style objects
41
+
42
+ 10. Support for formulas, merging, row and column outlining as well as
43
+ cell level input data validation.
44
+
45
+ 12. Auto filtering tables with worksheet.auto_filter as well as support for Tables
46
+
47
+ 13. Export using shared strings or inline strings so we can inter-op with iWork Numbers (sans charts for now).
48
+
49
+ 14. Output to file or StringIO
50
+
51
+ 15. Support for page margins and print options
52
+
53
+ 16. Support for password and non password based sheet protection.
54
+
55
+ 17. First stage interoperability support for GoogleDocs, LibreOffice,
56
+ and Numbers
57
+
58
+ 18. Support for defined names, which gives you repeated header rows for printing.
59
+
60
+ 19. Data labels for charts as well as series color customization.
61
+
62
+ 20. Support for sheet headers and footers
63
+
64
+ 21. Pivot Tables
65
+
66
+ 22. Page Breaks
67
+
68
+
69
+ ## Install
70
+
71
+ ```ruby
72
+ gem 'caxlsx'
73
+ ```
74
+
75
+ ## Usage
76
+
77
+ Here's a teaser that kicks about 2% of what the gem can do.
78
+
79
+ ```ruby
80
+ Axlsx::Package.new do |p|
81
+ p.workbook.add_worksheet(:name => "Pie Chart") do |sheet|
82
+ sheet.add_row ["Simple Pie Chart"]
83
+ %w(first second third).each { |label| sheet.add_row [label, rand(24)+1] }
84
+ sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,5], :end_at => [10, 20], :title => "example 3: Pie Chart") do |chart|
85
+ chart.add_series :data => sheet["B2:B4"], :labels => sheet["A2:A4"], :colors => ['FF0000', '00FF00', '0000FF']
86
+ end
87
+ end
88
+ p.serialize('simple.xlsx')
89
+ end
90
+ ```
91
+
92
+ Please see the [examples folder](https://github.com/caxlsx/caxlsx/tree/master/examples) for further information on what you can do with this gem Chances are that it has already been implemented. If it hasn't, let's take a look at adding it in.
93
+
94
+ ## Documentation
95
+
96
+ Detailed documentation is available at:
97
+
98
+ [https://www.rubydoc.info/gems/caxlsx/](https://www.rubydoc.info/gems/caxlsx/)
99
+
100
+ Additional documentation is listed below:
101
+
102
+ - [Examples](https://github.com/caxlsx/caxlsx/tree/master/examples)
103
+ - [FAQ](https://github.com/caxlsx/caxlsx/wiki/FAQ) (work in progress)
104
+ - [Style Reference](https://github.com/caxlsx/caxlsx/blob/master/docs/style_reference.md)
105
+ - [Header and Footer Codes](https://github.com/caxlsx/caxlsx/blob/master/docs/header_and_footer_codes.md)
106
+
107
+ Please __do not create issues__ for questions regarding the usage of axlsx / caxlsx. Look through this README, the [examples](https://github.com/caxlsx/caxlsx/tree/master/examples/example.rb), and the [FAQ](https://github.com/caxlsx/caxlsx/wiki/FAQ), and also check [questions tagged `axlsx` on Stack Overflow](https://stackoverflow.com/questions/tagged/axlsx).
108
+
109
+ Feel free to add your question (including an answer!) to the FAQ if you think it is of general interest.
110
+
111
+ ## Plugins, Integrations, and Extensions
112
+
113
+ Currently the following additional gems are available:
114
+
115
+ - [acts_as_caxlsx](https://github.com/caxlsx/acts_as_caxlsx)
116
+ * Provides simple ActiveRecord integration
117
+ - [caxlsx_rails](https://github.com/caxlsx/caxlsx_rails)
118
+ * Provides a `.axlsx` renderer to Rails so you can move all your spreadsheet code from your controller into view files.
119
+ - [activeadmin-caxlsx](https://github.com/caxlsx/activeadmin-caxlsx)
120
+ * An Active Admin plugin that includes DSL to create downloadable reports.
121
+
122
+ ## Security
123
+
124
+ To prevent [Formula Injection](https://www.owasp.org/index.php/CSV_Injection) vulnerabilities, set the following in an initializer:
125
+
126
+ ```ruby
127
+ Axlsx.escape_formulas = true
128
+ ```
129
+
130
+ Then, set the following on each cell you'd like to add a formula:
131
+
132
+ ```ruby
133
+ cell.escape_formulas = true
134
+ ```
135
+
136
+ Refer to examples/escape_formula.md for how to set `escape_formulas` on the workbook, worksheet, row and/or cell level.
137
+
138
+ **Important:** The global setting `Axlsx.escape_formulas = true` will become the default in the next major release (Axlsx 4.0).
139
+ If you do not wish to set `Axlsx.escape_formulas = true` now, at a minimum, please set `Axlsx.escape_formulas = false` to
140
+ ensure continuity when upgrading.
141
+
142
+ ## Known Software Interoperability Issues
143
+
144
+ As axslx implements the Office Open XML (ECMA-376 spec) much of the
145
+ functionality is interoperable with other spreadsheet software. Below is
146
+ a listing of some known issues.
147
+
148
+ 1. Libre Office
149
+ - You must specify colors for your series. see examples/chart_colors.rb
150
+ for an example.
151
+ - You must use data in your sheet for charts. You cannot use hard coded
152
+ values.
153
+ - Chart axis and gridlines do not render. I have a feeling this is
154
+ related to themes, which axlsx does not implement at this time.
155
+
156
+ 2. Google Docs
157
+ - Images are known to not work with google docs
158
+ - border colors do not work
159
+
160
+ 3. Apple Numbers
161
+ - charts do not render
162
+ - you must set 'use_shared_strings' to true. This is most conveniently done just before rendering by calling Package.use_shared_strings = true prior to serialization.
163
+
164
+ ```ruby
165
+ p = Axlsx::Package.new
166
+ p.workbook.add_worksheet(:name => "Basic Worksheet") do |sheet|
167
+ sheet.add_row ["First Column", "Second", "Third"]
168
+ sheet.add_row [1, 2, 3]
169
+ end
170
+ p.use_shared_strings = true
171
+ p.serialize('simple.xlsx')
172
+ ```
173
+
174
+ ## Contributing
175
+
176
+ See [CONTRIBUTING.md](https://github.com/caxlsx/caxlsx/blob/master/CONTRIBUTING.md)
177
+
178
+ ## Credits
179
+
180
+ Originally created by Randy Morgan - @randym
181
+
182
+ Forked in 2019, to enable the community to maintain the Axlsx ecosystem - https://github.com/caxlsx
183
+
184
+ Open source software is a community effort. None of this could have been done without the help of [our Contributors](https://github.com/caxlsx/caxlsx/graphs/contributors).
data/Rakefile CHANGED
@@ -1,29 +1,28 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/lib/axlsx/version.rb')
2
-
3
- task :build => :gendoc do
4
- system "gem build axlsx.gemspec"
5
- end
6
-
7
- task :benchmark do
8
- require File.expand_path(File.dirname(__FILE__) + '/test/benchmark.rb')
9
- end
10
-
11
- task :gendoc do
12
- system "yardoc"
13
- system "yard stats --list-undoc"
14
- end
15
-
16
-
17
- require 'rake/testtask'
18
- Rake::TestTask.new do |t|
19
- t.libs << 'test'
20
- t.test_files = FileList['test/**/tc_*.rb']
21
- t.verbose = false
22
- t.warning = true
23
- end
24
-
25
- task :release => :build do
26
- system "gem push caxlsx-#{Axlsx::VERSION}.gem"
27
- end
28
-
29
- task :default => :test
1
+ require File.expand_path(File.dirname(__FILE__) + '/lib/axlsx/version.rb')
2
+
3
+ task :build => :gendoc do
4
+ system "gem build axlsx.gemspec"
5
+ end
6
+
7
+ task :benchmark do
8
+ require File.expand_path(File.dirname(__FILE__) + '/test/benchmark.rb')
9
+ end
10
+
11
+ task :gendoc do
12
+ system "yardoc"
13
+ system "yard stats --list-undoc"
14
+ end
15
+
16
+ require 'rake/testtask'
17
+ Rake::TestTask.new do |t|
18
+ t.libs << 'test'
19
+ t.test_files = FileList['test/**/tc_*.rb']
20
+ t.verbose = false
21
+ t.warning = true
22
+ end
23
+
24
+ task :release => :build do
25
+ system "gem push caxlsx-#{Axlsx::VERSION}.gem"
26
+ end
27
+
28
+ task :default => :test
data/examples/generate.rb CHANGED
@@ -1,15 +1,15 @@
1
- #!/usr/bin/env ruby
2
-
3
- files = if !ARGV.empty?
4
- ARGV.select { |file| File.exist?(file) }
5
- else
6
- Dir['*_example.md']
7
- end
8
-
9
- files.each do |file|
10
- puts "Executing #{file.split('.')[0].tr('_', ' ')}"
11
- code = File.read(file).match(/```ruby(?<code>.+)```/m)[:code]
12
- unless code.nil?
13
- eval(['$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"', code].join("\n"))
14
- end
15
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ files = if !ARGV.empty?
4
+ ARGV.select { |file| File.exist?(file) }
5
+ else
6
+ Dir['*_example.md']
7
+ end
8
+
9
+ files.each do |file|
10
+ puts "Executing #{file.split('.')[0].tr('_', ' ')}"
11
+ code = File.read(file).match(/```ruby(?<code>.+)```/m)[:code]
12
+ unless code.nil?
13
+ eval(['$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../lib"', code].join("\n"))
14
+ end
15
+ end
@@ -1,32 +1,29 @@
1
- module Axlsx
2
-
3
- # This class extracts the common parts from Default and Override
4
- class AbstractContentType
5
-
6
- include Axlsx::OptionsParser
7
-
8
- # Initializes an abstract content type
9
- # @see Default, Override
10
- def initialize(options={})
11
- parse_options options
12
- end
13
-
14
- # The type of content.
15
- # @return [String]
16
- attr_reader :content_type
17
- alias :ContentType :content_type
18
-
19
- # The content type.
20
- # @see Axlsx#validate_content_type
21
- def content_type=(v) Axlsx::validate_content_type v; @content_type = v end
22
- alias :ContentType= :content_type=
23
-
24
- # Serialize the contenty type to xml
25
- def to_xml_string(node_name = '', str = '')
26
- str << "<#{node_name} "
27
- str << instance_values.map { |key, value| Axlsx::camel(key) << '="' << value.to_s << '"' }.join(' ')
28
- str << '/>'
29
- end
30
-
31
- end
32
- end
1
+ module Axlsx
2
+ # This class extracts the common parts from Default and Override
3
+ class AbstractContentType
4
+ include Axlsx::OptionsParser
5
+
6
+ # Initializes an abstract content type
7
+ # @see Default, Override
8
+ def initialize(options = {})
9
+ parse_options options
10
+ end
11
+
12
+ # The type of content.
13
+ # @return [String]
14
+ attr_reader :content_type
15
+ alias :ContentType :content_type
16
+
17
+ # The content type.
18
+ # @see Axlsx#validate_content_type
19
+ def content_type=(v) Axlsx::validate_content_type v; @content_type = v end
20
+ alias :ContentType= :content_type=
21
+
22
+ # Serialize the contenty type to xml
23
+ def to_xml_string(node_name = '', str = '')
24
+ str << "<#{node_name} "
25
+ str << Axlsx.instance_values_for(self).map { |key, value| Axlsx::camel(key) << '="' << value.to_s << '"' }.join(' ')
26
+ str << '/>'
27
+ end
28
+ end
29
+ end
@@ -1,26 +1,22 @@
1
- # encoding: UTF-8
2
- module Axlsx
3
- require 'axlsx/content_type/abstract_content_type.rb'
4
- require 'axlsx/content_type/default.rb'
5
- require 'axlsx/content_type/override.rb'
6
-
7
- # ContentTypes used in the package. This is automatically managed by the package package.
8
- class ContentType < SimpleTypedList
9
-
10
- def initialize
11
- super [Override, Default]
12
- end
13
-
14
- # Serializes the object
15
- # @param [String] str
16
- # @return [String]
17
- def to_xml_string(str = '')
18
- str << '<?xml version="1.0" encoding="UTF-8"?>'
19
- str << ('<Types xmlns="' << XML_NS_T << '">')
20
- each { |type| type.to_xml_string(str) }
21
- str << '</Types>'
22
- end
23
-
24
- end
25
-
26
- end
1
+ module Axlsx
2
+ require 'axlsx/content_type/abstract_content_type.rb'
3
+ require 'axlsx/content_type/default.rb'
4
+ require 'axlsx/content_type/override.rb'
5
+
6
+ # ContentTypes used in the package. This is automatically managed by the package package.
7
+ class ContentType < SimpleTypedList
8
+ def initialize
9
+ super [Override, Default]
10
+ end
11
+
12
+ # Serializes the object
13
+ # @param [String] str
14
+ # @return [String]
15
+ def to_xml_string(str = '')
16
+ str << '<?xml version="1.0" encoding="UTF-8"?>'
17
+ str << ('<Types xmlns="' << XML_NS_T << '">')
18
+ each { |type| type.to_xml_string(str) }
19
+ str << '</Types>'
20
+ end
21
+ end
22
+ end