caxlsx 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
data/CHANGELOG.md CHANGED
@@ -1,354 +1,385 @@
1
- CHANGELOG
2
- ---------
3
-
4
- - **Unreleased**
5
-
6
- - **February.23.22**: 3.2.0
7
- - [PR #75](https://github.com/caxlsx/caxlsx/pull/85) - Added manageable markers for scatter series
8
- - [PR #116](https://github.com/caxlsx/caxlsx/pull/116) - Validate name option to be non-empty string when passed.
9
- - [PR #117](https://github.com/caxlsx/caxlsx/pull/117) - Allow passing an Array of border hashes to the `border` style. Change previous behaviour where `border_top`, `border_*` styles would not be applied unless `border` style was also defined.
10
- - [PR #122](https://github.com/caxlsx/caxlsx/pull/122) - Improve error messages when incorrect ranges are provided to `Worksheet#[]`
11
- - [PR #123](https://github.com/caxlsx/caxlsx/pull/123) - Fix invalid xml when pivot table created with more than one column in data field. Solves [Issue #110](https://github.com/caxlsx/caxlsx/issues/110)
12
- - [PR #127](https://github.com/caxlsx/caxlsx/pull/127) - Possibility to configure the calculation of the autowidth mechanism with `font_scale_divisor` and `bold_font_multiplier`. Example: [Fine tuned autowidth](examples/fine_tuned_autowidth_example.md)
13
-
14
- - **September.22.21**: 3.1.1
15
- - [PR #107](https://github.com/caxlsx/caxlsx/pull/107) - Add overlap to bar charts
16
- - [PR #108](https://github.com/caxlsx/caxlsx/pull/108) - Fix gap depth and gap depth validators for bar charts and 3D bar charts
17
- - [PR #94](https://github.com/caxlsx/caxlsx/pull/94) - Major performance improvement for charts with large amounts of data
18
-
19
- - **March.27.21**: 3.1.0
20
- - [PR #95](https://github.com/caxlsx/caxlsx/pull/95) - Replace mimemagic with marcel
21
- - [PR #87](https://github.com/caxlsx/caxlsx/pull/87) - Implement :offset option for worksheet#add_row
22
- - [PR #79](https://github.com/caxlsx/caxlsx/pull/79) - Add support for format in pivot tables
23
- - [PR #77](https://github.com/caxlsx/caxlsx/pull/77) - Fix special characters in table header
24
- - [PR #57](https://github.com/caxlsx/caxlsx/pull/57) - Deprecate using #serialize with boolean argument: Calls like `Package#serialize("name.xlsx", false)` should be replaced with `Package#serialize("name.xlsx", confirm_valid: false)`.
25
-
26
- - **January.5.21**: 3.0.4
27
- - [PR #72](https://github.com/caxlsx/caxlsx/pull/72) - Relax Ruby dependency to allow for Ruby 3. This required Travis to be upgraded from Ubuntu Trusty to Ubuntu Bionic. rbx-3 was dropped.
28
- - [PR #71](https://github.com/caxlsx/caxlsx/pull/71) - Adds date type to validator so sheet.add_data_validation works with date type. Addresses [I #26](https://github.com/caxlsx/caxlsx/issues/26) - Date Data Validation not working
29
- - [PR #70](https://github.com/caxlsx/caxlsx/pull/70) - Fix worksheet title length enforcement caused by switching from size to bytesize. Addresses [I #67](https://github.com/caxlsx/caxlsx/issues/67) - character length error in worksheet name when using Japanese, which was introduced by addressing [I #588](https://github.com/randym/axlsx/issues/588) in the old Axlsx repo.
30
-
31
-
32
- - **December.7.20**: 3.0.3
33
- - [PR #62](https://github.com/caxlsx/caxlsx/pull/62) - Fix edge cases in format detection for objects whose string representation made them look like numbers but the object didn’t respond to `#to_i` or `#to_f`.
34
- - [PR #56](https://github.com/caxlsx/caxlsx/pull/56) - Add `zip_command` option to `#serialize` for faster serialization of large Excel files by using a zip binary
35
- - [PR #54](https://github.com/caxlsx/caxlsx/pull/54) - Fix type detection for floats with out-of-rage exponents
36
- - [I #67](https://github.com/caxlsx/caxlsx/issues/67) - Fix regression in worksheet name length enforcement: Some unicode characters were counted incorrectly, so that names that previously worked fine now stopped working. (This was introduced in 3.0.2)
37
-
38
- - **July.16.20**: 3.0.2
39
- - [I #51](https://github.com/caxlsx/caxlsx/issues/51) - Images do not import on Windows. IO read set explicitly to binary mode.
40
- - [PR #53](https://github.com/caxlsx/caxlsx/pull/53) - Limit column width to 255. Maximum column width limit in MS Excel is 255 characters, see https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3
41
- - [PR #44](https://github.com/caxlsx/caxlsx/pull/44) - Improve cell autowidth calculations. Previously columns with undefined/auto width would tend to be just slightly too small for the content. This is because certain letters were being excluded from the width calculation because they were deemed not wide enough. We now treat all characters as equal width which helps ensure columns auto-widths are actually large enough for the content. This will gain us a very slight performance improvement because of we are no longer searching the string for specific characters.
42
-
43
- - **October.4.19**: 3.0.1
44
- - Support for ruby versions limited to officially supported version (Ruby v2.3+)
45
- - Updates to dependency gems, especially nokogiri and ruby-zip
46
- - Fix Relationship.instances cache
47
- - Autoload fix for Rails
48
-
49
- - **October.4.19**: 2.0.2
50
- - Released as caxlsx, fork of axlsx
51
- - Update ruby-zip dependency (fixes https://github.com/randym/axlsx/issues/536)
52
-
53
- - **September.17.19**: 3.0.0
54
- - First release of caxlsx, fork of axlsx
55
-
56
- - **April.1.17**: 3.0.0-pre
57
- - Support for ruby versions limited to officially supported version
58
- - Updates to dependency gems, especially nokogiri and ruby-zip
59
- - Patch options parsing for two cell anchor
60
- - Remove support for depreciated worksheet members
61
- - Added Cell#name so you you can quickly create a defined name for a single cell in your workbook.
62
- - Added full book view and sheet state management. This means you can specify how the workbook renders as well as manage sheet visibility.
63
- - Added smoothing management for line charts series
64
-
65
- - **September.12.13**: 2.0.1
66
- - Unpinned rubyzip version
67
-
68
- - **September.12.13**: 2.0.0
69
- - DROPPED support for ruby 1.8.7
70
- - Altered readme to link to contributors
71
- - Lots of improvements to make charts and relations more stable.
72
- - Patched color param mutation.
73
- - Data sourced for pivot tables can now come from other sheets.
74
- - Altered image file extension comparisons to be case insensitive.
75
- - Added control character sanitization to shared strings.
76
- - Added page breaks. see examples/example.rb for an example.
77
- - Bugfix: single to dual cell anchors for images now swap properly so you can set the end_at position during instantiation, in a block or directly on the image.
78
- - Improved how we convert date/time to include the UTC offset when provided.
79
- - Pinned rubyzip to 0.9.9 for those who are not ready to go up. Please note that release 2.0.1 and on will be using the 1.n.n series of rubyzip
80
- - Bugfix: transposition of cells for Worksheet#cols now supports
81
- incongruent column counts.counts
82
- - Added space preservation for cell text. This will allow whitespace
83
- in cell text both when using shared strings and when serializing
84
- directly to the cell.
85
-
86
- - **April.24.13**: 1.3.6
87
- - Fixed LibreOffice/OpenOffice issue to properly apply colors to lines
88
- in charts.
89
- - Added support for specifying between/notBetween formula in an array.
90
- *thanks* straydogstudio!
91
- - Added standard line chart support. *thanks* scambra
92
- - Fixed straydogstudio's link in the README. *thanks* nogara!
93
-
94
- - **February.4.13**: 1.3.5
95
- - converted vary_colors for chart data to instance variable with appropriate defulats for the various charts.
96
- - Added trust_input method on Axlsx to instruct the serializer to skip HTML escaping. This will give you a tremendous performance boost,
97
- Please be sure that you will never have <, >, etc in your content or the XML will be invalid.
98
- - Rewrote cell serialization to improve performance
99
- - Added iso_8601 type to support text based date and time management.
100
- - Bug fix for relationship management in drawings when you add images
101
- and charts to the same worksheet drawing.
102
- - Added outline_level_rows and outline_level_columns to worksheet to simplify setting up outlining in the worksheet.
103
- - Added support for pivot tables
104
- - Added support for descrete border edge styles
105
- - Improved validation of sheet names
106
- - Added support for formula value caching so that iOS and OSX preview can show the proper values. See Cell.add_row and the formula_values option.
107
-
108
- - **November.25.12**: 1.3.4
109
- - Support for headers and footers for worksheets
110
- - bug fix: Properly escape hyperlink urls
111
- - Improvements in color_scale generation for conditional formatting
112
- - Improvements in autowidth calculation.
113
-
114
- - **November.8.12**: 1.3.3
115
- - Patched cell run styles for u and validation for family
116
-
117
- - **November.5.12**: 1.3.2
118
- - MASSIVE REFACTORING
119
- - Patch for apostrophes in worksheet names
120
- - added sheet_by_name for workbook so you can now find your worksheets
121
- by name
122
- - added insert_worksheet so you can now add a worksheet to an
123
- arbitrary position in the worksheets list.
124
- - reduced memory consumption for package parts post serialization
125
-
126
- - **September.30.12**: 1.3.1
127
- - Improved control character handling
128
- - Added stored auto filter values and date grouping items
129
- - Improved support for autowidth when custom styles are applied
130
- - Added support for table style info that lets you take advantage of
131
- all the predefined table styles.
132
- - Improved style management for fonts so they merge undefined values
133
- from the initial master.
134
-
135
- - **September.8.12**: 1.2.3
136
- - enhance exponential float/bigdecimal values rendering as strings intead
137
- of 'numbers' in excel.
138
- - added support for :none option on chart axis labels
139
- - added support for paper_size option on worksheet.page_setup
140
-
141
- - **August.27.12**: 1.2.2
142
- - minor patch for auto-filters
143
- - minor documentation improvements.
144
-
145
- - **August.12.12**: 1.2.1
146
- - Add support for hyperlinks in worksheets
147
- - Fix example that was using old style cell merging with concact.
148
- - Fix bug that occurs when calculating the font_size for cells that use a user specified style which does not define sz
149
-
150
- - **August.5.12**: 1.2.0
151
- - rebuilt worksheet serialization to clean up the code base a bit.
152
- - added data labels for charts
153
- - added table header printing for each sheet via defined_name. This
154
- means that when you print your worksheet, the header rows show for every page
155
-
156
- - **July.??.12**: 1.1.9
157
- - lots of code clean up for worksheet
158
- - added in data labels for pie charts, line charts and bar charts.
159
- - bugfix chard with data in a sheet that has a space in the name are
160
- now auto updating formula based values
161
-
162
- - **July.14.12**: 1.1.8
163
- - added html entity encoding for sheet names. This allows you to use
164
- characters like '<' and '&' in your sheet names.
165
- - new - first round google docs interoperability
166
- - added filter to strip out control characters from cell data.
167
- - added in interop requirements so that charts are properly exported
168
- to PDF from Libra Office
169
- - various readability improvements and work standardizing attribute
170
- names to snake_case. Aliases are provided for backward compatiblity
171
-
172
- - **June.11.12**: 1.1.7
173
- - fix chart rendering issue when label offset is specified as a
174
- percentage in serialization and ensure that formula are not stored
175
- in value caches
176
- - fix bug that causes repair warnings when using a text only title reference.
177
- - Add title property to axis so you can lable the x/y/series axis for
178
- charts.
179
- - Add sheet views with panes
180
-
181
- - **May.30.12**: 1.1.6
182
- - data protection with passwords for sheets
183
- - cell level input validators
184
- - added support for two cell anchors for images
185
- - test coverage now back up to 100%
186
- - bugfix for merge cell sorting algorithm
187
- - added fit_to method for page_setup to simplify managing witdh/height
188
- - added ph (phonetics) and s (style) attributes for row.
189
- - resolved all warnings generating from this gem.
190
- - improved comment relationship management for multiple comments
191
-
192
- - **May.13.12**: 1.1.5
193
- - MOAR print options! You can now specify paper size, orientation,
194
- fit to width, page margings and gridlines for printing.
195
- - Support for adding comments to your worksheets
196
- - bugfix for applying style to empty cells
197
- - bugfix for parsing formula with multiple '='
198
-
199
- - **May.3.12:**: 1.1.4
200
- - MOAR examples
201
- - added outline level for rows and columns
202
- - rebuild of numeric and axis data sources for charts
203
- - added delete to axis
204
- - added tick and label mark skipping for cat axis in charts
205
- - bugfix for table headers method
206
- - sane(er) defaults for chart positioning
207
- - bugfix in val_axis_data to properly serialize value axis data. Excel does not mind as it reads from the sheet, but nokogiri has a fit if the elements are empty.
208
- - Added support for specifying the color of data series in charts.
209
- - bugfix using add_cell on row mismanaged calls to update_column_info.
210
-
211
- - **April.25.12:**: 1.1.3
212
- - Primarily because I am stupid.....Updates to readme to properly report version, add in missing docs and restructure example directory.
213
-
214
- - **April.25.12:**: 1.1.2
215
- - Conditional Formatting completely implemented.
216
- - refactoring / documentation for Style#add_style
217
- - added in label rotation for chart axis labels
218
- - bugfix to properly assign style and type info to cells when only partial information is provided in the types/style option
219
-
220
- - **April.18.12**: 1.1.1
221
- - bugfix for autowidth calculations across multiple rows
222
- - bugfix for dimension calculations with nil cells.
223
- - REMOVED RMAGICK dependency WOOT!
224
- - Update readme to show screenshot of gem output.
225
- - Cleanup benchmark and add benchmark rake task
226
-
227
- - **April.3.12**: 1.1.0
228
- - bugfix patch name_to_indecies to properly handle extended ranges.
229
- - bugfix properly serialize chart title.
230
- - lower rake minimum requirement for 1.8.7 apps that don't want to move on to 0.9 NOTE this will be reverted for 2.0.0 with workbook parsing!
231
- - Added Fit to Page printing
232
- - added support for turning off gridlines in charts.
233
- - added support for turning off gridlines in worksheet.
234
- - bugfix some apps like libraoffice require apply[x] attributes to be true. applyAlignment is now properly set.
235
- - added option use_autowidth. When this is false RMagick will not be loaded or used in the stack. However it is still a requirement in the gem.
236
- - added border style specification to styles#add_style. See the example in the readme.
237
- - Support for tables added in - Note: Pre 2011 versions of Mac office do not support this feature and will warn.
238
- - Support for splatter charts added
239
- - Major (like 7x faster!) performance updates.
240
- - Gem now supports for JRuby 1.6.7, as well as experimental support for Rubinius
241
-
242
- - **March.5.12**: 1.0.18
243
- https://github.com/randym/axlsx/compare/1.0.17...1.0.18
244
- - bugfix custom borders are not properly applied when using styles.add_style
245
- - interop worksheet names must be 31 characters or less or some versions of office complain about repairs
246
- - added type support for :boolean and :date types cell values
247
- - added support for fixed column widths
248
- - added support for page_margins
249
- - added << alias for add_row
250
- - removed presetting of date1904 based on authoring platform. Now defaults to use 1900 epoch (date1904 = false)
251
-
252
- - **February.14.12**: 1.0.17
253
- https://github.com/randym/axlsx/compare/1.0.16...1.0.17
254
- - Added in support for serializing to StringIO
255
- - Added in support for using shared strings table. This makes most of the features in axlsx interoperable with iWorks Numbers
256
- - Added in support for fixed column_widths
257
- - Removed unneeded dependencies on active-support and i18n
258
-
259
- - **February.2.12**: 1.0.16
260
- https://github.com/randym/axlsx/compare/1.0.15...1.0.16
261
- - Bug fix for schema file locations when validating in rails
262
- - Added hyperlink to images
263
- - date1904 now automatically set in BSD and mac environments
264
- - removed whitespace/indentation from xml outputs
265
- - col_style now skips rows that do not contain cells at the column index
266
-
267
- - **January.6.12**: 1.0.15
268
- https://github.com/randym/axlsx/compare/1.0.14...1.0.15
269
- - Bug fix add_style specified number formats must be explicity applied for libraOffice
270
- - performance improvements from ochko when creating cells with options.
271
- - Bug fix setting types=>[:n] when adding a row incorrectly determines the cell type to be string as the value is null during creation.
272
- - Release in preparation for password protection merge
273
-
274
- - **December.14.11**: 1.0.14
275
- - Added support for merging cells
276
- - Added support for auto filters
277
- - Improved auto width calculations
278
- - Improved charts
279
- - Updated examples to output to a single workbook with multiple sheets
280
- - Added access to app and core package objects so you can set the creator and other properties of the package
281
- - The beginning of password protected xlsx files - roadmapped for January release.
282
-
283
- - **December.8.11**: 1.0.13
284
- - Fixing .gemspec errors that caused gem to miss the lib directory. Sorry about that.
285
-
286
- - **December.7.11**: 1.0.12
287
- DO NOT USE THIS VERSION = THE GEM IS BROKEN
288
- - changed dependency from 'zip' gem to 'rubyzip' and added conditional code to force binary encoding to resolve issue with excel 2011
289
- - Patched bug in app.xml that would ignore user specified properties.
290
- - **December.5.11**: 1.0.11
291
- - Added [] methods to worksheet and workbook to provide name based access to cells.
292
- - Added support for functions as cell values
293
- - Updated color creation so that two character shorthand values can be used like 'FF' for 'FFFFFFFF' or 'D8' for 'FFD8D8D8'
294
- - Examples for all this fun stuff added to the readme
295
- - Clean up and support for 1.9.2 and travis integration
296
- - Added support for string based cell referencing to chart start_at and end_at. That means you can now use :start_at=>"A1" when using worksheet.add_chart, or chart.start_at ="A1" in addition to passing a cell or the x, y coordinates.
297
-
298
- - **October.30.11**: 1.0.10
299
- - Updating gemspec to lower gem version requirements.
300
- - Added row.style assignation for updating the cell style for an entire row
301
- - Added col_style method to worksheet upate a the style for a column of cells
302
- - Added cols for an easy reference to columns in a worksheet.
303
- - prep for pre release of acts_as_xlsx gem
304
- - added in travis.ci configuration and build status
305
- - fixed out of range bug in time calculations for 32bit time.
306
- - added i18n for active support
307
-
308
- - **October.26.11**: 1.0.9
309
- - Updated to support ruby 1.9.3
310
- - Updated to eliminate all warnings originating in this gem
311
-
312
- - **October.23.11**: 1.0.8
313
- - Added support for images (jpg, gif, png) in worksheets.
314
-
315
- - **October.23.11**: 1.0.7 released
316
- - Added support for 3D options when creating a new chart. This lets you set the persective, rotation and other 3D attributes when using worksheet.add_chart
317
- - Updated serialization write test to verify write permissions and warn if it cannot run the test due to permission restrcitions.
318
- - updated rake to include build, genoc and deploy tasks.
319
- - rebuilt documentation.
320
- - moved version constant to its own file
321
- - fixed bug in SerAxis that was requiring tickLblSkip and tickMarkSkip to be boolean. Should be unsigned int.
322
- - Review and improve docs
323
- - rebuild of anchor positioning to remove some spagetti code. Chart now supports a start_at and end_at method that accept an arrar for col/row positioning. See example6 for an example. You can still pass :start_at and :end_at options to worksheet.add_chart.
324
- - Refactored cat and val axis data to keep series serialization a bit more DRY
325
-
326
- - **October.22.11**: 1.0.6
327
- - Bumping version to include docs. Bug in gemspec pointing to incorrect directory.
328
-
329
- - **October.22.11**: 1.05
330
- - Added support for line charts
331
- - Updated examples and readme
332
- - Updated series title to be a real title ** NOTE ** If you are accessing titles directly you will need to update text assignation.
333
- chart.series.first.title = 'Your Title'
334
- chart.series.first.title.text = 'Your Title'
335
- With this change you can assign a cell for the series title
336
- chart.series.title = sheet.rows.first.cells.first
337
- If you are using the recommended
338
- chart.add_series :data=>[], :labels=>[], :title
339
- You do not have to change anything.
340
- - BugFix: shape attribute for bar chart is now properly serialized
341
- - BugFix: date1904 property now properly set for charts
342
- - Added style property to charts
343
- - Removed serialization write test as it most commonly fails when run from the gem's intalled directory
344
-
345
- - **October.21.11**: 1.0.4
346
- - altered package to accept a filename string for serialization instead of a File object.
347
- - Updated specs to conform
348
- - More examples for readme
349
-
350
-
351
- - **October.21.11**: 1.0.3
352
- - Updated documentation
353
-
354
- - **October.20.11**: 0.1.0
1
+ CHANGELOG
2
+ ---------
3
+ - **Unreleased**
4
+
5
+ - **October.21.22**: 3.3.0
6
+ - [PR #168](https://github.com/caxlsx/caxlsx/pull/168) - Merge in the gem [`axlsx_styler`](https://github.com/axlsx-styler-gem/axlsx_styler)
7
+ - Add ability to both apply or append to existing styles after rows have been created using `worksheet.add_style`
8
+ - `worksheet.add_style "A1", {b: true}`
9
+ - `worksheet.add_style "A1:B2", {b: true}`
10
+ - `worksheet.add_style ["A1", "B2:C7", "D8:E9"], {b: true}`
11
+ - Add ability to create borders upon specific areas of the page using `worksheet.add_border`
12
+ - `worksheet.add_border "A1", {style: :thin}`
13
+ - `worksheet.add_border "A1:B2", {style: :thin}`
14
+ - `worksheet.add_border ["A1", "B2:C7", "D8:E9"], {style: :thin}`
15
+ - Add `Axlsx::BorderCreator` the class used under the hood for `worksheet.add_border`
16
+ - Allow specifying `:all` in `border: {edges: :all}` which is a shortcut for `border: {edges: [:left, :right, :top, :bottom]}`
17
+ - [PR #156](https://github.com/caxlsx/caxlsx/pull/156) - Prevent Excel from crashing when multiple data columns added to PivotTable
18
+ - [PR #155](https://github.com/caxlsx/caxlsx/pull/155) - Add `hideDropDown` alias for `showDropDown` setting, as the latter is confusing to use (because its logic seems inverted).
19
+ - [PR #143](https://github.com/caxlsx/caxlsx/pull/143) - Add setting `sort_on_headers` for pivot tables
20
+ - [PR #132](https://github.com/caxlsx/caxlsx/pull/132) - Remove monkey patch from Object#instance_values
21
+ - [PR #139](https://github.com/caxlsx/caxlsx/pull/139) - Sort archive entries for correct MIME detection with `file` command
22
+ - [PR #140](https://github.com/caxlsx/caxlsx/pull/140) - Update gemspec to recent styles - it reduced the size of the gem
23
+ - [PR #147](https://github.com/caxlsx/caxlsx/pull/147) - Implement “rounded corners” setting for charts.
24
+ - [PR #145](https://github.com/caxlsx/caxlsx/pull/145) - Implement “plot visible only” setting for charts.
25
+ - [PR #144](https://github.com/caxlsx/caxlsx/pull/144) - Completely hide chart titles if blank; Fix missing cell reference for chart title when cell empty.
26
+
27
+ - **February.23.22**: 3.2.0
28
+ - [PR #75](https://github.com/caxlsx/caxlsx/pull/85) - Added manageable markers for scatter series
29
+ - [PR #116](https://github.com/caxlsx/caxlsx/pull/116) - Validate name option to be non-empty string when passed.
30
+ - [PR #117](https://github.com/caxlsx/caxlsx/pull/117) - Allow passing an Array of border hashes to the `border` style. Change previous behaviour where `border_top`, `border_*` styles would not be applied unless `border` style was also defined.
31
+ - [PR #122](https://github.com/caxlsx/caxlsx/pull/122) - Improve error messages when incorrect ranges are provided to `Worksheet#[]`
32
+ - [PR #123](https://github.com/caxlsx/caxlsx/pull/123) - Fix invalid xml when pivot table created with more than one column in data field. Solves [Issue #110](https://github.com/caxlsx/caxlsx/issues/110)
33
+ - [PR #127](https://github.com/caxlsx/caxlsx/pull/127) - Possibility to configure the calculation of the autowidth mechanism with `font_scale_divisor` and `bold_font_multiplier`. Example: [Fine tuned autowidth](examples/fine_tuned_autowidth_example.md)
34
+ - [PR #85](https://github.com/caxlsx/caxlsx/pull/85) - Manageable markers for scatter series
35
+ - [PR #120](https://github.com/caxlsx/caxlsx/pull/120) - Return output stream in binmode
36
+
37
+ - **September.22.21**: 3.1.1
38
+ - [PR #107](https://github.com/caxlsx/caxlsx/pull/107) - Add overlap to bar charts
39
+ - [PR #108](https://github.com/caxlsx/caxlsx/pull/108) - Fix gap depth and gap depth validators for bar charts and 3D bar charts
40
+ - [PR #94](https://github.com/caxlsx/caxlsx/pull/94) - Major performance improvement for charts with large amounts of data
41
+ - [PR #81](https://github.com/caxlsx/caxlsx/pull/81) - Add option to define a color for the BarSeries
42
+
43
+ - **March.27.21**: 3.1.0
44
+ - [PR #95](https://github.com/caxlsx/caxlsx/pull/95) - Replace mimemagic with marcel
45
+ - [PR #87](https://github.com/caxlsx/caxlsx/pull/87) - Implement :offset option for worksheet#add_row
46
+ - [PR #79](https://github.com/caxlsx/caxlsx/pull/79) - Add support for format in pivot tables
47
+ - [PR #77](https://github.com/caxlsx/caxlsx/pull/77) - Fix special characters in table header
48
+ - [PR #57](https://github.com/caxlsx/caxlsx/pull/57) - Deprecate using #serialize with boolean argument: Calls like `Package#serialize("name.xlsx", false)` should be replaced with `Package#serialize("name.xlsx", confirm_valid: false)`.
49
+ - [PR #78](https://github.com/caxlsx/caxlsx/pull/78) - Fix special characters in pivot table cache definition
50
+ - [PR #84](https://github.com/caxlsx/caxlsx/pull/84) - Add JRuby 9.2 to the CI
51
+
52
+ - **January.5.21**: 3.0.4
53
+ - [PR #72](https://github.com/caxlsx/caxlsx/pull/72) - Relax Ruby dependency to allow for Ruby 3. This required Travis to be upgraded from Ubuntu Trusty to Ubuntu Bionic. rbx-3 was dropped.
54
+ - [PR #71](https://github.com/caxlsx/caxlsx/pull/71) - Adds date type to validator so sheet.add_data_validation works with date type. Addresses [I #26](https://github.com/caxlsx/caxlsx/issues/26) - Date Data Validation not working
55
+ - [PR #70](https://github.com/caxlsx/caxlsx/pull/70) - Fix worksheet title length enforcement caused by switching from size to bytesize. Addresses [I #67](https://github.com/caxlsx/caxlsx/issues/67) - character length error in worksheet name when using Japanese, which was introduced by addressing [I #588](https://github.com/randym/axlsx/issues/588) in the old Axlsx repo.
56
+
57
+
58
+ - **December.7.20**: 3.0.3
59
+ - [PR #62](https://github.com/caxlsx/caxlsx/pull/62) - Fix edge cases in format detection for objects whose string representation made them look like numbers but the object didn’t respond to `#to_i` or `#to_f`.
60
+ - [PR #56](https://github.com/caxlsx/caxlsx/pull/56) - Add `zip_command` option to `#serialize` for faster serialization of large Excel files by using a zip binary
61
+ - [PR #54](https://github.com/caxlsx/caxlsx/pull/54) - Fix type detection for floats with out-of-rage exponents
62
+ - [I #67](https://github.com/caxlsx/caxlsx/issues/67) - Fix regression in worksheet name length enforcement: Some unicode characters were counted incorrectly, so that names that previously worked fine now stopped working. (This was introduced in 3.0.2)
63
+ - [I #58](https://github.com/caxlsx/caxlsx/issues/58) - Fix explosion for pie chart throwing error
64
+ - [PR #60](https://github.com/caxlsx/caxlsx/pull/60) - Add Ruby 2.7 to the CI
65
+ - [PR #47](https://github.com/caxlsx/caxlsx/pull/47) - Restructure examples folder
66
+
67
+ - **July.16.20**: 3.0.2
68
+ - [I #51](https://github.com/caxlsx/caxlsx/issues/51) - Images do not import on Windows. IO read set explicitly to binary mode.
69
+ - [PR #53](https://github.com/caxlsx/caxlsx/pull/53) - Limit column width to 255. Maximum column width limit in MS Excel is 255 characters, see https://support.microsoft.com/en-us/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3
70
+ - [PR #44](https://github.com/caxlsx/caxlsx/pull/44) - Improve cell autowidth calculations. Previously columns with undefined/auto width would tend to be just slightly too small for the content. This is because certain letters were being excluded from the width calculation because they were deemed not wide enough. We now treat all characters as equal width which helps ensure columns auto-widths are actually large enough for the content. This will gain us a very slight performance improvement because of we are no longer searching the string for specific characters.
71
+ - [PR #40](https://github.com/caxlsx/caxlsx/pull/40) - Escape special characters in charts
72
+ - [PR #34](https://github.com/caxlsx/caxlsx/pull/34) - Add option to protect against csv injection attacks
73
+
74
+ - **October.4.19**: 3.0.1
75
+ - Support for ruby versions limited to officially supported version (Ruby v2.3+)
76
+ - Updates to dependency gems, especially nokogiri and ruby-zip
77
+ - Fix Relationship.instances cache
78
+ - Autoload fix for Rails
79
+
80
+ - **October.4.19**: 2.0.2
81
+ - Released as caxlsx, fork of axlsx
82
+ - Update ruby-zip dependency (fixes https://github.com/randym/axlsx/issues/536)
83
+
84
+ - **September.17.19**: 3.0.0
85
+ - First release of caxlsx, fork of axlsx
86
+
87
+ - **April.1.17**: 3.0.0-pre
88
+ - Support for ruby versions limited to officially supported version
89
+ - Updates to dependency gems, especially nokogiri and ruby-zip
90
+ - Patch options parsing for two cell anchor
91
+ - Remove support for depreciated worksheet members
92
+ - Added Cell#name so you you can quickly create a defined name for a single cell in your workbook.
93
+ - Added full book view and sheet state management. This means you can specify how the workbook renders as well as manage sheet visibility.
94
+ - Added smoothing management for line charts series
95
+
96
+ - **September.12.13**: 2.0.1
97
+ - Unpinned rubyzip version
98
+
99
+ - **September.12.13**: 2.0.0
100
+ - DROPPED support for ruby 1.8.7
101
+ - Altered readme to link to contributors
102
+ - Lots of improvements to make charts and relations more stable.
103
+ - Patched color param mutation.
104
+ - Data sourced for pivot tables can now come from other sheets.
105
+ - Altered image file extension comparisons to be case insensitive.
106
+ - Added control character sanitization to shared strings.
107
+ - Added page breaks. see examples/example.rb for an example.
108
+ - Bugfix: single to dual cell anchors for images now swap properly so you can set the end_at position during instantiation, in a block or directly on the image.
109
+ - Improved how we convert date/time to include the UTC offset when provided.
110
+ - Pinned rubyzip to 0.9.9 for those who are not ready to go up. Please note that release 2.0.1 and on will be using the 1.n.n series of rubyzip
111
+ - Bugfix: transposition of cells for Worksheet#cols now supports
112
+ incongruent column counts.counts
113
+ - Added space preservation for cell text. This will allow whitespace
114
+ in cell text both when using shared strings and when serializing
115
+ directly to the cell.
116
+
117
+ - **April.24.13**: 1.3.6
118
+ - Fixed LibreOffice/OpenOffice issue to properly apply colors to lines
119
+ in charts.
120
+ - Added support for specifying between/notBetween formula in an array.
121
+ *thanks* straydogstudio!
122
+ - Added standard line chart support. *thanks* scambra
123
+ - Fixed straydogstudio's link in the README. *thanks* nogara!
124
+
125
+ - **February.4.13**: 1.3.5
126
+ - converted vary_colors for chart data to instance variable with appropriate defulats for the various charts.
127
+ - Added trust_input method on Axlsx to instruct the serializer to skip HTML escaping. This will give you a tremendous performance boost,
128
+ Please be sure that you will never have <, >, etc in your content or the XML will be invalid.
129
+ - Rewrote cell serialization to improve performance
130
+ - Added iso_8601 type to support text based date and time management.
131
+ - Bug fix for relationship management in drawings when you add images
132
+ and charts to the same worksheet drawing.
133
+ - Added outline_level_rows and outline_level_columns to worksheet to simplify setting up outlining in the worksheet.
134
+ - Added support for pivot tables
135
+ - Added support for descrete border edge styles
136
+ - Improved validation of sheet names
137
+ - Added support for formula value caching so that iOS and OSX preview can show the proper values. See Cell.add_row and the formula_values option.
138
+
139
+ - **November.25.12**: 1.3.4
140
+ - Support for headers and footers for worksheets
141
+ - bug fix: Properly escape hyperlink urls
142
+ - Improvements in color_scale generation for conditional formatting
143
+ - Improvements in autowidth calculation.
144
+
145
+ - **November.8.12**: 1.3.3
146
+ - Patched cell run styles for u and validation for family
147
+
148
+ - **November.5.12**: 1.3.2
149
+ - MASSIVE REFACTORING
150
+ - Patch for apostrophes in worksheet names
151
+ - added sheet_by_name for workbook so you can now find your worksheets
152
+ by name
153
+ - added insert_worksheet so you can now add a worksheet to an
154
+ arbitrary position in the worksheets list.
155
+ - reduced memory consumption for package parts post serialization
156
+
157
+ - **September.30.12**: 1.3.1
158
+ - Improved control character handling
159
+ - Added stored auto filter values and date grouping items
160
+ - Improved support for autowidth when custom styles are applied
161
+ - Added support for table style info that lets you take advantage of
162
+ all the predefined table styles.
163
+ - Improved style management for fonts so they merge undefined values
164
+ from the initial master.
165
+
166
+ - **September.8.12**: 1.2.3
167
+ - enhance exponential float/bigdecimal values rendering as strings intead
168
+ of 'numbers' in excel.
169
+ - added support for :none option on chart axis labels
170
+ - added support for paper_size option on worksheet.page_setup
171
+
172
+ - **August.27.12**: 1.2.2
173
+ - minor patch for auto-filters
174
+ - minor documentation improvements.
175
+
176
+ - **August.12.12**: 1.2.1
177
+ - Add support for hyperlinks in worksheets
178
+ - Fix example that was using old style cell merging with concact.
179
+ - Fix bug that occurs when calculating the font_size for cells that use a user specified style which does not define sz
180
+
181
+ - **August.5.12**: 1.2.0
182
+ - rebuilt worksheet serialization to clean up the code base a bit.
183
+ - added data labels for charts
184
+ - added table header printing for each sheet via defined_name. This
185
+ means that when you print your worksheet, the header rows show for every page
186
+
187
+ - **July.??.12**: 1.1.9
188
+ - lots of code clean up for worksheet
189
+ - added in data labels for pie charts, line charts and bar charts.
190
+ - bugfix chard with data in a sheet that has a space in the name are
191
+ now auto updating formula based values
192
+
193
+ - **July.14.12**: 1.1.8
194
+ - added html entity encoding for sheet names. This allows you to use
195
+ characters like '<' and '&' in your sheet names.
196
+ - new - first round google docs interoperability
197
+ - added filter to strip out control characters from cell data.
198
+ - added in interop requirements so that charts are properly exported
199
+ to PDF from Libra Office
200
+ - various readability improvements and work standardizing attribute
201
+ names to snake_case. Aliases are provided for backward compatiblity
202
+
203
+ - **June.11.12**: 1.1.7
204
+ - fix chart rendering issue when label offset is specified as a
205
+ percentage in serialization and ensure that formula are not stored
206
+ in value caches
207
+ - fix bug that causes repair warnings when using a text only title reference.
208
+ - Add title property to axis so you can lable the x/y/series axis for
209
+ charts.
210
+ - Add sheet views with panes
211
+
212
+ - **May.30.12**: 1.1.6
213
+ - data protection with passwords for sheets
214
+ - cell level input validators
215
+ - added support for two cell anchors for images
216
+ - test coverage now back up to 100%
217
+ - bugfix for merge cell sorting algorithm
218
+ - added fit_to method for page_setup to simplify managing witdh/height
219
+ - added ph (phonetics) and s (style) attributes for row.
220
+ - resolved all warnings generating from this gem.
221
+ - improved comment relationship management for multiple comments
222
+
223
+ - **May.13.12**: 1.1.5
224
+ - MOAR print options! You can now specify paper size, orientation,
225
+ fit to width, page margings and gridlines for printing.
226
+ - Support for adding comments to your worksheets
227
+ - bugfix for applying style to empty cells
228
+ - bugfix for parsing formula with multiple '='
229
+
230
+ - **May.3.12:**: 1.1.4
231
+ - MOAR examples
232
+ - added outline level for rows and columns
233
+ - rebuild of numeric and axis data sources for charts
234
+ - added delete to axis
235
+ - added tick and label mark skipping for cat axis in charts
236
+ - bugfix for table headers method
237
+ - sane(er) defaults for chart positioning
238
+ - bugfix in val_axis_data to properly serialize value axis data. Excel does not mind as it reads from the sheet, but nokogiri has a fit if the elements are empty.
239
+ - Added support for specifying the color of data series in charts.
240
+ - bugfix using add_cell on row mismanaged calls to update_column_info.
241
+
242
+ - **April.25.12:**: 1.1.3
243
+ - Primarily because I am stupid.....Updates to readme to properly report version, add in missing docs and restructure example directory.
244
+
245
+ - **April.25.12:**: 1.1.2
246
+ - Conditional Formatting completely implemented.
247
+ - refactoring / documentation for Style#add_style
248
+ - added in label rotation for chart axis labels
249
+ - bugfix to properly assign style and type info to cells when only partial information is provided in the types/style option
250
+
251
+ - **April.18.12**: 1.1.1
252
+ - bugfix for autowidth calculations across multiple rows
253
+ - bugfix for dimension calculations with nil cells.
254
+ - REMOVED RMAGICK dependency WOOT!
255
+ - Update readme to show screenshot of gem output.
256
+ - Cleanup benchmark and add benchmark rake task
257
+
258
+ - **April.3.12**: 1.1.0
259
+ - bugfix patch name_to_indecies to properly handle extended ranges.
260
+ - bugfix properly serialize chart title.
261
+ - lower rake minimum requirement for 1.8.7 apps that don't want to move on to 0.9 NOTE this will be reverted for 2.0.0 with workbook parsing!
262
+ - Added Fit to Page printing
263
+ - added support for turning off gridlines in charts.
264
+ - added support for turning off gridlines in worksheet.
265
+ - bugfix some apps like libraoffice require apply[x] attributes to be true. applyAlignment is now properly set.
266
+ - added option use_autowidth. When this is false RMagick will not be loaded or used in the stack. However it is still a requirement in the gem.
267
+ - added border style specification to styles#add_style. See the example in the readme.
268
+ - Support for tables added in - Note: Pre 2011 versions of Mac office do not support this feature and will warn.
269
+ - Support for splatter charts added
270
+ - Major (like 7x faster!) performance updates.
271
+ - Gem now supports for JRuby 1.6.7, as well as experimental support for Rubinius
272
+
273
+ - **March.5.12**: 1.0.18
274
+ https://github.com/randym/axlsx/compare/1.0.17...1.0.18
275
+ - bugfix custom borders are not properly applied when using styles.add_style
276
+ - interop worksheet names must be 31 characters or less or some versions of office complain about repairs
277
+ - added type support for :boolean and :date types cell values
278
+ - added support for fixed column widths
279
+ - added support for page_margins
280
+ - added << alias for add_row
281
+ - removed presetting of date1904 based on authoring platform. Now defaults to use 1900 epoch (date1904 = false)
282
+
283
+ - **February.14.12**: 1.0.17
284
+ https://github.com/randym/axlsx/compare/1.0.16...1.0.17
285
+ - Added in support for serializing to StringIO
286
+ - Added in support for using shared strings table. This makes most of the features in axlsx interoperable with iWorks Numbers
287
+ - Added in support for fixed column_widths
288
+ - Removed unneeded dependencies on active-support and i18n
289
+
290
+ - **February.2.12**: 1.0.16
291
+ https://github.com/randym/axlsx/compare/1.0.15...1.0.16
292
+ - Bug fix for schema file locations when validating in rails
293
+ - Added hyperlink to images
294
+ - date1904 now automatically set in BSD and mac environments
295
+ - removed whitespace/indentation from xml outputs
296
+ - col_style now skips rows that do not contain cells at the column index
297
+
298
+ - **January.6.12**: 1.0.15
299
+ https://github.com/randym/axlsx/compare/1.0.14...1.0.15
300
+ - Bug fix add_style specified number formats must be explicity applied for libraOffice
301
+ - performance improvements from ochko when creating cells with options.
302
+ - Bug fix setting types=>[:n] when adding a row incorrectly determines the cell type to be string as the value is null during creation.
303
+ - Release in preparation for password protection merge
304
+
305
+ - **December.14.11**: 1.0.14
306
+ - Added support for merging cells
307
+ - Added support for auto filters
308
+ - Improved auto width calculations
309
+ - Improved charts
310
+ - Updated examples to output to a single workbook with multiple sheets
311
+ - Added access to app and core package objects so you can set the creator and other properties of the package
312
+ - The beginning of password protected xlsx files - roadmapped for January release.
313
+
314
+ - **December.8.11**: 1.0.13
315
+ - Fixing .gemspec errors that caused gem to miss the lib directory. Sorry about that.
316
+
317
+ - **December.7.11**: 1.0.12
318
+ DO NOT USE THIS VERSION = THE GEM IS BROKEN
319
+ - changed dependency from 'zip' gem to 'rubyzip' and added conditional code to force binary encoding to resolve issue with excel 2011
320
+ - Patched bug in app.xml that would ignore user specified properties.
321
+ - **December.5.11**: 1.0.11
322
+ - Added [] methods to worksheet and workbook to provide name based access to cells.
323
+ - Added support for functions as cell values
324
+ - Updated color creation so that two character shorthand values can be used like 'FF' for 'FFFFFFFF' or 'D8' for 'FFD8D8D8'
325
+ - Examples for all this fun stuff added to the readme
326
+ - Clean up and support for 1.9.2 and travis integration
327
+ - Added support for string based cell referencing to chart start_at and end_at. That means you can now use :start_at=>"A1" when using worksheet.add_chart, or chart.start_at ="A1" in addition to passing a cell or the x, y coordinates.
328
+
329
+ - **October.30.11**: 1.0.10
330
+ - Updating gemspec to lower gem version requirements.
331
+ - Added row.style assignation for updating the cell style for an entire row
332
+ - Added col_style method to worksheet upate a the style for a column of cells
333
+ - Added cols for an easy reference to columns in a worksheet.
334
+ - prep for pre release of acts_as_xlsx gem
335
+ - added in travis.ci configuration and build status
336
+ - fixed out of range bug in time calculations for 32bit time.
337
+ - added i18n for active support
338
+
339
+ - **October.26.11**: 1.0.9
340
+ - Updated to support ruby 1.9.3
341
+ - Updated to eliminate all warnings originating in this gem
342
+
343
+ - **October.23.11**: 1.0.8
344
+ - Added support for images (jpg, gif, png) in worksheets.
345
+
346
+ - **October.23.11**: 1.0.7 released
347
+ - Added support for 3D options when creating a new chart. This lets you set the persective, rotation and other 3D attributes when using worksheet.add_chart
348
+ - Updated serialization write test to verify write permissions and warn if it cannot run the test due to permission restrcitions.
349
+ - updated rake to include build, genoc and deploy tasks.
350
+ - rebuilt documentation.
351
+ - moved version constant to its own file
352
+ - fixed bug in SerAxis that was requiring tickLblSkip and tickMarkSkip to be boolean. Should be unsigned int.
353
+ - Review and improve docs
354
+ - rebuild of anchor positioning to remove some spagetti code. Chart now supports a start_at and end_at method that accept an arrar for col/row positioning. See example6 for an example. You can still pass :start_at and :end_at options to worksheet.add_chart.
355
+ - Refactored cat and val axis data to keep series serialization a bit more DRY
356
+
357
+ - **October.22.11**: 1.0.6
358
+ - Bumping version to include docs. Bug in gemspec pointing to incorrect directory.
359
+
360
+ - **October.22.11**: 1.05
361
+ - Added support for line charts
362
+ - Updated examples and readme
363
+ - Updated series title to be a real title ** NOTE ** If you are accessing titles directly you will need to update text assignation.
364
+ chart.series.first.title = 'Your Title'
365
+ chart.series.first.title.text = 'Your Title'
366
+ With this change you can assign a cell for the series title
367
+ chart.series.title = sheet.rows.first.cells.first
368
+ If you are using the recommended
369
+ chart.add_series :data=>[], :labels=>[], :title
370
+ You do not have to change anything.
371
+ - BugFix: shape attribute for bar chart is now properly serialized
372
+ - BugFix: date1904 property now properly set for charts
373
+ - Added style property to charts
374
+ - Removed serialization write test as it most commonly fails when run from the gem's intalled directory
375
+
376
+ - **October.21.11**: 1.0.4
377
+ - altered package to accept a filename string for serialization instead of a File object.
378
+ - Updated specs to conform
379
+ - More examples for readme
380
+
381
+
382
+ - **October.21.11**: 1.0.3
383
+ - Updated documentation
384
+
385
+ - **October.20.11**: 0.1.0