caxlsx 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +385 -354
  5. data/LICENSE +21 -21
  6. data/README.md +165 -168
  7. data/Rakefile +29 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +32 -32
  10. data/lib/axlsx/content_type/content_type.rb +26 -26
  11. data/lib/axlsx/content_type/default.rb +25 -25
  12. data/lib/axlsx/content_type/override.rb +25 -25
  13. data/lib/axlsx/doc_props/app.rb +235 -235
  14. data/lib/axlsx/doc_props/core.rb +39 -39
  15. data/lib/axlsx/drawing/area_chart.rb +99 -99
  16. data/lib/axlsx/drawing/area_series.rb +110 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +26 -26
  18. data/lib/axlsx/drawing/axes.rb +61 -61
  19. data/lib/axlsx/drawing/axis.rb +190 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +148 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +138 -138
  22. data/lib/axlsx/drawing/bar_series.rb +97 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +59 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +63 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +85 -85
  26. data/lib/axlsx/drawing/chart.rb +299 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +91 -90
  28. data/lib/axlsx/drawing/drawing.rb +167 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +54 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +100 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +68 -68
  32. data/lib/axlsx/drawing/line_chart.rb +99 -99
  33. data/lib/axlsx/drawing/line_series.rb +110 -110
  34. data/lib/axlsx/drawing/marker.rb +84 -84
  35. data/lib/axlsx/drawing/num_data.rb +52 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +62 -62
  37. data/lib/axlsx/drawing/num_val.rb +34 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +99 -99
  39. data/lib/axlsx/drawing/pic.rb +211 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +42 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +47 -47
  42. data/lib/axlsx/drawing/pie_series.rb +74 -74
  43. data/lib/axlsx/drawing/scaling.rb +60 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +74 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +129 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +45 -45
  47. data/lib/axlsx/drawing/series.rb +69 -69
  48. data/lib/axlsx/drawing/series_title.rb +25 -25
  49. data/lib/axlsx/drawing/str_data.rb +42 -42
  50. data/lib/axlsx/drawing/str_val.rb +34 -34
  51. data/lib/axlsx/drawing/title.rb +107 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +97 -97
  53. data/lib/axlsx/drawing/val_axis.rb +37 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +42 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +66 -66
  57. data/lib/axlsx/package.rb +398 -388
  58. data/lib/axlsx/rels/relationship.rb +130 -130
  59. data/lib/axlsx/rels/relationships.rb +32 -32
  60. data/lib/axlsx/stylesheet/border.rb +73 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +71 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +132 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +41 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +72 -72
  65. data/lib/axlsx/stylesheet/color.rb +76 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +79 -79
  67. data/lib/axlsx/stylesheet/fill.rb +35 -35
  68. data/lib/axlsx/stylesheet/font.rb +156 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +103 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +37 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +86 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +73 -73
  73. data/lib/axlsx/stylesheet/styles.rb +535 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +54 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +77 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +46 -46
  77. data/lib/axlsx/stylesheet/xf.rb +147 -147
  78. data/lib/axlsx/util/accessors.rb +64 -64
  79. data/lib/axlsx/util/constants.rb +416 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +11 -11
  81. data/lib/axlsx/util/options_parser.rb +16 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +89 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +179 -179
  84. data/lib/axlsx/util/storage.rb +146 -146
  85. data/lib/axlsx/util/validators.rb +312 -312
  86. data/lib/axlsx/util/zip_command.rb +73 -73
  87. data/lib/axlsx/version.rb +5 -5
  88. data/lib/axlsx/workbook/defined_name.rb +128 -128
  89. data/lib/axlsx/workbook/defined_names.rb +21 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +77 -77
  91. data/lib/axlsx/workbook/workbook.rb +425 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +80 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +22 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +77 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +244 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +76 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +35 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +532 -506
  100. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  101. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  102. data/lib/axlsx/workbook/worksheet/cfvos.rb +18 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +145 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +35 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +110 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +91 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +82 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +82 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +220 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +25 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +129 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +267 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +28 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +30 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +64 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +52 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +81 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +33 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +44 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +240 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +139 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +335 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +66 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +24 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +39 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +47 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +55 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +250 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +164 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +33 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +101 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +29 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +27 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  139. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +118 -118
  140. data/lib/axlsx/workbook/worksheet/sheet_view.rb +213 -213
  141. data/lib/axlsx/workbook/worksheet/table.rb +102 -102
  142. data/lib/axlsx/workbook/worksheet/table_style_info.rb +49 -49
  143. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  144. data/lib/axlsx/workbook/worksheet/worksheet.rb +829 -786
  145. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  146. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +74 -74
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  149. data/lib/axlsx.rb +204 -185
  150. data/lib/caxlsx.rb +2 -2
  151. data/lib/schema/dc.xsd +118 -118
  152. data/lib/schema/dcmitype.xsd +51 -51
  153. data/lib/schema/dcterms.xsd +331 -331
  154. data/lib/schema/dml-chartDrawing.xsd +146 -146
  155. data/lib/schema/dml-compatibility.xsd +14 -14
  156. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  157. data/lib/schema/dml-main.xsd +3048 -3048
  158. data/lib/schema/dml-picture.xsd +23 -23
  159. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  160. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  161. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  162. data/lib/schema/shared-bibliography.xsd +144 -144
  163. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  164. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  165. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  166. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  167. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  168. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  169. data/lib/schema/shared-relationshipReference.xsd +25 -25
  170. data/lib/schema/vml-main.xsd +569 -569
  171. data/lib/schema/vml-officeDrawing.xsd +509 -509
  172. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  173. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  174. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  175. data/lib/schema/xml.xsd +116 -116
  176. metadata +5 -252
  177. data/test/benchmark.rb +0 -72
  178. data/test/content_type/tc_content_type.rb +0 -76
  179. data/test/content_type/tc_default.rb +0 -16
  180. data/test/content_type/tc_override.rb +0 -14
  181. data/test/doc_props/tc_app.rb +0 -43
  182. data/test/doc_props/tc_core.rb +0 -42
  183. data/test/drawing/tc_area_chart.rb +0 -39
  184. data/test/drawing/tc_area_series.rb +0 -71
  185. data/test/drawing/tc_axes.rb +0 -8
  186. data/test/drawing/tc_axis.rb +0 -112
  187. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  188. data/test/drawing/tc_bar_chart.rb +0 -86
  189. data/test/drawing/tc_bar_series.rb +0 -46
  190. data/test/drawing/tc_bubble_chart.rb +0 -44
  191. data/test/drawing/tc_bubble_series.rb +0 -21
  192. data/test/drawing/tc_cat_axis.rb +0 -31
  193. data/test/drawing/tc_cat_axis_data.rb +0 -27
  194. data/test/drawing/tc_chart.rb +0 -123
  195. data/test/drawing/tc_d_lbls.rb +0 -57
  196. data/test/drawing/tc_data_source.rb +0 -23
  197. data/test/drawing/tc_drawing.rb +0 -80
  198. data/test/drawing/tc_graphic_frame.rb +0 -27
  199. data/test/drawing/tc_hyperlink.rb +0 -64
  200. data/test/drawing/tc_line_3d_chart.rb +0 -47
  201. data/test/drawing/tc_line_chart.rb +0 -39
  202. data/test/drawing/tc_line_series.rb +0 -71
  203. data/test/drawing/tc_marker.rb +0 -44
  204. data/test/drawing/tc_named_axis_data.rb +0 -27
  205. data/test/drawing/tc_num_data.rb +0 -31
  206. data/test/drawing/tc_num_val.rb +0 -29
  207. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  208. data/test/drawing/tc_pic.rb +0 -103
  209. data/test/drawing/tc_picture_locking.rb +0 -72
  210. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  211. data/test/drawing/tc_pie_series.rb +0 -33
  212. data/test/drawing/tc_scaling.rb +0 -36
  213. data/test/drawing/tc_scatter_chart.rb +0 -48
  214. data/test/drawing/tc_scatter_series.rb +0 -74
  215. data/test/drawing/tc_ser_axis.rb +0 -31
  216. data/test/drawing/tc_series.rb +0 -23
  217. data/test/drawing/tc_series_title.rb +0 -54
  218. data/test/drawing/tc_str_data.rb +0 -18
  219. data/test/drawing/tc_str_val.rb +0 -30
  220. data/test/drawing/tc_title.rb +0 -70
  221. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  222. data/test/drawing/tc_val_axis.rb +0 -24
  223. data/test/drawing/tc_view_3D.rb +0 -54
  224. data/test/drawing/tc_vml_drawing.rb +0 -25
  225. data/test/drawing/tc_vml_shape.rb +0 -106
  226. data/test/fixtures/image1.gif +0 -0
  227. data/test/fixtures/image1.jpeg +0 -0
  228. data/test/fixtures/image1.jpg +0 -0
  229. data/test/fixtures/image1.png +0 -0
  230. data/test/fixtures/image1_fake.jpg +0 -0
  231. data/test/profile.rb +0 -24
  232. data/test/rels/tc_relationship.rb +0 -52
  233. data/test/rels/tc_relationships.rb +0 -37
  234. data/test/stylesheet/tc_border.rb +0 -37
  235. data/test/stylesheet/tc_border_pr.rb +0 -32
  236. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  237. data/test/stylesheet/tc_cell_protection.rb +0 -29
  238. data/test/stylesheet/tc_cell_style.rb +0 -57
  239. data/test/stylesheet/tc_color.rb +0 -43
  240. data/test/stylesheet/tc_dxf.rb +0 -81
  241. data/test/stylesheet/tc_fill.rb +0 -18
  242. data/test/stylesheet/tc_font.rb +0 -133
  243. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  244. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  245. data/test/stylesheet/tc_num_fmt.rb +0 -30
  246. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  247. data/test/stylesheet/tc_styles.rb +0 -309
  248. data/test/stylesheet/tc_table_style.rb +0 -44
  249. data/test/stylesheet/tc_table_style_element.rb +0 -45
  250. data/test/stylesheet/tc_table_styles.rb +0 -29
  251. data/test/stylesheet/tc_xf.rb +0 -120
  252. data/test/tc_axlsx.rb +0 -109
  253. data/test/tc_helper.rb +0 -10
  254. data/test/tc_package.rb +0 -317
  255. data/test/util/tc_mime_type_utils.rb +0 -13
  256. data/test/util/tc_serialized_attributes.rb +0 -19
  257. data/test/util/tc_simple_typed_list.rb +0 -77
  258. data/test/util/tc_validators.rb +0 -210
  259. data/test/workbook/tc_defined_name.rb +0 -49
  260. data/test/workbook/tc_shared_strings_table.rb +0 -59
  261. data/test/workbook/tc_workbook.rb +0 -165
  262. data/test/workbook/tc_workbook_view.rb +0 -50
  263. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  264. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  265. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  266. data/test/workbook/worksheet/tc_break.rb +0 -49
  267. data/test/workbook/worksheet/tc_cell.rb +0 -465
  268. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  269. data/test/workbook/worksheet/tc_col.rb +0 -93
  270. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  271. data/test/workbook/worksheet/tc_comment.rb +0 -72
  272. data/test/workbook/worksheet/tc_comments.rb +0 -57
  273. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  274. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  275. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  276. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  277. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  278. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  279. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  280. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  281. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  282. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  283. data/test/workbook/worksheet/tc_pane.rb +0 -54
  284. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  285. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  286. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  287. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  288. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  289. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  290. data/test/workbook/worksheet/tc_row.rb +0 -160
  291. data/test/workbook/worksheet/tc_selection.rb +0 -55
  292. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  293. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  294. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  295. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  296. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  297. data/test/workbook/worksheet/tc_table.rb +0 -77
  298. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  299. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  300. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,410 +1,416 @@
