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,410 +1,414 @@
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
+ # XML Encoding
3
+ ENCODING = "UTF-8".freeze
4
+
5
+ # spreadsheetML namespace
6
+ XML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main".freeze
7
+
8
+ # content-types namespace
9
+ XML_NS_T = "http://schemas.openxmlformats.org/package/2006/content-types".freeze
10
+
11
+ # extended-properties namespace
12
+ APP_NS = "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties".freeze
13
+
14
+ # doc props namespace
15
+ APP_NS_VT = "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes".freeze
16
+
17
+ # core properties namespace
18
+ CORE_NS = "http://schemas.openxmlformats.org/package/2006/metadata/core-properties".freeze
19
+
20
+ # dc elements (core) namespace
21
+ CORE_NS_DC = "http://purl.org/dc/elements/1.1/".freeze
22
+
23
+ # dcmit (core) namespcace
24
+ CORE_NS_DCMIT = "http://purl.org/dc/dcmitype/".freeze
25
+
26
+ # dc terms namespace
27
+ CORE_NS_DCT = "http://purl.org/dc/terms/".freeze
28
+
29
+ # xml schema namespace
30
+ CORE_NS_XSI = "http://www.w3.org/2001/XMLSchema-instance".freeze
31
+
32
+ # Digital signature namespace
33
+ DIGITAL_SIGNATURE_NS = "http://schemas.openxmlformats.org/package/2006/digital-signature".freeze
34
+
35
+ # spreadsheet drawing namespace
36
+ XML_NS_XDR = "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing".freeze
37
+
38
+ # drawing namespace
39
+ XML_NS_A = "http://schemas.openxmlformats.org/drawingml/2006/main".freeze
40
+
41
+ # chart namespace
42
+ XML_NS_C = "http://schemas.openxmlformats.org/drawingml/2006/chart".freeze
43
+
44
+ # relationships namespace
45
+ XML_NS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships".freeze
46
+
47
+ # relationships name space
48
+ RELS_R = "http://schemas.openxmlformats.org/package/2006/relationships".freeze
49
+
50
+ # table rels namespace
51
+ TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table".freeze
52
+
53
+ # pivot table rels namespace
54
+ PIVOT_TABLE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable".freeze
55
+
56
+ # pivot table cache definition namespace
57
+ PIVOT_TABLE_CACHE_DEFINITION_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition".freeze
58
+
59
+ # workbook rels namespace
60
+ WORKBOOK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument".freeze
61
+
62
+ # worksheet rels namespace
63
+ WORKSHEET_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet".freeze
64
+
65
+ # app rels namespace
66
+ APP_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties".freeze
67
+
68
+ # core rels namespace
69
+ CORE_R = "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties".freeze
70
+
71
+ # digital signature rels namespace
72
+ DIGITAL_SIGNATURE_R = "http://schemas.openxmlformats.org/package/2006/relationships/digital- signature/signature".freeze
73
+
74
+ # styles rels namespace
75
+ STYLES_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles".freeze
76
+
77
+ # shared strings namespace
78
+ SHARED_STRINGS_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings".freeze
79
+
80
+ # drawing rels namespace
81
+ DRAWING_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing".freeze
82
+
83
+ # chart rels namespace
84
+ CHART_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart".freeze
85
+
86
+ # image rels namespace
87
+ IMAGE_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image".freeze
88
+
89
+ # hyperlink rels namespace
90
+ HYPERLINK_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink".freeze
91
+
92
+ # comment rels namespace
93
+ COMMENT_R = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments".freeze
94
+
95
+ # comment relation for nil target
96
+ COMMENT_R_NULL = "http://purl.oclc.org/ooxml/officeDocument/relationships/comments".freeze
97
+
98
+ # vml drawing relation namespace
99
+ VML_DRAWING_R = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'
100
+
101
+ # VML Drawing content type
102
+ VML_DRAWING_CT = "application/vnd.openxmlformats-officedocument.vmlDrawing".freeze
103
+
104
+ # table content type
105
+ TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml".freeze
106
+
107
+ # pivot table content type
108
+ PIVOT_TABLE_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml".freeze
109
+
110
+ # pivot table cache definition content type
111
+ PIVOT_TABLE_CACHE_DEFINITION_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml".freeze
112
+
113
+ # workbook content type
114
+ WORKBOOK_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml".freeze
115
+
116
+ # app content type
117
+ APP_CT = "application/vnd.openxmlformats-officedocument.extended-properties+xml".freeze
118
+
119
+ # rels content type
120
+ RELS_CT = "application/vnd.openxmlformats-package.relationships+xml".freeze
121
+
122
+ # styles content type
123
+ STYLES_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml".freeze
124
+
125
+ # xml content type
126
+ XML_CT = "application/xml".freeze
127
+
128
+ # worksheet content type
129
+ WORKSHEET_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml".freeze
130
+
131
+ # shared strings content type
132
+ SHARED_STRINGS_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml".freeze
133
+
134
+ # core content type
135
+ CORE_CT = "application/vnd.openxmlformats-package.core-properties+xml".freeze
136
+
137
+ # digital signature xml content type
138
+ DIGITAL_SIGNATURE_XML_CT = "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml".freeze
139
+
140
+ # digital signature origin content type
141
+ DIGITAL_SIGNATURE_ORIGIN_CT = "application/vnd.openxmlformats-package.digital-signature-origin".freeze
142
+
143
+ # digital signature certificate content type
144
+ DIGITAL_SIGNATURE_CERTIFICATE_CT = "application/vnd.openxmlformats-package.digital-signature-certificate".freeze
145
+
146
+ # chart content type
147
+ CHART_CT = "application/vnd.openxmlformats-officedocument.drawingml.chart+xml".freeze
148
+
149
+ # comments content type
150
+ COMMENT_CT = "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml".freeze
151
+
152
+ # jpeg content type
153
+ JPEG_CT = "image/jpeg".freeze
154
+
155
+ # gif content type
156
+ GIF_CT = "image/gif".freeze
157
+
158
+ # png content type
159
+ PNG_CT = "image/png".freeze
160
+
161
+ # drawing content type
162
+ DRAWING_CT = "application/vnd.openxmlformats-officedocument.drawing+xml".freeze
163
+
164
+ # xml content type extensions
165
+ XML_EX = "xml".freeze
166
+
167
+ # jpeg extension
168
+ JPEG_EX = "jpeg".freeze
169
+
170
+ # gif extension
171
+ GIF_EX = "gif".freeze
172
+
173
+ # png extension
174
+ PNG_EX = "png".freeze
175
+
176
+ # rels content type extension
177
+ RELS_EX = "rels".freeze
178
+
179
+ # workbook part
180
+ WORKBOOK_PN = "xl/workbook.xml".freeze
181
+
182
+ # styles part
183
+ STYLES_PN = "styles.xml".freeze
184
+
185
+ # shared_strings part
186
+ SHARED_STRINGS_PN = "sharedStrings.xml".freeze
187
+
188
+ # app part
189
+ APP_PN = "docProps/app.xml".freeze
190
+
191
+ # core part
192
+ CORE_PN = "docProps/core.xml".freeze
193
+
194
+ # content types part
195
+ CONTENT_TYPES_PN = "[Content_Types].xml".freeze
196
+
197
+ # rels part
198
+ RELS_PN = "_rels/.rels".freeze
199
+
200
+ # workbook rels part
201
+ WORKBOOK_RELS_PN = "xl/_rels/workbook.xml.rels".freeze
202
+
203
+ # worksheet part
204
+ WORKSHEET_PN = "worksheets/sheet%d.xml".freeze
205
+
206
+ # worksheet rels part
207
+ WORKSHEET_RELS_PN = "worksheets/_rels/sheet%d.xml.rels".freeze
208
+
209
+ # drawing part
210
+ DRAWING_PN = "drawings/drawing%d.xml".freeze
211
+
212
+ # drawing rels part
213
+ DRAWING_RELS_PN = "drawings/_rels/drawing%d.xml.rels".freeze
214
+
215
+ # vml drawing part
216
+ VML_DRAWING_PN = "drawings/vmlDrawing%d.vml".freeze
217
+
218
+ # drawing part
219
+ TABLE_PN = "tables/table%d.xml".freeze
220
+
221
+ # pivot table parts
222
+ PIVOT_TABLE_PN = "pivotTables/pivotTable%d.xml".freeze
223
+
224
+ # pivot table cache definition part name
225
+ PIVOT_TABLE_CACHE_DEFINITION_PN = "pivotCache/pivotCacheDefinition%d.xml".freeze
226
+
227
+ # pivot table rels parts
228
+ PIVOT_TABLE_RELS_PN = "pivotTables/_rels/pivotTable%d.xml.rels".freeze
229
+
230
+ # chart part
231
+ CHART_PN = "charts/chart%d.xml".freeze
232
+
233
+ # chart part
234
+ IMAGE_PN = "media/image%d.%s".freeze
235
+
236
+ # comment part
237
+ COMMENT_PN = "comments%d.xml".freeze
238
+
239
+ # location of schema files for validation
240
+ SCHEMA_BASE = (File.dirname(__FILE__) + '/../../schema/').freeze
241
+
242
+ # App validation schema
243
+ APP_XSD = (SCHEMA_BASE + "shared-documentPropertiesExtended.xsd").freeze
244
+
245
+ # core validation schema
246
+ CORE_XSD = (SCHEMA_BASE + "opc-coreProperties.xsd").freeze
247
+
248
+ # content types validation schema
249
+ CONTENT_TYPES_XSD = (SCHEMA_BASE + "opc-contentTypes.xsd").freeze
250
+
251
+ # rels validation schema
252
+ RELS_XSD = (SCHEMA_BASE + "opc-relationships.xsd").freeze
253
+
254
+ # spreadsheetML validation schema
255
+ SML_XSD = (SCHEMA_BASE + "sml.xsd").freeze
256
+
257
+ # drawing validation schema
258
+ DRAWING_XSD = (SCHEMA_BASE + "dml-spreadsheetDrawing.xsd").freeze
259
+
260
+ # number format id for pecentage formatting using the default formatting id.
261
+ NUM_FMT_PERCENT = 9
262
+
263
+ # number format id for date format like 2011/11/13
264
+ NUM_FMT_YYYYMMDD = 100
265
+
266
+ # number format id for time format the creates 2011/11/13 12:23:10
267
+ NUM_FMT_YYYYMMDDHHMMSS = 101
268
+
269
+ # cellXfs id for thin borders around the cell
270
+ STYLE_THIN_BORDER = 1
271
+
272
+ # cellXfs id for default date styling
273
+ STYLE_DATE = 2
274
+
275
+ # worksheet maximum name length
276
+ WORKSHEET_MAX_NAME_LENGTH = 31
277
+
278
+ # worksheet name forbidden characters
279
+ WORKSHEET_NAME_FORBIDDEN_CHARS = '[]*/\?:'.chars.freeze
280
+
281
+ # error messages RestrictionValidor
282
+ ERR_RESTRICTION = "Invalid Data: %s. %s must be one of %s.".freeze
283
+
284
+ # error message DataTypeValidator
285
+ ERR_TYPE = "Invalid Data %s for %s. must be %s.".freeze
286
+
287
+ # error message for RegexValidator
288
+ ERR_REGEX = "Invalid Data. %s does not match %s.".freeze
289
+
290
+ # error message for RangeValidator
291
+ ERR_RANGE = "Invalid Data. %s must be between %s and %s, (inclusive:%s) you gave: %s".freeze
292
+
293
+ # error message for sheets that use explicit empty string name
294
+ 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
295
+
296
+ # error message for sheets that use a name which is longer than 31 bytes
297
+ 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
298
+
299
+ # error message for sheets that use a name which include invalid characters
300
+ 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
301
+
302
+ # error message for duplicate sheet names
303
+ ERR_DUPLICATE_SHEET_NAME = "There is already a worksheet in this workbook named '%s'. Please use a unique name".freeze
304
+
305
+ # error message when user does not provide color and or style options for border in Style#add_sytle
306
+ ERR_INVALID_BORDER_OPTIONS = "border hash must include both style and color. e.g. :border => { :color => 'FF000000', :style => :thin }. You provided: %s".freeze
307
+
308
+ # error message for invalid border id reference
309
+ 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
310
+
311
+ # error message for invalid angles
312
+ ERR_ANGLE = "Angles must be a value between -90 and 90. You provided: %s".freeze
313
+
314
+ # error message for non 'integerish' value
315
+ ERR_INTEGERISH = "You value must be, or be castable via to_i, an Integer. You provided %s".freeze
316
+
317
+ # error message for invalid cell reference
318
+ ERR_CELL_REFERENCE_INVALID = "Invalid cell definition `%s`".freeze
319
+
320
+ # error message for cell reference with last cell missing
321
+ ERR_CELL_REFERENCE_MISSING_CELL = "Missing cell `%s` for the specified range `%s`".freeze
322
+
323
+ # Regex to match forbidden control characters
324
+ # The following will be automatically stripped from worksheets.
325
+ #
326
+ # x00 Null
327
+ # x01 Start Of Heading
328
+ # x02 Start Of Text
329
+ # x03End Of Text
330
+ # x04 End Of Transmission
331
+ # x05 Enquiry
332
+ # x06 Acknowledge
333
+ # x07 Bell
334
+ # x08 Backspace
335
+ # x0B Line Tabulation
336
+ # x0C Form Feed
337
+ # x0E Shift Out
338
+ # x0F Shift In
339
+ # x10 Data Link Escape
340
+ # x11 Device Control One
341
+ # x12 Device Control Two
342
+ # x13 Device Control Three
343
+ # x14 Device Control Four
344
+ # x15 Negative Acknowledge
345
+ # x16 Synchronous Idle
346
+ # x17 End Of Transmission Block
347
+ # x18 Cancel
348
+ # x19 End Of Medium
349
+ # x1A Substitute
350
+ # x1B Escape
351
+ # x1C Information Separator Four
352
+ # x1D Information Separator Three
353
+ # x1E Information Separator Two
354
+ # x1F Information Separator One
355
+ #
356
+ # The following are not dealt with.
357
+ # If you have this in your data, expect excel to blow up!
358
+ #
359
+ # x7F Delete
360
+ # x80 Control 0080
361
+ # x81 Control 0081
362
+ # x82 Break Permitted Here
363
+ # x83 No Break Here
364
+ # x84 Control 0084
365
+ # x85 Next Line (Nel)
366
+ # x86 Start Of Selected Area
367
+ # x87 End Of Selected Area
368
+ # x88 Character Tabulation Set
369
+ # x89 Character Tabulation With Justification
370
+ # x8A Line Tabulation Set
371
+ # x8B Partial Line Forward
372
+ # x8C Partial Line Backward
373
+ # x8D Reverse Line Feed
374
+ # x8E Single Shift Two
375
+ # x8F Single Shift Three
376
+ # x90 Device Control String
377
+ # x91 Private Use One
378
+ # x92 Private Use Two
379
+ # x93 Set Transmit State
380
+ # x94 Cancel Character
381
+ # x95 Message Waiting
382
+ # x96 Start Of Guarded Area
383
+ # x97 End Of Guarded Area
384
+ # x98 Start Of String
385
+ # x99 Control 0099
386
+ # x9A Single Character Introducer
387
+ # x9B Control Sequence Introducer
388
+ # x9C String Terminator
389
+ # x9D Operating System Command
390
+ # x9E Privacy Message
391
+ # x9F Application Program Command
392
+ #
393
+ # The following are allowed:
394
+ #
395
+ # x0A Line Feed (Lf)
396
+ # x0D Carriage Return (Cr)
397
+ # x09 Character Tabulation
398
+ # @see http://www.codetable.net/asciikeycodes
399
+ pattern = "\x0-\x08\x0B\x0C\x0E-\x1F"
400
+ pattern = pattern.respond_to?(:encode) ? pattern.encode('UTF-8') : pattern
401
+
402
+ # The regular expression used to remove control characters from worksheets
403
+ CONTROL_CHARS = pattern.freeze
404
+
405
+ # ISO 8601 date recognition
406
+ 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
407
+
408
+ # FLOAT recognition
409
+ SAFE_FLOAT_REGEX = /\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]{1,2})?\Z/.freeze
410
+ MAYBE_FLOAT_REGEX = /\A[-+]?[0-9]*\.?[0-9]+[eE](?<exp>[-+]?[0-9]{3})\Z/.freeze
411
+
412
+ # Numeric recognition
413
+ NUMERIC_REGEX = /\A[+-]?\d+?\Z/.freeze
414
+ end