caxlsx 3.2.0 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -9
  3. data/.yardopts_guide +18 -18
  4. data/CHANGELOG.md +394 -354
  5. data/LICENSE +21 -21
  6. data/README.md +184 -168
  7. data/Rakefile +28 -29
  8. data/examples/generate.rb +15 -15
  9. data/lib/axlsx/content_type/abstract_content_type.rb +29 -32
  10. data/lib/axlsx/content_type/content_type.rb +22 -26
  11. data/lib/axlsx/content_type/default.rb +21 -25
  12. data/lib/axlsx/content_type/override.rb +21 -25
  13. data/lib/axlsx/doc_props/app.rb +230 -235
  14. data/lib/axlsx/doc_props/core.rb +34 -39
  15. data/lib/axlsx/drawing/area_chart.rb +96 -99
  16. data/lib/axlsx/drawing/area_series.rb +107 -110
  17. data/lib/axlsx/drawing/ax_data_source.rb +21 -26
  18. data/lib/axlsx/drawing/axes.rb +60 -61
  19. data/lib/axlsx/drawing/axis.rb +185 -190
  20. data/lib/axlsx/drawing/bar_3D_chart.rb +145 -148
  21. data/lib/axlsx/drawing/bar_chart.rb +135 -138
  22. data/lib/axlsx/drawing/bar_series.rb +91 -97
  23. data/lib/axlsx/drawing/bubble_chart.rb +56 -59
  24. data/lib/axlsx/drawing/bubble_series.rb +60 -63
  25. data/lib/axlsx/drawing/cat_axis.rb +80 -85
  26. data/lib/axlsx/drawing/chart.rb +294 -276
  27. data/lib/axlsx/drawing/d_lbls.rb +92 -90
  28. data/lib/axlsx/drawing/drawing.rb +163 -167
  29. data/lib/axlsx/drawing/graphic_frame.rb +51 -54
  30. data/lib/axlsx/drawing/hyperlink.rb +97 -100
  31. data/lib/axlsx/drawing/line_3D_chart.rb +64 -68
  32. data/lib/axlsx/drawing/line_chart.rb +96 -99
  33. data/lib/axlsx/drawing/line_series.rb +107 -110
  34. data/lib/axlsx/drawing/marker.rb +80 -84
  35. data/lib/axlsx/drawing/num_data.rb +47 -52
  36. data/lib/axlsx/drawing/num_data_source.rb +58 -62
  37. data/lib/axlsx/drawing/num_val.rb +31 -34
  38. data/lib/axlsx/drawing/one_cell_anchor.rb +97 -99
  39. data/lib/axlsx/drawing/pic.rb +244 -211
  40. data/lib/axlsx/drawing/picture_locking.rb +39 -42
  41. data/lib/axlsx/drawing/pie_3D_chart.rb +42 -47
  42. data/lib/axlsx/drawing/pie_series.rb +69 -74
  43. data/lib/axlsx/drawing/scaling.rb +57 -60
  44. data/lib/axlsx/drawing/scatter_chart.rb +71 -74
  45. data/lib/axlsx/drawing/scatter_series.rb +126 -129
  46. data/lib/axlsx/drawing/ser_axis.rb +41 -45
  47. data/lib/axlsx/drawing/series.rb +67 -69
  48. data/lib/axlsx/drawing/series_title.rb +23 -25
  49. data/lib/axlsx/drawing/str_data.rb +37 -42
  50. data/lib/axlsx/drawing/str_val.rb +31 -34
  51. data/lib/axlsx/drawing/title.rb +104 -97
  52. data/lib/axlsx/drawing/two_cell_anchor.rb +95 -97
  53. data/lib/axlsx/drawing/val_axis.rb +34 -37
  54. data/lib/axlsx/drawing/view_3D.rb +115 -115
  55. data/lib/axlsx/drawing/vml_drawing.rb +39 -42
  56. data/lib/axlsx/drawing/vml_shape.rb +63 -66
  57. data/lib/axlsx/package.rb +397 -388
  58. data/lib/axlsx/rels/relationship.rb +127 -130
  59. data/lib/axlsx/rels/relationships.rb +29 -32
  60. data/lib/axlsx/stylesheet/border.rb +70 -73
  61. data/lib/axlsx/stylesheet/border_pr.rb +69 -71
  62. data/lib/axlsx/stylesheet/cell_alignment.rb +124 -132
  63. data/lib/axlsx/stylesheet/cell_protection.rb +38 -41
  64. data/lib/axlsx/stylesheet/cell_style.rb +68 -72
  65. data/lib/axlsx/stylesheet/color.rb +77 -76
  66. data/lib/axlsx/stylesheet/dxf.rb +75 -79
  67. data/lib/axlsx/stylesheet/fill.rb +31 -35
  68. data/lib/axlsx/stylesheet/font.rb +157 -156
  69. data/lib/axlsx/stylesheet/gradient_fill.rb +101 -103
  70. data/lib/axlsx/stylesheet/gradient_stop.rb +36 -37
  71. data/lib/axlsx/stylesheet/num_fmt.rb +83 -86
  72. data/lib/axlsx/stylesheet/pattern_fill.rb +71 -73
  73. data/lib/axlsx/stylesheet/styles.rb +543 -494
  74. data/lib/axlsx/stylesheet/table_style.rb +51 -54
  75. data/lib/axlsx/stylesheet/table_style_element.rb +74 -77
  76. data/lib/axlsx/stylesheet/table_styles.rb +42 -46
  77. data/lib/axlsx/stylesheet/xf.rb +144 -147
  78. data/lib/axlsx/util/accessors.rb +62 -64
  79. data/lib/axlsx/util/constants.rb +414 -410
  80. data/lib/axlsx/util/mime_type_utils.rb +24 -11
  81. data/lib/axlsx/util/options_parser.rb +15 -16
  82. data/lib/axlsx/util/serialized_attributes.rb +88 -89
  83. data/lib/axlsx/util/simple_typed_list.rb +180 -179
  84. data/lib/axlsx/util/storage.rb +142 -146
  85. data/lib/axlsx/util/validators.rb +315 -312
  86. data/lib/axlsx/util/zip_command.rb +71 -73
  87. data/lib/axlsx/version.rb +4 -5
  88. data/lib/axlsx/workbook/defined_name.rb +129 -128
  89. data/lib/axlsx/workbook/defined_names.rb +20 -21
  90. data/lib/axlsx/workbook/shared_strings_table.rb +74 -77
  91. data/lib/axlsx/workbook/workbook.rb +430 -395
  92. data/lib/axlsx/workbook/workbook_view.rb +75 -80
  93. data/lib/axlsx/workbook/workbook_views.rb +20 -22
  94. data/lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb +78 -77
  95. data/lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb +94 -94
  96. data/lib/axlsx/workbook/worksheet/auto_filter/filters.rb +243 -244
  97. data/lib/axlsx/workbook/worksheet/border_creator.rb +79 -0
  98. data/lib/axlsx/workbook/worksheet/break.rb +32 -35
  99. data/lib/axlsx/workbook/worksheet/cell.rb +552 -506
  100. data/lib/axlsx/workbook/worksheet/cell_serializer.rb +164 -164
  101. data/lib/axlsx/workbook/worksheet/cfvo.rb +60 -60
  102. data/lib/axlsx/workbook/worksheet/cfvos.rb +16 -18
  103. data/lib/axlsx/workbook/worksheet/col.rb +142 -145
  104. data/lib/axlsx/workbook/worksheet/col_breaks.rb +34 -35
  105. data/lib/axlsx/workbook/worksheet/color_scale.rb +108 -110
  106. data/lib/axlsx/workbook/worksheet/cols.rb +23 -23
  107. data/lib/axlsx/workbook/worksheet/comment.rb +90 -91
  108. data/lib/axlsx/workbook/worksheet/comments.rb +78 -82
  109. data/lib/axlsx/workbook/worksheet/conditional_formatting.rb +81 -82
  110. data/lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb +216 -220
  111. data/lib/axlsx/workbook/worksheet/conditional_formattings.rb +23 -25
  112. data/lib/axlsx/workbook/worksheet/data_bar.rb +127 -129
  113. data/lib/axlsx/workbook/worksheet/data_validation.rb +266 -246
  114. data/lib/axlsx/workbook/worksheet/data_validations.rb +25 -28
  115. data/lib/axlsx/workbook/worksheet/date_time_converter.rb +28 -30
  116. data/lib/axlsx/workbook/worksheet/dimension.rb +65 -64
  117. data/lib/axlsx/workbook/worksheet/header_footer.rb +51 -52
  118. data/lib/axlsx/workbook/worksheet/icon_set.rb +80 -81
  119. data/lib/axlsx/workbook/worksheet/merged_cells.rb +37 -37
  120. data/lib/axlsx/workbook/worksheet/outline_pr.rb +32 -33
  121. data/lib/axlsx/workbook/worksheet/page_margins.rb +97 -97
  122. data/lib/axlsx/workbook/worksheet/page_set_up_pr.rb +42 -44
  123. data/lib/axlsx/workbook/worksheet/page_setup.rb +237 -240
  124. data/lib/axlsx/workbook/worksheet/pane.rb +138 -139
  125. data/lib/axlsx/workbook/worksheet/pivot_table.rb +332 -296
  126. data/lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb +63 -66
  127. data/lib/axlsx/workbook/worksheet/pivot_tables.rb +23 -24
  128. data/lib/axlsx/workbook/worksheet/print_options.rb +38 -39
  129. data/lib/axlsx/workbook/worksheet/protected_range.rb +46 -47
  130. data/lib/axlsx/workbook/worksheet/protected_ranges.rb +37 -37
  131. data/lib/axlsx/workbook/worksheet/rich_text.rb +53 -55
  132. data/lib/axlsx/workbook/worksheet/rich_text_run.rb +266 -250
  133. data/lib/axlsx/workbook/worksheet/row.rb +173 -164
  134. data/lib/axlsx/workbook/worksheet/row_breaks.rb +32 -33
  135. data/lib/axlsx/workbook/worksheet/selection.rb +99 -101
  136. data/lib/axlsx/workbook/worksheet/sheet_calc_pr.rb +28 -29
  137. data/lib/axlsx/workbook/worksheet/sheet_data.rb +25 -27
  138. data/lib/axlsx/workbook/worksheet/sheet_format_pr.rb +18 -18
  139. data/lib/axlsx/workbook/worksheet/sheet_pr.rb +87 -87
  140. data/lib/axlsx/workbook/worksheet/sheet_protection.rb +117 -118
  141. data/lib/axlsx/workbook/worksheet/sheet_view.rb +206 -213
  142. data/lib/axlsx/workbook/worksheet/table.rb +100 -102
  143. data/lib/axlsx/workbook/worksheet/table_style_info.rb +48 -49
  144. data/lib/axlsx/workbook/worksheet/tables.rb +34 -34
  145. data/lib/axlsx/workbook/worksheet/worksheet.rb +857 -786
  146. data/lib/axlsx/workbook/worksheet/worksheet_comments.rb +58 -58
  147. data/lib/axlsx/workbook/worksheet/worksheet_drawing.rb +59 -58
  148. data/lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb +73 -74
  149. data/lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb +38 -38
  150. data/lib/axlsx.rb +218 -185
  151. data/lib/caxlsx.rb +1 -2
  152. data/lib/schema/dc.xsd +118 -118
  153. data/lib/schema/dcmitype.xsd +51 -51
  154. data/lib/schema/dcterms.xsd +331 -331
  155. data/lib/schema/dml-chartDrawing.xsd +146 -146
  156. data/lib/schema/dml-compatibility.xsd +14 -14
  157. data/lib/schema/dml-lockedCanvas.xsd +11 -11
  158. data/lib/schema/dml-main.xsd +3048 -3048
  159. data/lib/schema/dml-picture.xsd +23 -23
  160. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -185
  161. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -185
  162. data/lib/schema/shared-additionalCharacteristics.xsd +28 -28
  163. data/lib/schema/shared-bibliography.xsd +144 -144
  164. data/lib/schema/shared-commonSimpleTypes.xsd +166 -166
  165. data/lib/schema/shared-customXmlDataProperties.xsd +25 -25
  166. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -18
  167. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -59
  168. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -56
  169. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -195
  170. data/lib/schema/shared-relationshipReference.xsd +25 -25
  171. data/lib/schema/vml-main.xsd +569 -569
  172. data/lib/schema/vml-officeDrawing.xsd +509 -509
  173. data/lib/schema/vml-presentationDrawing.xsd +12 -12
  174. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -108
  175. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -96
  176. data/lib/schema/xml.xsd +116 -116
  177. metadata +5 -252
  178. data/test/benchmark.rb +0 -72
  179. data/test/content_type/tc_content_type.rb +0 -76
  180. data/test/content_type/tc_default.rb +0 -16
  181. data/test/content_type/tc_override.rb +0 -14
  182. data/test/doc_props/tc_app.rb +0 -43
  183. data/test/doc_props/tc_core.rb +0 -42
  184. data/test/drawing/tc_area_chart.rb +0 -39
  185. data/test/drawing/tc_area_series.rb +0 -71
  186. data/test/drawing/tc_axes.rb +0 -8
  187. data/test/drawing/tc_axis.rb +0 -112
  188. data/test/drawing/tc_bar_3D_chart.rb +0 -86
  189. data/test/drawing/tc_bar_chart.rb +0 -86
  190. data/test/drawing/tc_bar_series.rb +0 -46
  191. data/test/drawing/tc_bubble_chart.rb +0 -44
  192. data/test/drawing/tc_bubble_series.rb +0 -21
  193. data/test/drawing/tc_cat_axis.rb +0 -31
  194. data/test/drawing/tc_cat_axis_data.rb +0 -27
  195. data/test/drawing/tc_chart.rb +0 -123
  196. data/test/drawing/tc_d_lbls.rb +0 -57
  197. data/test/drawing/tc_data_source.rb +0 -23
  198. data/test/drawing/tc_drawing.rb +0 -80
  199. data/test/drawing/tc_graphic_frame.rb +0 -27
  200. data/test/drawing/tc_hyperlink.rb +0 -64
  201. data/test/drawing/tc_line_3d_chart.rb +0 -47
  202. data/test/drawing/tc_line_chart.rb +0 -39
  203. data/test/drawing/tc_line_series.rb +0 -71
  204. data/test/drawing/tc_marker.rb +0 -44
  205. data/test/drawing/tc_named_axis_data.rb +0 -27
  206. data/test/drawing/tc_num_data.rb +0 -31
  207. data/test/drawing/tc_num_val.rb +0 -29
  208. data/test/drawing/tc_one_cell_anchor.rb +0 -66
  209. data/test/drawing/tc_pic.rb +0 -103
  210. data/test/drawing/tc_picture_locking.rb +0 -72
  211. data/test/drawing/tc_pie_3D_chart.rb +0 -28
  212. data/test/drawing/tc_pie_series.rb +0 -33
  213. data/test/drawing/tc_scaling.rb +0 -36
  214. data/test/drawing/tc_scatter_chart.rb +0 -48
  215. data/test/drawing/tc_scatter_series.rb +0 -74
  216. data/test/drawing/tc_ser_axis.rb +0 -31
  217. data/test/drawing/tc_series.rb +0 -23
  218. data/test/drawing/tc_series_title.rb +0 -54
  219. data/test/drawing/tc_str_data.rb +0 -18
  220. data/test/drawing/tc_str_val.rb +0 -30
  221. data/test/drawing/tc_title.rb +0 -70
  222. data/test/drawing/tc_two_cell_anchor.rb +0 -36
  223. data/test/drawing/tc_val_axis.rb +0 -24
  224. data/test/drawing/tc_view_3D.rb +0 -54
  225. data/test/drawing/tc_vml_drawing.rb +0 -25
  226. data/test/drawing/tc_vml_shape.rb +0 -106
  227. data/test/fixtures/image1.gif +0 -0
  228. data/test/fixtures/image1.jpeg +0 -0
  229. data/test/fixtures/image1.jpg +0 -0
  230. data/test/fixtures/image1.png +0 -0
  231. data/test/fixtures/image1_fake.jpg +0 -0
  232. data/test/profile.rb +0 -24
  233. data/test/rels/tc_relationship.rb +0 -52
  234. data/test/rels/tc_relationships.rb +0 -37
  235. data/test/stylesheet/tc_border.rb +0 -37
  236. data/test/stylesheet/tc_border_pr.rb +0 -32
  237. data/test/stylesheet/tc_cell_alignment.rb +0 -81
  238. data/test/stylesheet/tc_cell_protection.rb +0 -29
  239. data/test/stylesheet/tc_cell_style.rb +0 -57
  240. data/test/stylesheet/tc_color.rb +0 -43
  241. data/test/stylesheet/tc_dxf.rb +0 -81
  242. data/test/stylesheet/tc_fill.rb +0 -18
  243. data/test/stylesheet/tc_font.rb +0 -133
  244. data/test/stylesheet/tc_gradient_fill.rb +0 -72
  245. data/test/stylesheet/tc_gradient_stop.rb +0 -31
  246. data/test/stylesheet/tc_num_fmt.rb +0 -30
  247. data/test/stylesheet/tc_pattern_fill.rb +0 -43
  248. data/test/stylesheet/tc_styles.rb +0 -309
  249. data/test/stylesheet/tc_table_style.rb +0 -44
  250. data/test/stylesheet/tc_table_style_element.rb +0 -45
  251. data/test/stylesheet/tc_table_styles.rb +0 -29
  252. data/test/stylesheet/tc_xf.rb +0 -120
  253. data/test/tc_axlsx.rb +0 -109
  254. data/test/tc_helper.rb +0 -10
  255. data/test/tc_package.rb +0 -317
  256. data/test/util/tc_mime_type_utils.rb +0 -13
  257. data/test/util/tc_serialized_attributes.rb +0 -19
  258. data/test/util/tc_simple_typed_list.rb +0 -77
  259. data/test/util/tc_validators.rb +0 -210
  260. data/test/workbook/tc_defined_name.rb +0 -49
  261. data/test/workbook/tc_shared_strings_table.rb +0 -59
  262. data/test/workbook/tc_workbook.rb +0 -165
  263. data/test/workbook/tc_workbook_view.rb +0 -50
  264. data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
  265. data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
  266. data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
  267. data/test/workbook/worksheet/tc_break.rb +0 -49
  268. data/test/workbook/worksheet/tc_cell.rb +0 -465
  269. data/test/workbook/worksheet/tc_cfvo.rb +0 -31
  270. data/test/workbook/worksheet/tc_col.rb +0 -93
  271. data/test/workbook/worksheet/tc_color_scale.rb +0 -58
  272. data/test/workbook/worksheet/tc_comment.rb +0 -72
  273. data/test/workbook/worksheet/tc_comments.rb +0 -57
  274. data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
  275. data/test/workbook/worksheet/tc_data_bar.rb +0 -46
  276. data/test/workbook/worksheet/tc_data_validation.rb +0 -265
  277. data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
  278. data/test/workbook/worksheet/tc_header_footer.rb +0 -151
  279. data/test/workbook/worksheet/tc_icon_set.rb +0 -45
  280. data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
  281. data/test/workbook/worksheet/tc_page_margins.rb +0 -97
  282. data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
  283. data/test/workbook/worksheet/tc_page_setup.rb +0 -143
  284. data/test/workbook/worksheet/tc_pane.rb +0 -54
  285. data/test/workbook/worksheet/tc_pivot_table.rb +0 -180
  286. data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
  287. data/test/workbook/worksheet/tc_print_options.rb +0 -72
  288. data/test/workbook/worksheet/tc_protected_range.rb +0 -17
  289. data/test/workbook/worksheet/tc_rich_text.rb +0 -44
  290. data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
  291. data/test/workbook/worksheet/tc_row.rb +0 -160
  292. data/test/workbook/worksheet/tc_selection.rb +0 -55
  293. data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
  294. data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
  295. data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
  296. data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
  297. data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
  298. data/test/workbook/worksheet/tc_table.rb +0 -77
  299. data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
  300. data/test/workbook/worksheet/tc_worksheet.rb +0 -632
  301. data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