1
- module Axlsx
2
-
3
- # XML Encoding
4
- ENCODING = "UTF-8".freeze
5
-
6
- # spreadsheetML namespace
7
- XML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main".freeze
8
-
9
- # content-types namespace
10
- XML_NS_T = "http://schemas.openxmlformats.org/package/2006/content-types".freeze
11
-
12
- # extended-properties namespace
13
- APP_NS = "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties".freeze
14
-
15
- # doc props namespace
16
- APP_NS_VT = "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes".freeze
17
-
18
- # core properties namespace
19
- CORE_NS = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties".freeze
20
-
21
- # dc elements (core) namespace
22
- CORE_NS_DC = "http://purl.org/dc/elements/1.1/".freeze
23
-
24
- # dcmit (core) namespcace
25
- CORE_NS_DCMIT = "http://purl.org/dc/dcmitype/".freeze
26
-
27
- # dc terms namespace
28
- CORE_NS_DCT = "http://purl.org/dc/terms/".freeze
29
-
30
- # xml schema namespace
31
- CORE_NS_XSI = "http://www.w3.org/2001/XMLSchema-instance".freeze
32
-
33
- # Digital signature namespace
34
- DIGITAL_SIGNATURE_NS = "http://schemas.openxmlformats.org/package/2006/digital-signature".freeze
35
-
36
- # spreadsheet drawing namespace
37
- XML_NS_XDR = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing".freeze
38
-
39
- # drawing namespace
40
- XML_NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main".freeze
41
-
42
- # chart namespace
43
- XML_NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart".freeze
44
-
45
- # relationships namespace
46
- XML_NS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships".freeze
47
-
48
- # relationships name space
49
- RELS_R = "http://schemas.openxmlformats.org/package/2006/relationships".freeze
50
-
51
- # table rels namespace
52
- TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table".freeze
53
-
54
- # pivot table rels namespace
55
- PIVOT_TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable".freeze
56
-
57
- # pivot table cache definition namespace
58
- PIVOT_TABLE_CACHE_DEFINITION_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition".freeze
59
-
60
- # workbook rels namespace
61
- WORKBOOK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument".freeze
62
-
63
- # worksheet rels namespace
64
- WORKSHEET_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet".freeze
65
-
66
- # app rels namespace
67
- APP_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties".freeze
68
-
69
- # core rels namespace
70
- CORE_R = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties".freeze
71
-
72
- # digital signature rels namespace
73
- DIGITAL_SIGNATURE_R = "http://schemas.openxmlformats.org/package/2006/relationships/digital- signature/signature".freeze
74
-
75
- # styles rels namespace
76
- STYLES_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles".freeze
77
-
78
- # shared strings namespace
79
- SHARED_STRINGS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings".freeze
80
-
81
- # drawing rels namespace
82
- DRAWING_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing".freeze
83
-
84
- # chart rels namespace
85
- CHART_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart".freeze
86
-
87
- # image rels namespace
88
- IMAGE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image".freeze
89
-
90
- # hyperlink rels namespace
91
- HYPERLINK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink".freeze
92
-
93
- # comment rels namespace
94
- COMMENT_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments".freeze
95
-
96
- # comment relation for nil target
97
- COMMENT_R_NULL = "http://purl.oclc.org/ooxml/officeDocument/relationships/comments".freeze
98
-
99
- #vml drawing relation namespace
100
- VML_DRAWING_R = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'
101
-
102
- # VML Drawing content type
103
- VML_DRAWING_CT = "application/vnd.openxmlformats-officedocument.vmlDrawing".freeze
104
-
105
- # table content type
106
- TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml".freeze
107
-
108
- # pivot table content type
109
- PIVOT_TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml".freeze
110
-
111
- # pivot table cache definition content type
112
- PIVOT_TABLE_CACHE_DEFINITION_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml".freeze
113
-
114
- # workbook content type
115
- WORKBOOK_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml".freeze
116
-
117
- # app content type
118
- APP_CT = "application/vnd.openxmlformats-officedocument.extended-properties+xml".freeze
119
-
120
- # rels content type
121
- RELS_CT = "application/vnd.openxmlformats-package.relationships+xml".freeze
122
-
123
- # styles content type
124
- STYLES_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml".freeze
125
-
126
- # xml content type
127
- XML_CT = "application/xml".freeze
128
-
129
- # worksheet content type
130
- WORKSHEET_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml".freeze
131
-
132
- # shared strings content type
133
- SHARED_STRINGS_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml".freeze
134
-
135
- # core content type
136
- CORE_CT = "application/vnd.openxmlformats-package.core-properties+xml".freeze
137
-
138
- # digital signature xml content type
139
- DIGITAL_SIGNATURE_XML_CT = "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml".freeze
140
-
141
- # digital signature origin content type
142
- DIGITAL_SIGNATURE_ORIGIN_CT = "application/vnd.openxmlformats-package.digital-signature-origin".freeze
143
-
144
- # digital signature certificate content type
145
- DIGITAL_SIGNATURE_CERTIFICATE_CT = "application/vnd.openxmlformats-package.digital-signature-certificate".freeze
146
-
147
- # chart content type
148
- CHART_CT = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml".freeze
149
-
150
- # comments content type
151
- COMMENT_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml".freeze
152
-
153
- # jpeg content type
154
- JPEG_CT = "image/jpeg".freeze
155
-
156
- # gif content type
157
- GIF_CT = "image/gif".freeze
158
-
159
- # png content type
160
- PNG_CT = "image/png".freeze
161
-
162
- #drawing content type
163
- DRAWING_CT = "application/vnd.openxmlformats-officedocument.drawing+xml".freeze
164
-
165
-
166
- # xml content type extensions
167
- XML_EX = "xml".freeze
168
-
169
- # jpeg extension
170
- JPEG_EX = "jpeg".freeze
171
-
172
- # gif extension
173
- GIF_EX = "gif".freeze
174
-
175
- # png extension
176
- PNG_EX = "png".freeze
177
-
178
- # rels content type extension
179
- RELS_EX = "rels".freeze
180
-
181
- # workbook part
182
- WORKBOOK_PN = "xl/workbook.xml".freeze
183
-
184
- # styles part
185
- STYLES_PN = "styles.xml".freeze
186
-
187
- # shared_strings part
188
- SHARED_STRINGS_PN = "sharedStrings.xml".freeze
189
-
190
- # app part
191
- APP_PN = "docProps/app.xml".freeze
192
-
193
- # core part
194
- CORE_PN = "docProps/core.xml".freeze
195
-
196
- # content types part
197
- CONTENT_TYPES_PN = "[Content_Types].xml".freeze
198
-
199
- # rels part
200
- RELS_PN = "_rels/.rels".freeze
201
-
202
- # workbook rels part
203
- WORKBOOK_RELS_PN = "xl/_rels/workbook.xml.rels".freeze
204
-
205
- # worksheet part
206
- WORKSHEET_PN = "worksheets/sheet%d.xml".freeze
207
-
208
- # worksheet rels part
209
- WORKSHEET_RELS_PN = "worksheets/_rels/sheet%d.xml.rels".freeze
210
-
211
- # drawing part
212
- DRAWING_PN = "drawings/drawing%d.xml".freeze
213
-
214
- # drawing rels part
215
- DRAWING_RELS_PN = "drawings/_rels/drawing%d.xml.rels".freeze
216
-
217
- # vml drawing part
218
- VML_DRAWING_PN = "drawings/vmlDrawing%d.vml".freeze
219
-
220
- # drawing part
221
- TABLE_PN = "tables/table%d.xml".freeze
222
-
223
- # pivot table parts
224
- PIVOT_TABLE_PN = "pivotTables/pivotTable%d.xml".freeze
225
-
226
- # pivot table cache definition part name
227
- PIVOT_TABLE_CACHE_DEFINITION_PN = "pivotCache/pivotCacheDefinition%d.xml".freeze
228
-
229
- # pivot table rels parts
230
- PIVOT_TABLE_RELS_PN = "pivotTables/_rels/pivotTable%d.xml.rels".freeze
231
-
232
- # chart part
233
- CHART_PN = "charts/chart%d.xml".freeze
234
-
235
- # chart part
236
- IMAGE_PN = "media/image%d.%s".freeze
237
-
238
- # comment part
239
- COMMENT_PN = "comments%d.xml".freeze
240
-
241
- # location of schema files for validation
242
- SCHEMA_BASE = (File.dirname(__FILE__)+'/../../schema/').freeze
243
-
244
- # App validation schema
245
- APP_XSD = (SCHEMA_BASE + "shared-documentPropertiesExtended.xsd").freeze
246
-
247
- # core validation schema
248
- CORE_XSD = (SCHEMA_BASE + "opc-coreProperties.xsd").freeze
249
-
250
- # content types validation schema
251
- CONTENT_TYPES_XSD = (SCHEMA_BASE + "opc-contentTypes.xsd").freeze
252
-
253
- # rels validation schema
254
- RELS_XSD = (SCHEMA_BASE + "opc-relationships.xsd").freeze
255
-
256
- # spreadsheetML validation schema
257
- SML_XSD = (SCHEMA_BASE + "sml.xsd").freeze
258
-
259
- # drawing validation schema
260
- DRAWING_XSD = (SCHEMA_BASE + "dml-spreadsheetDrawing.xsd").freeze
261
-
262
- # number format id for pecentage formatting using the default formatting id.
263
- NUM_FMT_PERCENT = 9
264
-
265
- # number format id for date format like 2011/11/13
266
- NUM_FMT_YYYYMMDD = 100
267
-
268
- # number format id for time format the creates 2011/11/13 12:23:10
269
- NUM_FMT_YYYYMMDDHHMMSS = 101
270
-
271
- # cellXfs id for thin borders around the cell
272
- STYLE_THIN_BORDER = 1
273
-
274
- # cellXfs id for default date styling
275
- STYLE_DATE = 2
276
-
277
- # error messages RestrictionValidor
278
- ERR_RESTRICTION = "Invalid Data: %s. %s must be one of %s.".freeze
279
-
280
- # error message DataTypeValidator
281
- ERR_TYPE = "Invalid Data %s for %s. must be %s.".freeze
282
-
283
- # error message for RegexValidator
284
- ERR_REGEX = "Invalid Data. %s does not match %s.".freeze
285
-
286
- # error message for RangeValidator
287
- ERR_RANGE = "Invalid Data. %s must be between %s and %s, (inclusive:%s) you gave: %s".freeze
288
-
289
- # error message for sheets that use explicit empty string name
290
- ERR_SHEET_NAME_EMPTY = "Your worksheet name is empty. Worksheet name can't be empty. Please assign name of your sheet or don't use name option at all.".freeze
291
-
292
- # error message for sheets that use a name which is longer than 31 bytes
293
- ERR_SHEET_NAME_TOO_LONG = "Your worksheet name '%s' is too long. Worksheet names must be 31 characters (bytes) or less".freeze
294
-
295
- # error message for sheets that use a name which include invalid characters
296
- ERR_SHEET_NAME_CHARACTER_FORBIDDEN = "Your worksheet name '%s' contains a character which is not allowed by MS Excel and will cause repair warnings. Please change the name of your sheet.".freeze
297
-
298
- # error message for duplicate sheet names
299
- ERR_DUPLICATE_SHEET_NAME = "There is already a worksheet in this workbook named '%s'. Please use a unique name".freeze
300
-
301
- # error message when user does not provide color and or style options for border in Style#add_sytle
302
- ERR_INVALID_BORDER_OPTIONS = "border hash must include both style and color. e.g. :border => { :color => 'FF000000', :style => :thin }. You provided: %s".freeze
303
-
304
- # error message for invalid border id reference
305
- ERR_INVALID_BORDER_ID = "The border id you specified (%s) does not exist. Please add a border with Style#add_style before referencing its index.".freeze
306
-
307
- # error message for invalid angles
308
- ERR_ANGLE = "Angles must be a value between -90 and 90. You provided: %s".freeze
309
-
310
- # error message for non 'integerish' value
311
- ERR_INTEGERISH = "You value must be, or be castable via to_i, an Integer. You provided %s".freeze
312
-
313
- # error message for invalid cell reference
314
- ERR_CELL_REFERENCE_INVALID = "Invalid cell definition `%s`".freeze
315
-
316
- # error message for cell reference with last cell missing
317
- ERR_CELL_REFERENCE_MISSING_CELL = "Missing cell `%s` for the specified range `%s`".freeze
318
-
319
- # Regex to match forbidden control characters
320
- # The following will be automatically stripped from worksheets.
321
- #
322
- # x00 Null
323
- # x01 Start Of Heading
324
- # x02 Start Of Text
325
- # x03End Of Text
326
- # x04 End Of Transmission
327
- # x05 Enquiry
328
- # x06 Acknowledge
329
- # x07 Bell
330
- # x08 Backspace
331
- # x0B Line Tabulation
332
- # x0C Form Feed
333
- # x0E Shift Out
334
- # x0F Shift In
335
- # x10 Data Link Escape
336
- # x11 Device Control One
337
- # x12 Device Control Two
338
- # x13 Device Control Three
339
- # x14 Device Control Four
340
- # x15 Negative Acknowledge
341
- # x16 Synchronous Idle
342
- # x17 End Of Transmission Block
343
- # x18 Cancel
344
- # x19 End Of Medium
345
- # x1A Substitute
346
- # x1B Escape
347
- # x1C Information Separator Four
348
- # x1D Information Separator Three
349
- # x1E Information Separator Two
350
- # x1F Information Separator One
351
- #
352
- # The following are not dealt with.
353
- # If you have this in your data, expect excel to blow up!
354
- #
355
- # x7F Delete
356
- # x80 Control 0080
357
- # x81 Control 0081
358
- # x82 Break Permitted Here
359
- # x83 No Break Here
360
- # x84 Control 0084
361
- # x85 Next Line (Nel)
362
- # x86 Start Of Selected Area
363
- # x87 End Of Selected Area
364
- # x88 Character Tabulation Set
365
- # x89 Character Tabulation With Justification
366
- # x8A Line Tabulation Set
367
- # x8B Partial Line Forward
368
- # x8C Partial Line Backward
369
- # x8D Reverse Line Feed
370
- # x8E Single Shift Two
371
- # x8F Single Shift Three
372
- # x90 Device Control String
373
- # x91 Private Use One
374
- # x92 Private Use Two
375
- # x93 Set Transmit State
376
- # x94 Cancel Character
377
- # x95 Message Waiting
378
- # x96 Start Of Guarded Area
379
- # x97 End Of Guarded Area
380
- # x98 Start Of String
381
- # x99 Control 0099
382
- # x9A Single Character Introducer
383
- # x9B Control Sequence Introducer
384
- # x9C String Terminator
385
- # x9D Operating System Command
386
- # x9E Privacy Message
387
- # x9F Application Program Command
388
- #
389
- # The following are allowed:
390
- #
391
- # x0A Line Feed (Lf)
392
- # x0D Carriage Return (Cr)
393
- # x09 Character Tabulation
394
- # @see http://www.codetable.net/asciikeycodes
395
- pattern = "\x0-\x08\x0B\x0C\x0E-\x1F"
396
- pattern = pattern.respond_to?(:encode) ? pattern.encode('UTF-8') : pattern
397
-
398
- # The regular expression used to remove control characters from worksheets
399
- CONTROL_CHARS = pattern.freeze
400
-
401
- # ISO 8601 date recognition
402
- ISO_8601_REGEX = /\A(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?\Z/.freeze
403
-
404
- # FLOAT recognition
405
- SAFE_FLOAT_REGEX = /\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]{1,2})?\Z/.freeze
406
- MAYBE_FLOAT_REGEX = /\A[-+]?[0-9]*\.?[0-9]+[eE](?<exp>[-+]?[0-9]{3})\Z/.freeze
407
-
408
- # Numeric recognition
409
- NUMERIC_REGEX = /\A[+-]?\d+?\Z/.freeze
410
- end
1
+ module Axlsx
2
+
3
+ # XML Encoding
4
+ ENCODING = "UTF-8".freeze
5
+
6
+ # spreadsheetML namespace
7
+ XML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main".freeze
8
+
9
+ # content-types namespace
10
+ XML_NS_T = "http://schemas.openxmlformats.org/package/2006/content-types".freeze
11
+
12
+ # extended-properties namespace
13
+ APP_NS = "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties".freeze
14
+
15
+ # doc props namespace
16
+ APP_NS_VT = "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes".freeze
17
+
18
+ # core properties namespace
19
+ CORE_NS = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties".freeze
20
+
21
+ # dc elements (core) namespace
22
+ CORE_NS_DC = "http://purl.org/dc/elements/1.1/".freeze
23
+
24
+ # dcmit (core) namespcace
25
+ CORE_NS_DCMIT = "http://purl.org/dc/dcmitype/".freeze
26
+
27
+ # dc terms namespace
28
+ CORE_NS_DCT = "http://purl.org/dc/terms/".freeze
29
+
30
+ # xml schema namespace
31
+ CORE_NS_XSI = "http://www.w3.org/2001/XMLSchema-instance".freeze
32
+
33
+ # Digital signature namespace
34
+ DIGITAL_SIGNATURE_NS = "http://schemas.openxmlformats.org/package/2006/digital-signature".freeze
35
+
36
+ # spreadsheet drawing namespace
37
+ XML_NS_XDR = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing".freeze
38
+
39
+ # drawing namespace
40
+ XML_NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main".freeze
41
+
42
+ # chart namespace
43
+ XML_NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart".freeze
44
+
45
+ # relationships namespace
46
+ XML_NS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships".freeze
47
+
48
+ # relationships name space
49
+ RELS_R = "http://schemas.openxmlformats.org/package/2006/relationships".freeze
50
+
51
+ # table rels namespace
52
+ TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table".freeze
53
+
54
+ # pivot table rels namespace
55
+ PIVOT_TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable".freeze
56
+
57
+ # pivot table cache definition namespace
58
+ PIVOT_TABLE_CACHE_DEFINITION_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition".freeze
59
+
60
+ # workbook rels namespace
61
+ WORKBOOK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument".freeze
62
+
63
+ # worksheet rels namespace
64
+ WORKSHEET_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet".freeze
65
+
66
+ # app rels namespace
67
+ APP_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties".freeze
68
+
69
+ # core rels namespace
70
+ CORE_R = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties".freeze
71
+
72
+ # digital signature rels namespace
73
+ DIGITAL_SIGNATURE_R = "http://schemas.openxmlformats.org/package/2006/relationships/digital- signature/signature".freeze
74
+
75
+ # styles rels namespace
76
+ STYLES_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles".freeze
77
+
78
+ # shared strings namespace
79
+ SHARED_STRINGS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings".freeze
80
+
81
+ # drawing rels namespace
82
+ DRAWING_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing".freeze
83
+
84
+ # chart rels namespace
85
+ CHART_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart".freeze
86
+
87
+ # image rels namespace
88
+ IMAGE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image".freeze
89
+
90
+ # hyperlink rels namespace
91
+ HYPERLINK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink".freeze
92
+
93
+ # comment rels namespace
94
+ COMMENT_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments".freeze
95
+
96
+ # comment relation for nil target
97
+ COMMENT_R_NULL = "http://purl.oclc.org/ooxml/officeDocument/relationships/comments".freeze
98
+
99
+ #vml drawing relation namespace
100
+ VML_DRAWING_R = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'
101
+
102
+ # VML Drawing content type
103
+ VML_DRAWING_CT = "application/vnd.openxmlformats-officedocument.vmlDrawing".freeze
104
+
105
+ # table content type
106
+ TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml".freeze
107
+
108
+ # pivot table content type
109
+ PIVOT_TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml".freeze
110
+
111
+ # pivot table cache definition content type
112
+ PIVOT_TABLE_CACHE_DEFINITION_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml".freeze
113
+
114
+ # workbook content type
115
+ WORKBOOK_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml".freeze
116
+
117
+ # app content type
118
+ APP_CT = "application/vnd.openxmlformats-officedocument.extended-properties+xml".freeze
119
+
120
+ # rels content type
121
+ RELS_CT = "application/vnd.openxmlformats-package.relationships+xml".freeze
122
+
123
+ # styles content type
124
+ STYLES_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml".freeze
125
+
126
+ # xml content type
127
+ XML_CT = "application/xml".freeze
128
+
129
+ # worksheet content type
130
+ WORKSHEET_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml".freeze
131
+
132
+ # shared strings content type
133
+ SHARED_STRINGS_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml".freeze
134
+
135
+ # core content type
136
+ CORE_CT = "application/vnd.openxmlformats-package.core-properties+xml".freeze
137
+
138
+ # digital signature xml content type
139
+ DIGITAL_SIGNATURE_XML_CT = "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml".freeze
140
+
141
+ # digital signature origin content type
142
+ DIGITAL_SIGNATURE_ORIGIN_CT = "application/vnd.openxmlformats-package.digital-signature-origin".freeze
143
+
144
+ # digital signature certificate content type
145
+ DIGITAL_SIGNATURE_CERTIFICATE_CT = "application/vnd.openxmlformats-package.digital-signature-certificate".freeze
146
+
147
+ # chart content type
148
+ CHART_CT = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml".freeze
149
+
150
+ # comments content type
151
+ COMMENT_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml".freeze
152
+
153
+ # jpeg content type
154
+ JPEG_CT = "image/jpeg".freeze
155
+
156
+ # gif content type
157
+ GIF_CT = "image/gif".freeze
158
+
159
+ # png content type
160
+ PNG_CT = "image/png".freeze
161
+
162
+ #drawing content type
163
+ DRAWING_CT = "application/vnd.openxmlformats-officedocument.drawing+xml".freeze
164
+
165
+
166
+ # xml content type extensions
167
+ XML_EX = "xml".freeze
168
+
169
+ # jpeg extension
170
+ JPEG_EX = "jpeg".freeze
171
+
172
+ # gif extension
173
+ GIF_EX = "gif".freeze
174
+
175
+ # png extension
176
+ PNG_EX = "png".freeze
177
+
178
+ # rels content type extension
179
+ RELS_EX = "rels".freeze
180
+
181
+ # workbook part
182
+ WORKBOOK_PN = "xl/workbook.xml".freeze
183
+
184
+ # styles part
185
+ STYLES_PN = "styles.xml".freeze
186
+
187
+ # shared_strings part
188
+ SHARED_STRINGS_PN = "sharedStrings.xml".freeze
189
+
190
+ # app part
191
+ APP_PN = "docProps/app.xml".freeze
192
+
193
+ # core part
194
+ CORE_PN = "docProps/core.xml".freeze
195
+
196
+ # content types part
197
+ CONTENT_TYPES_PN = "[Content_Types].xml".freeze
198
+
199
+ # rels part
200
+ RELS_PN = "_rels/.rels".freeze
201
+
202
+ # workbook rels part
203
+ WORKBOOK_RELS_PN = "xl/_rels/workbook.xml.rels".freeze
204
+
205
+ # worksheet part
206
+ WORKSHEET_PN = "worksheets/sheet%d.xml".freeze
207
+
208
+ # worksheet rels part
209
+ WORKSHEET_RELS_PN = "worksheets/_rels/sheet%d.xml.rels".freeze
210
+
211
+ # drawing part
212
+ DRAWING_PN = "drawings/drawing%d.xml".freeze
213
+
214
+ # drawing rels part
215
+ DRAWING_RELS_PN = "drawings/_rels/drawing%d.xml.rels".freeze
216
+
217
+ # vml drawing part
218
+ VML_DRAWING_PN = "drawings/vmlDrawing%d.vml".freeze
219
+
220
+ # drawing part
221
+ TABLE_PN = "tables/table%d.xml".freeze
222
+
223
+ # pivot table parts
224
+ PIVOT_TABLE_PN = "pivotTables/pivotTable%d.xml".freeze
225
+
226
+ # pivot table cache definition part name
227
+ PIVOT_TABLE_CACHE_DEFINITION_PN = "pivotCache/pivotCacheDefinition%d.xml".freeze
228
+
229
+ # pivot table rels parts
230
+ PIVOT_TABLE_RELS_PN = "pivotTables/_rels/pivotTable%d.xml.rels".freeze
231
+
232
+ # chart part
233
+ CHART_PN = "charts/chart%d.xml".freeze
234
+
235
+ # chart part
236
+ IMAGE_PN = "media/image%d.%s".freeze
237
+
238
+ # comment part
239
+ COMMENT_PN = "comments%d.xml".freeze
240
+
241
+ # location of schema files for validation
242
+ SCHEMA_BASE = (File.dirname(__FILE__)+'/../../schema/').freeze
243
+
244
+ # App validation schema
245
+ APP_XSD = (SCHEMA_BASE + "shared-documentPropertiesExtended.xsd").freeze
246
+
247
+ # core validation schema
248
+ CORE_XSD = (SCHEMA_BASE + "opc-coreProperties.xsd").freeze
249
+
250
+ # content types validation schema
251
+ CONTENT_TYPES_XSD = (SCHEMA_BASE + "opc-contentTypes.xsd").freeze
252
+
253
+ # rels validation schema
254
+ RELS_XSD = (SCHEMA_BASE + "opc-relationships.xsd").freeze
255
+
256
+ # spreadsheetML validation schema
257
+ SML_XSD = (SCHEMA_BASE + "sml.xsd").freeze
258
+
259
+ # drawing validation schema
260
+ DRAWING_XSD = (SCHEMA_BASE + "dml-spreadsheetDrawing.xsd").freeze
261
+
262
+ # number format id for pecentage formatting using the default formatting id.
263
+ NUM_FMT_PERCENT = 9
264
+
265
+ # number format id for date format like 2011/11/13
266
+ NUM_FMT_YYYYMMDD = 100
267
+
268
+ # number format id for time format the creates 2011/11/13 12:23:10
269
+ NUM_FMT_YYYYMMDDHHMMSS = 101
270
+
271
+ # cellXfs id for thin borders around the cell
272
+ STYLE_THIN_BORDER = 1
273
+
274
+ # cellXfs id for default date styling
275
+ STYLE_DATE = 2
276
+
277
+ # worksheet maximum name length
278
+ WORKSHEET_MAX_NAME_LENGTH = 31
279
+
280
+ # worksheet name forbidden characters
281
+ WORKSHEET_NAME_FORBIDDEN_CHARS = '[]*/\?:'.chars.freeze
282
+
283
+ # error messages RestrictionValidor
284
+ ERR_RESTRICTION = "Invalid Data: %s. %s must be one of %s.".freeze
285
+
286
+ # error message DataTypeValidator
287
+ ERR_TYPE = "Invalid Data %s for %s. must be %s.".freeze
288
+
289
+ # error message for RegexValidator
290
+ ERR_REGEX = "Invalid Data. %s does not match %s.".freeze
291
+
292
+ # error message for RangeValidator
293
+ ERR_RANGE = "Invalid Data. %s must be between %s and %s, (inclusive:%s) you gave: %s".freeze
294
+
295
+ # error message for sheets that use explicit empty string name
296
+ ERR_SHEET_NAME_EMPTY = "Your worksheet name is empty. Worksheet name can't be empty. Please assign name of your sheet or don't use name option at all.".freeze
297
+
298
+ # error message for sheets that use a name which is longer than 31 bytes
299
+ ERR_SHEET_NAME_TOO_LONG = "Your worksheet name '%s' is too long. Worksheet names must be #{WORKSHEET_MAX_NAME_LENGTH} characters (bytes) or less".freeze
300
+
301
+ # error message for sheets that use a name which include invalid characters
302
+ ERR_SHEET_NAME_CHARACTER_FORBIDDEN = "Your worksheet name '%s' contains a character which is not allowed by MS Excel and will cause repair warnings. Please change the name of your sheet.".freeze
303
+
304
+ # error message for duplicate sheet names
305
+ ERR_DUPLICATE_SHEET_NAME = "There is already a worksheet in this workbook named '%s'. Please use a unique name".freeze
306
+
307
+ # error message when user does not provide color and or style options for border in Style#add_sytle
308
+ ERR_INVALID_BORDER_OPTIONS = "border hash must include both style and color. e.g. :border => { :color => 'FF000000', :style => :thin }. You provided: %s".freeze
309
+
310
+ # error message for invalid border id reference
311
+ ERR_INVALID_BORDER_ID = "The border id you specified (%s) does not exist. Please add a border with Style#add_style before referencing its index.".freeze
312
+
313
+ # error message for invalid angles
314
+ ERR_ANGLE = "Angles must be a value between -90 and 90. You provided: %s".freeze
315
+
316
+ # error message for non 'integerish' value
317
+ ERR_INTEGERISH = "You value must be, or be castable via to_i, an Integer. You provided %s".freeze
318
+
319
+ # error message for invalid cell reference
320
+ ERR_CELL_REFERENCE_INVALID = "Invalid cell definition `%s`".freeze
321
+
322
+ # error message for cell reference with last cell missing
323
+ ERR_CELL_REFERENCE_MISSING_CELL = "Missing cell `%s` for the specified range `%s`".freeze
324
+
325
+ # Regex to match forbidden control characters
326
+ # The following will be automatically stripped from worksheets.
327
+ #
328
+ # x00 Null
329
+ # x01 Start Of Heading
330
+ # x02 Start Of Text
331
+ # x03End Of Text
332
+ # x04 End Of Transmission
333
+ # x05 Enquiry
334
+ # x06 Acknowledge
335
+ # x07 Bell
336
+ # x08 Backspace
337
+ # x0B Line Tabulation
338
+ # x0C Form Feed
339
+ # x0E Shift Out
340
+ # x0F Shift In
341
+ # x10 Data Link Escape
342
+ # x11 Device Control One
343
+ # x12 Device Control Two
344
+ # x13 Device Control Three
345
+ # x14 Device Control Four
346
+ # x15 Negative Acknowledge
347
+ # x16 Synchronous Idle
348
+ # x17 End Of Transmission Block
349
+ # x18 Cancel
350
+ # x19 End Of Medium
351
+ # x1A Substitute
352
+ # x1B Escape
353
+ # x1C Information Separator Four
354
+ # x1D Information Separator Three
355
+ # x1E Information Separator Two
356
+ # x1F Information Separator One
357
+ #
358
+ # The following are not dealt with.
359
+ # If you have this in your data, expect excel to blow up!
360
+ #
361
+ # x7F Delete
362
+ # x80 Control 0080
363
+ # x81 Control 0081
364
+ # x82 Break Permitted Here
365
+ # x83 No Break Here
366
+ # x84 Control 0084
367
+ # x85 Next Line (Nel)
368
+ # x86 Start Of Selected Area
369
+ # x87 End Of Selected Area
370
+ # x88 Character Tabulation Set
371
+ # x89 Character Tabulation With Justification
372
+ # x8A Line Tabulation Set
373
+ # x8B Partial Line Forward
374
+ # x8C Partial Line Backward
375
+ # x8D Reverse Line Feed
376
+ # x8E Single Shift Two
377
+ # x8F Single Shift Three
378
+ # x90 Device Control String
379
+ # x91 Private Use One
380
+ # x92 Private Use Two
381
+ # x93 Set Transmit State
382
+ # x94 Cancel Character
383
+ # x95 Message Waiting
384
+ # x96 Start Of Guarded Area
385
+ # x97 End Of Guarded Area
386
+ # x98 Start Of String
387
+ # x99 Control 0099
388
+ # x9A Single Character Introducer
389
+ # x9B Control Sequence Introducer
390
+ # x9C String Terminator
391
+ # x9D Operating System Command
392
+ # x9E Privacy Message
393
+ # x9F Application Program Command
394
+ #
395
+ # The following are allowed:
396
+ #
397
+ # x0A Line Feed (Lf)
398
+ # x0D Carriage Return (Cr)
399
+ # x09 Character Tabulation
400
+ # @see http://www.codetable.net/asciikeycodes
401
+ pattern = "\x0-\x08\x0B\x0C\x0E-\x1F"
402
+ pattern = pattern.respond_to?(:encode) ? pattern.encode('UTF-8') : pattern
403
+
404
+ # The regular expression used to remove control characters from worksheets
405
+ CONTROL_CHARS = pattern.freeze
406
+
407
+ # ISO 8601 date recognition
408
+ ISO_8601_REGEX = /\A(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?\Z/.freeze
409
+
410
+ # FLOAT recognition
411
+ SAFE_FLOAT_REGEX = /\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]{1,2})?\Z/.freeze
412
+ MAYBE_FLOAT_REGEX = /\A[-+]?[0-9]*\.?[0-9]+[eE](?<exp>[-+]?[0-9]{3})\Z/.freeze
413
+
414
+ # Numeric recognition
415
+ NUMERIC_REGEX = /\A[+-]?\d+?\Z/.freeze
416
+ end