data/CHANGELOG.md CHANGED
@@ -1,354 +1,394 @@
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
+ - **April.12.23**: 3.4.0
6
+ - [PR #186](https://github.com/caxlsx/caxlsx/pull/186) - Add `escape_formulas` to global, workbook, worksheet, row and cell levels, and standardize behavior.
7
+ - [PR #186](https://github.com/caxlsx/caxlsx/pull/186) - `escape_formulas` should handle all [OWASP-designated formula prefixes](https://owasp.org/www-community/attacks/CSV_Injection).
8
+ - Fix bug when calling `worksheet.add_border("A1:B2", nil)`
9
+ - Change `BorderCreator#initialize` arguments handling
10
+ - Fix `add_border` to work with singluar cell refs
11
+ - [PR #196](https://github.com/caxlsx/caxlsx/pull/196) - Fix tab color reassignment
12
+ - Add support for remote image source in `Pic` using External Relationship (supported in Excel documents)
13
+
14
+ - **October.21.22**: 3.3.0
15
+ - [PR #168](https://github.com/caxlsx/caxlsx/pull/168) - Merge in the gem [`axlsx_styler`](https://github.com/axlsx-styler-gem/axlsx_styler)
16
+ - Add ability to both apply or append to existing styles after rows have been created using `worksheet.add_style`
17
+ - `worksheet.add_style "A1", {b: true}`
18
+ - `worksheet.add_style "A1:B2", {b: true}`
19
+ - `worksheet.add_style ["A1", "B2:C7", "D8:E9"], {b: true}`
20
+ - Add ability to create borders upon specific areas of the page using `worksheet.add_border`
21
+ - `worksheet.add_border "A1", {style: :thin}`
22
+ - `worksheet.add_border "A1:B2", {style: :thin}`
23
+ - `worksheet.add_border ["A1", "B2:C7", "D8:E9"], {style: :thin}`
24
+ - Add `Axlsx::BorderCreator` the class used under the hood for `worksheet.add_border`
25
+ - Allow specifying `:all` in `border: {edges: :all}` which is a shortcut for `border: {edges: [:left, :right, :top, :bottom]}`
26
+ - [PR #156](https://github.com/caxlsx/caxlsx/pull/156) - Prevent Excel from crashing when multiple data columns added to PivotTable
27
+ - [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).
28
+ - [PR #143](https://github.com/caxlsx/caxlsx/pull/143) - Add setting `sort_on_headers` for pivot tables
29
+ - [PR #132](https://github.com/caxlsx/caxlsx/pull/132) - Remove monkey patch from Object#instance_values
30
+ - [PR #139](https://github.com/caxlsx/caxlsx/pull/139) - Sort archive entries for correct MIME detection with `file` command
31
+ - [PR #140](https://github.com/caxlsx/caxlsx/pull/140) - Update gemspec to recent styles - it reduced the size of the gem
32
+ - [PR #147](https://github.com/caxlsx/caxlsx/pull/147) - Implement “rounded corners” setting for charts.
33
+ - [PR #145](https://github.com/caxlsx/caxlsx/pull/145) - Implement “plot visible only” setting for charts.
34
+ - [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.
35
+
36
+ - **February.23.22**: 3.2.0
37
+ - [PR #75](https://github.com/caxlsx/caxlsx/pull/85) - Added manageable markers for scatter series
38
+ - [PR #116](https://github.com/caxlsx/caxlsx/pull/116) - Validate name option to be non-empty string when passed.
39
+ - [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.
40
+ - [PR #122](https://github.com/caxlsx/caxlsx/pull/122) - Improve error messages when incorrect ranges are provided to `Worksheet#[]`
41
+ - [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)
42
+ - [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)
43
+ - [PR #85](https://github.com/caxlsx/caxlsx/pull/85) - Manageable markers for scatter series
44
+ - [PR #120](https://github.com/caxlsx/caxlsx/pull/120) - Return output stream in binmode
45
+
46
+ - **September.22.21**: 3.1.1
47
+ - [PR #107](https://github.com/caxlsx/caxlsx/pull/107) - Add overlap to bar charts
48
+ - [PR #108](https://github.com/caxlsx/caxlsx/pull/108) - Fix gap depth and gap depth validators for bar charts and 3D bar charts
49
+ - [PR #94](https://github.com/caxlsx/caxlsx/pull/94) - Major performance improvement for charts with large amounts of data
50
+ - [PR #81](https://github.com/caxlsx/caxlsx/pull/81) - Add option to define a color for the BarSeries
51
+
52
+ - **March.27.21**: 3.1.0
53
+ - [PR #95](https://github.com/caxlsx/caxlsx/pull/95) - Replace mimemagic with marcel
54
+ - [PR #87](https://github.com/caxlsx/caxlsx/pull/87) - Implement :offset option for worksheet#add_row
55
+ - [PR #79](https://github.com/caxlsx/caxlsx/pull/79) - Add support for format in pivot tables
56
+ - [PR #77](https://github.com/caxlsx/caxlsx/pull/77) - Fix special characters in table header
57
+ - [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)`.
58
+ - [PR #78](https://github.com/caxlsx/caxlsx/pull/78) - Fix special characters in pivot table cache definition
59
+ - [PR #84](https://github.com/caxlsx/caxlsx/pull/84) - Add JRuby 9.2 to the CI
60
+
61
+ - **January.5.21**: 3.0.4
62
+ - [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.
63
+ - [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
64
+ - [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.
65
+
66
+
67
+ - **December.7.20**: 3.0.3
68
+ - [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`.
69
+ - [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
70
+ - [PR #54](https://github.com/caxlsx/caxlsx/pull/54) - Fix type detection for floats with out-of-rage exponents
71
+ - [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)
72
+ - [I #58](https://github.com/caxlsx/caxlsx/issues/58) - Fix explosion for pie chart throwing error
73
+ - [PR #60](https://github.com/caxlsx/caxlsx/pull/60) - Add Ruby 2.7 to the CI
74
+ - [PR #47](https://github.com/caxlsx/caxlsx/pull/47) - Restructure examples folder
75
+
76
+ - **July.16.20**: 3.0.2
77
+ - [I #51](https://github.com/caxlsx/caxlsx/issues/51) - Images do not import on Windows. IO read set explicitly to binary mode.
78
+ - [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
79
+ - [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.
80
+ - [PR #40](https://github.com/caxlsx/caxlsx/pull/40) - Escape special characters in charts
81
+ - [PR #34](https://github.com/caxlsx/caxlsx/pull/34) - Add option to protect against csv injection attacks
82
+
83
+ - **October.4.19**: 3.0.1
84
+ - Support for ruby versions limited to officially supported version (Ruby v2.3+)
85
+ - Updates to dependency gems, especially nokogiri and ruby-zip
86
+ - Fix Relationship.instances cache
87
+ - Autoload fix for Rails
88
+
89
+ - **October.4.19**: 2.0.2
90
+ - Released as caxlsx, fork of axlsx
91
+ - Update ruby-zip dependency (fixes https://github.com/randym/axlsx/issues/536)
92
+
93
+ - **September.17.19**: 3.0.0
94
+ - First release of caxlsx, fork of axlsx
95
+
96
+ - **April.1.17**: 3.0.0-pre
97
+ - Support for ruby versions limited to officially supported version
98
+ - Updates to dependency gems, especially nokogiri and ruby-zip
99
+ - Patch options parsing for two cell anchor
100
+ - Remove support for depreciated worksheet members
101
+ - Added Cell#name so you you can quickly create a defined name for a single cell in your workbook.
102
+ - Added full book view and sheet state management. This means you can specify how the workbook renders as well as manage sheet visibility.
103
+ - Added smoothing management for line charts series
104
+
105
+ - **September.12.13**: 2.0.1
106
+ - Unpinned rubyzip version
107
+
108
+ - **September.12.13**: 2.0.0
109
+ - DROPPED support for ruby 1.8.7
110
+ - Altered readme to link to contributors
111
+ - Lots of improvements to make charts and relations more stable.
112
+ - Patched color param mutation.
113
+ - Data sourced for pivot tables can now come from other sheets.
114
+ - Altered image file extension comparisons to be case insensitive.
115
+ - Added control character sanitization to shared strings.
116
+ - Added page breaks. see examples/example.rb for an example.
117
+ - 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.
118
+ - Improved how we convert date/time to include the UTC offset when provided.
119
+ - 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
120
+ - Bugfix: transposition of cells for Worksheet#cols now supports
121
+ incongruent column counts.counts
122
+ - Added space preservation for cell text. This will allow whitespace
123
+ in cell text both when using shared strings and when serializing
124
+ directly to the cell.
125
+
126
+ - **April.24.13**: 1.3.6
127
+ - Fixed LibreOffice/OpenOffice issue to properly apply colors to lines
128
+ in charts.
129
+ - Added support for specifying between/notBetween formula in an array.
130
+ *thanks* straydogstudio!
131
+ - Added standard line chart support. *thanks* scambra
132
+ - Fixed straydogstudio's link in the README. *thanks* nogara!
133
+
134
+ - **February.4.13**: 1.3.5
135
+ - converted vary_colors for chart data to instance variable with appropriate defulats for the various charts.
136
+ - Added trust_input method on Axlsx to instruct the serializer to skip HTML escaping. This will give you a tremendous performance boost,
137
+ Please be sure that you will never have <, >, etc in your content or the XML will be invalid.
138
+ - Rewrote cell serialization to improve performance
139
+ - Added iso_8601 type to support text based date and time management.
140
+ - Bug fix for relationship management in drawings when you add images
141
+ and charts to the same worksheet drawing.
142
+ - Added outline_level_rows and outline_level_columns to worksheet to simplify setting up outlining in the worksheet.
143
+ - Added support for pivot tables
144
+ - Added support for descrete border edge styles
145
+ - Improved validation of sheet names
146
+ - 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.
147
+
148
+ - **November.25.12**: 1.3.4
149
+ - Support for headers and footers for worksheets
150
+ - bug fix: Properly escape hyperlink urls
151
+ - Improvements in color_scale generation for conditional formatting
152
+ - Improvements in autowidth calculation.
153
+
154
+ - **November.8.12**: 1.3.3
155
+ - Patched cell run styles for u and validation for family
156
+
157
+ - **November.5.12**: 1.3.2
158
+ - MASSIVE REFACTORING
159
+ - Patch for apostrophes in worksheet names
160
+ - added sheet_by_name for workbook so you can now find your worksheets
161
+ by name
162
+ - added insert_worksheet so you can now add a worksheet to an
163
+ arbitrary position in the worksheets list.
164
+ - reduced memory consumption for package parts post serialization
165
+
166
+ - **September.30.12**: 1.3.1
167
+ - Improved control character handling
168
+ - Added stored auto filter values and date grouping items
169
+ - Improved support for autowidth when custom styles are applied
170
+ - Added support for table style info that lets you take advantage of
171
+ all the predefined table styles.
172
+ - Improved style management for fonts so they merge undefined values
173
+ from the initial master.
174
+
175
+ - **September.8.12**: 1.2.3
176
+ - enhance exponential float/bigdecimal values rendering as strings intead
177
+ of 'numbers' in excel.
178
+ - added support for :none option on chart axis labels
179
+ - added support for paper_size option on worksheet.page_setup
180
+
181
+ - **August.27.12**: 1.2.2
182
+ - minor patch for auto-filters
183
+ - minor documentation improvements.
184
+
185
+ - **August.12.12**: 1.2.1
186
+ - Add support for hyperlinks in worksheets
187
+ - Fix example that was using old style cell merging with concact.
188
+ - Fix bug that occurs when calculating the font_size for cells that use a user specified style which does not define sz
189
+
190
+ - **August.5.12**: 1.2.0
191
+ - rebuilt worksheet serialization to clean up the code base a bit.
192
+ - added data labels for charts
193
+ - added table header printing for each sheet via defined_name. This
194
+ means that when you print your worksheet, the header rows show for every page
195
+
196
+ - **July.??.12**: 1.1.9
197
+ - lots of code clean up for worksheet
198
+ - added in data labels for pie charts, line charts and bar charts.
199
+ - bugfix chard with data in a sheet that has a space in the name are
200
+ now auto updating formula based values
201
+
202
+ - **July.14.12**: 1.1.8
203
+ - added html entity encoding for sheet names. This allows you to use
204
+ characters like '<' and '&' in your sheet names.
205
+ - new - first round google docs interoperability
206
+ - added filter to strip out control characters from cell data.
207
+ - added in interop requirements so that charts are properly exported
208
+ to PDF from Libra Office
209
+ - various readability improvements and work standardizing attribute
210
+ names to snake_case. Aliases are provided for backward compatiblity
211
+
212
+ - **June.11.12**: 1.1.7
213
+ - fix chart rendering issue when label offset is specified as a
214
+ percentage in serialization and ensure that formula are not stored
215
+ in value caches
216
+ - fix bug that causes repair warnings when using a text only title reference.
217
+ - Add title property to axis so you can lable the x/y/series axis for
218
+ charts.
219
+ - Add sheet views with panes
220
+
221
+ - **May.30.12**: 1.1.6
222
+ - data protection with passwords for sheets
223
+ - cell level input validators
224
+ - added support for two cell anchors for images
225
+ - test coverage now back up to 100%
226
+ - bugfix for merge cell sorting algorithm
227
+ - added fit_to method for page_setup to simplify managing witdh/height
228
+ - added ph (phonetics) and s (style) attributes for row.
229
+ - resolved all warnings generating from this gem.
230
+ - improved comment relationship management for multiple comments
231
+
232
+ - **May.13.12**: 1.1.5
233
+ - MOAR print options! You can now specify paper size, orientation,
234
+ fit to width, page margings and gridlines for printing.
235
+ - Support for adding comments to your worksheets
236
+ - bugfix for applying style to empty cells
237
+ - bugfix for parsing formula with multiple '='
238
+
239
+ - **May.3.12:**: 1.1.4
240
+ - MOAR examples
241
+ - added outline level for rows and columns
242
+ - rebuild of numeric and axis data sources for charts
243
+ - added delete to axis
244
+ - added tick and label mark skipping for cat axis in charts
245
+ - bugfix for table headers method
246
+ - sane(er) defaults for chart positioning
247
+ - 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.
248
+ - Added support for specifying the color of data series in charts.
249
+ - bugfix using add_cell on row mismanaged calls to update_column_info.
250
+
251
+ - **April.25.12:**: 1.1.3
252
+ - Primarily because I am stupid.....Updates to readme to properly report version, add in missing docs and restructure example directory.
253
+
254
+ - **April.25.12:**: 1.1.2
255
+ - Conditional Formatting completely implemented.
256
+ - refactoring / documentation for Style#add_style
257
+ - added in label rotation for chart axis labels
258
+ - bugfix to properly assign style and type info to cells when only partial information is provided in the types/style option
259
+
260
+ - **April.18.12**: 1.1.1
261
+ - bugfix for autowidth calculations across multiple rows
262
+ - bugfix for dimension calculations with nil cells.
263
+ - REMOVED RMAGICK dependency WOOT!
264
+ - Update readme to show screenshot of gem output.
265
+ - Cleanup benchmark and add benchmark rake task
266
+
267
+ - **April.3.12**: 1.1.0
268
+ - bugfix patch name_to_indecies to properly handle extended ranges.
269
+ - bugfix properly serialize chart title.
270
+ - 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!
271
+ - Added Fit to Page printing
272
+ - added support for turning off gridlines in charts.
273
+ - added support for turning off gridlines in worksheet.
274
+ - bugfix some apps like libraoffice require apply[x] attributes to be true. applyAlignment is now properly set.
275
+ - 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.
276
+ - added border style specification to styles#add_style. See the example in the readme.
277
+ - Support for tables added in - Note: Pre 2011 versions of Mac office do not support this feature and will warn.
278
+ - Support for splatter charts added
279
+ - Major (like 7x faster!) performance updates.
280
+ - Gem now supports for JRuby 1.6.7, as well as experimental support for Rubinius
281
+
282
+ - **March.5.12**: 1.0.18
283
+ https://github.com/randym/axlsx/compare/1.0.17...1.0.18
284
+ - bugfix custom borders are not properly applied when using styles.add_style
285
+ - interop worksheet names must be 31 characters or less or some versions of office complain about repairs
286
+ - added type support for :boolean and :date types cell values
287
+ - added support for fixed column widths
288
+ - added support for page_margins
289
+ - added << alias for add_row
290
+ - removed presetting of date1904 based on authoring platform. Now defaults to use 1900 epoch (date1904 = false)
291
+
292
+ - **February.14.12**: 1.0.17
293
+ https://github.com/randym/axlsx/compare/1.0.16...1.0.17
294
+ - Added in support for serializing to StringIO
295
+ - Added in support for using shared strings table. This makes most of the features in axlsx interoperable with iWorks Numbers
296
+ - Added in support for fixed column_widths
297
+ - Removed unneeded dependencies on active-support and i18n
298
+
299
+ - **February.2.12**: 1.0.16
300
+ https://github.com/randym/axlsx/compare/1.0.15...1.0.16
301
+ - Bug fix for schema file locations when validating in rails
302
+ - Added hyperlink to images
303
+ - date1904 now automatically set in BSD and mac environments
304
+ - removed whitespace/indentation from xml outputs
305
+ - col_style now skips rows that do not contain cells at the column index
306
+
307
+ - **January.6.12**: 1.0.15
308
+ https://github.com/randym/axlsx/compare/1.0.14...1.0.15
309
+ - Bug fix add_style specified number formats must be explicity applied for libraOffice
310
+ - performance improvements from ochko when creating cells with options.
311
+ - Bug fix setting types=>[:n] when adding a row incorrectly determines the cell type to be string as the value is null during creation.
312
+ - Release in preparation for password protection merge
313
+
314
+ - **December.14.11**: 1.0.14
315
+ - Added support for merging cells
316
+ - Added support for auto filters
317
+ - Improved auto width calculations
318
+ - Improved charts
319
+ - Updated examples to output to a single workbook with multiple sheets
320
+ - Added access to app and core package objects so you can set the creator and other properties of the package
321
+ - The beginning of password protected xlsx files - roadmapped for January release.
322
+
323
+ - **December.8.11**: 1.0.13
324
+ - Fixing .gemspec errors that caused gem to miss the lib directory. Sorry about that.
325
+
326
+ - **December.7.11**: 1.0.12
327
+ DO NOT USE THIS VERSION = THE GEM IS BROKEN
328
+ - changed dependency from 'zip' gem to 'rubyzip' and added conditional code to force binary encoding to resolve issue with excel 2011
329
+ - Patched bug in app.xml that would ignore user specified properties.
330
+ - **December.5.11**: 1.0.11
331
+ - Added [] methods to worksheet and workbook to provide name based access to cells.
332
+ - Added support for functions as cell values
333
+ - Updated color creation so that two character shorthand values can be used like 'FF' for 'FFFFFFFF' or 'D8' for 'FFD8D8D8'
334
+ - Examples for all this fun stuff added to the readme
335
+ - Clean up and support for 1.9.2 and travis integration
336
+ - 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.
337
+
338
+ - **October.30.11**: 1.0.10
339
+ - Updating gemspec to lower gem version requirements.
340
+ - Added row.style assignation for updating the cell style for an entire row
341
+ - Added col_style method to worksheet upate a the style for a column of cells
342
+ - Added cols for an easy reference to columns in a worksheet.
343
+ - prep for pre release of acts_as_xlsx gem
344
+ - added in travis.ci configuration and build status
345
+ - fixed out of range bug in time calculations for 32bit time.
346
+ - added i18n for active support
347
+
348
+ - **October.26.11**: 1.0.9
349
+ - Updated to support ruby 1.9.3
350
+ - Updated to eliminate all warnings originating in this gem
351
+
352
+ - **October.23.11**: 1.0.8
353
+ - Added support for images (jpg, gif, png) in worksheets.
354
+
355
+ - **October.23.11**: 1.0.7 released
356
+ - 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
357
+ - Updated serialization write test to verify write permissions and warn if it cannot run the test due to permission restrcitions.
358
+ - updated rake to include build, genoc and deploy tasks.
359
+ - rebuilt documentation.
360
+ - moved version constant to its own file
361
+ - fixed bug in SerAxis that was requiring tickLblSkip and tickMarkSkip to be boolean. Should be unsigned int.
362
+ - Review and improve docs
363
+ - 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.
364
+ - Refactored cat and val axis data to keep series serialization a bit more DRY
365
+
366
+ - **October.22.11**: 1.0.6
367
+ - Bumping version to include docs. Bug in gemspec pointing to incorrect directory.
368
+
369
+ - **October.22.11**: 1.05
370
+ - Added support for line charts
371
+ - Updated examples and readme
372
+ - Updated series title to be a real title ** NOTE ** If you are accessing titles directly you will need to update text assignation.
373
+ chart.series.first.title = 'Your Title'
374
+ chart.series.first.title.text = 'Your Title'
375
+ With this change you can assign a cell for the series title
376
+ chart.series.title = sheet.rows.first.cells.first
377
+ If you are using the recommended
378
+ chart.add_series :data=>[], :labels=>[], :title
379
+ You do not have to change anything.
380
+ - BugFix: shape attribute for bar chart is now properly serialized
381
+ - BugFix: date1904 property now properly set for charts
382
+ - Added style property to charts
383
+ - Removed serialization write test as it most commonly fails when run from the gem's intalled directory
384
+
385
+ - **October.21.11**: 1.0.4
386
+ - altered package to accept a filename string for serialization instead of a File object.
387
+ - Updated specs to conform
388
+ - More examples for readme
389
+
390
+
391
+ - **October.21.11**: 1.0.3
392
+ - Updated documentation
393
+
394
+ - **October.20.11**: 0.1.0