Skip to content

Releases: JanMarvin/openxlsx2

v1.7

02 Jun 17:17
fb5b855
Compare
Choose a tag to compare

Release 1.7 brings the usual bug fixes and internal cleanups as well as a few selected new features.

The support for MIP that was added in 1.6 has been further improved. Previously we added a check for internal folders not being handled by openxlsx2 which was triggered on the [trash] folder, this has been reported and fixed. This folder was added by third party software, similar to a binary blob added when synchronizing files with a third party cloud software. A long time hidden bug was reported and fixed, when columns with special formats surrounded columns in a different format, the styling was applied to those columns as well. Previously, if there were two date columns to the left and right of another column, the column in the middle was also formatted as a date.

There has been support for slicers for some time. This has been extended and now we can create timelines for pivot tables. Our wb_add_timeline() was created to work similarly to wb_add_slicer() on pivot tables created with wb_add_pivot_table(). It is possible to select a specific period, obviously the dim placement and different styles.

We have started to extend our work on the undo changes function. Now we provide wb_remove_conditional_formatting(), wb_remove_slicer() and wb_remove_timeline(). This work has not yet been completed.

A lot of time was spent on various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The 1.7 release is the 19th openxlsx2 release available on CRAN. Even though the package is now semi-stable, it is always a good idea to make regular backups and check the output files. A look at the issue tracker and the NEWs is highly recommended.

What's Changed

Full Changelog: v1.6...v1.7

v1.6

01 May 10:11
70058cf
Compare
Choose a tag to compare

Release 1.6 brings the usual bug fixes and internal cleanups as well as a few selected new features. Big thanks again to @olivroy for his ongoing help with documentation fixes and internal cleanups!

We fulfilled a user request by adding MIP support, which is a kind of confidentiality stamp added to the xlsx file. This only works in certain business environments as we couldn't test it ourselves, thanks for the request and the testing! In addition, it is now possible to add custom properties via wb_set_properties().

Initial support for richData folders has been added, so it is possible to read spreadsheets with images embedded in cells. (This has not been fully tested, please let us know if you encounter problems). After a long time, another nice addition is the added support for non-contiguous dimensions, finally something like "A1:B2,B4:C5" can be used with e.g. wb_add_fill() and it is even possible to write data into different cells!

Among the bug fixes and internal cleanups: It is now possible to write data frames with zero rows, we've fixed the remaining few cases of partial matching, and improved some error and warning messages to let our users know what exactly is going on.

A lot of time was spent on various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The 1.6 release is the 18th openxlsx2 release available on CRAN. Even though the package is now semi-stable, it is always a good idea to make regular backups and check the output files. A look at the issue tracker and the NEWs is highly recommended.

What's Changed

Full Changelog: v1.5...v1.6

v1.5

26 Mar 18:04
925bec2
Compare
Choose a tag to compare

Release 1.5 brings the usual bug fixes and a few improvements to vector writing. The release was a bit bumpier than previous releases as the package is now suggested by three CRAN packages and even an import for one. Thanks for your trust in us!

Our beloved dims handler wb_dims() received another round of improvements and is now able to handle the positioning of dims using a new from_dims argument, you guessed it. Additionally, it is possible to use other positioning arguments (below, above, left, right) that can be given integer offsets (wb_dims(from_dims = "A1", right = 2), places the new dimension two columns right to the previous dimension). Quite exited to see if this works as well as I hope!

A feature request has been solved with the new openxlsx2.na.strings option, which can be used to change the default na.strings, and the page setup feature has been placed on a new foundation. What caused the bumpy release was a revdep failure discovered at the last minute by CRAN: this was caused by us changing how vectors can be positioned. Previously, it was necessary to transpose vectors before writing them to the worksheet with t(vector). Since version 1.5 it is possible to position the vector with dims only. The initial implementation caused a test in one of the CRAN packages to fail, and of course this had to be fixed first.

A lot of time went into various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The release 1.5 is the 17th openxlsx2 release which is available under CRAN. Even though the package is now now semi-stable, it is always a good idea to make regular backups and check output files regularly. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

Full Changelog: v1.4...v1.5

v1.4

15 Feb 23:28
ee3590b
Compare
Choose a tag to compare

Release 1.4 brings the usual bug fixes and some improvements to pivot tables and new style options.

An important change that users will notice immediately is the switch to a new Office theme and from Calibri as the default font to Aptos Narrow. The included themes have been slightly extended and we have optimized wb_set_base_font() and added wb_set_base_colors()/wb_get_base_colors(). Yes, now it is possible to change the font and colors of a worksheet theme directly from openxlsx2.

This release also brings another round of improvements for pivot tables. It is now possible to calculate formulas (a previous user request), and sorting elements should finally work as intended. In the often neglected write_xlsx() function, it is now possible to freeze columns and rows, something that did not work before and was discovered when writing tests and examining coverage reports.

A lot of time went into various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The release 1.4 is the 16th openxlsx2 release which is available under CRAN. Even though the package is now now semi-stable, it is always a good idea to make regular backups and check output files regularly. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

Full Changelog: v1.3...v1.4

v1.3

12 Jan 10:29
6ed65bf
Compare
Choose a tag to compare

Release 1.3 brings the usual bug fixes and some improvements to documentation.

Even though I don't like working on performance issues, this version brings long overdue improvements to wb_add_data(). In particular, writing larger matrix objects should now be much faster. In addition, wb_load() has received minor improvements and a much longer documentation text. The documentation for wb_add_pivot_table() has also been improved. Further documentation can be found in the WIP book.

In wb_to_df() an error has been fixed where the column name was omitted in combination with col_names = FALSE for logical columns. Due to issues raised by @Layalchristine24, a new function wb_set_cell_style_across() has been added. This is required in conjunction with some options in wb_protect_worksheet() such as deleteColumns/deleteRows. The currency style has also been reset to the originally intended behavior. It is now also possible to change the color of comments or add a background image for them.

A lot of time went into various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The release 1.3 is the 15th openxlsx2 release which is available under CRAN. Even though the package is now now semi-stable, it is always a good idea to make regular backups and check output files regularly. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

Full Changelog: v1.2...v1.3

v1.2

29 Nov 11:30
69ff56b
Compare
Choose a tag to compare

Release 1.2 brings the usual bug fixes and some improvements to pivot tables and copy cells.

Since its first implementation, wb_add_pivot_table() has undergone a number of unfortunately still largely undocumented changes. It is now possible to select outline and compact to change the appearance of the pivot table and to select subsets of data to be included with choose. This also works with slicers and is a nice feature for pre-selecting pivot tables. Note, however, that this does not work with pivot tables loaded via wb_load() and that support for modifying these loaded pivot tables is not currently planned.

Another function that has been reworked a little is wb_copy_cells(). This is another of the many sparsely documented functions, but actually one that has some nice features. For example, similar to copying cells in spreadsheet programs, it is possible to copy the cell as a value or as is. It is also possible to copy cells as references and it is also possible to transpose what is being copied.

Some long overlooked escaping issue with class(df$x) <- "formula" was fixed. Which strangely didn't bother anybody for several months, but once the first report came in and was fixed, various duplicates of this issue appeared. Thanks to @olivroy options for min and max width were restored. And since this release it is also possible to use openxlsx2 with webr (see #849 for details).

A lot of time went into various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The release 1.2 is the 14th openxlsx2 release which is available under CRAN. Even though the package is now now semi-stable, it is always a good idea to make regular backups and check output files regularly. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

Full Changelog: v1.1...v1.2

v1.1

23 Oct 10:41
ee9edb4
Compare
Choose a tag to compare

Release 1.1 is a release with many new features to try, in addition to the usual bug fixes and improvements to our existing code. Grouping columns is now a bit more user-friendly, we've updated the pugixml library, and our tests can be run in parallel again. We've added new functions for getting and setting file properties that improve and extend the existing ways to set them, a feature requested and worked on by @olivroy.

In addition, some long-requested features have been added. Reading xlsb files, cloning across workbooks, and adding slicers. Please be aware that all of these features are still somewhat experimental, have known limitations, and probably contain a few bugs. Therefore, if you try this, you should make more backups than usual and test the features more thoroughly than usual.

This release is the first to include our own xlsb file reader. With this it should be possible to load xlsb files similar to xlsx/xlsm files. Please be aware that this file parser is still limited (and probably will remain this way) and should only be considered as a sort of last resort when no other tool is available to convert the binary openxml file into a simple xlsx file. If you try this, please have a look at the NEWS file first.
Another long requested feature has been added in the form of cloning worksheets across workbooks. This extends the wb_clone_worksheet() function with a new from argument that allows copying worksheets across workbooks.
Last but not least, support for pivot tables has been further improved. It is now possible to sort by elements and it is possible to add a slicer to a pivot table after adding it.

A lot of time went into various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The release 1.1 is the 13th openxlsx2 release which is available under CRAN. Even though the package is now now semi-stable, it is always a good idea to make regular backups and check output files regularly. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

Full Changelog: v1.0...v1.1

v1.0

25 Aug 07:09
2265f42
Compare
Choose a tag to compare

Release 1.0 is finally here. While it's just a number in the grand scheme of things, the goal is that we've achieved a semi-stable API. This means that the public API will not change in the foreseeable future, unless pressing reasons force us to do so. That being said, a lot has been done and worked on in the last few weeks.

Thanks to the work of @olivroy, the long-neglected documentation in examples and vignettes has been overhauled and now looks better than ever. Examples have been added where they were missing and cleaned up where they were outdated. The entire pkgdown page has been reworked. Building on the consistent arguments work we did in the previous version, this really makes the version shine.

A lot of time went into various bug fixes, cleanups and minor improvements here and there. Among the few fixes, there is one that requires a detailed explanation. It was discovered that we were not handling the 1904 date format correctly. As a result, our dates were always 4 years off for this date format, which was mainly used by Excel on the Mac. That's a little shameful that it took so long and came up rather by accident. Hopefully it's a sign that this format is rarely used. However, it's certainly a reminder that no code is error-free, not even the most scrutinized in the world, so it's always wise to remain vigilant and question unusual output. In addition, a number of fixes and features were developed based on user requests and needs. If you find an error, please let us know!

The release 1.0 is the twelfth openxlsx2 release which is available under CRAN. Even though the package is now now semi-stable, it is always a good idea to make regular backups and check output files regularly. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

Full Changelog: v0.8...v1.0

v0.8

07 Aug 10:16
8c8748d
Compare
Choose a tag to compare

Release 0.8 might be the last milestone on the way to 1.0 and brings a lot of changes and cleanups to the API and exported functions. Please note: If no drastic issues show up in bug reports in the coming days, the current API will become the 1.0 API, which will be semi-stable (i.e. if no changes are required, it will not change in the foreseeable future). The current changes were needed to streamline the API and provide a pleasant user experience.

Finally, the long overdue cleanup of arguments from camel case to snake case has been addressed. Hopefully this has been archived in a way that is backwards compatible and warnings and broken code should be limited. Basically, a function foo(camelCase=bar) is now foo(snake_case=bar), although for now it should accept both variants. The solution to this problem was to pass the arguments for camelCase to ... and convert them under the hood to variables for snake case. There are obviously some limitations to this approach, but we felt it was too close to a 1.0 release to break the API in such a drastic way.

Another addition is the introduction of wb_dims(), a helper function introduced for interacting with the dims argument of openxlsx2 workbook functions. Many of the previous row/rows, col/cols and xy variants are deprecated, and users are recommended to use dims either the simple A1 notation for cells with the existing helper functions like int2col() or the feature-rich wb_dims(). Thanks to the work of @olivroy, who improved the function in various commits, there is a detailed man page for this function with many examples of how to use it.

A lot of time went into various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The release 0.8 is the eleventh openxlsx2 release which is available under CRAN. However, the package is not yet fully stable. Until the stable version 1.0 there may still be changes in the API. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

New Contributors

Full Changelog: v0.7.1...v0.8

v0.7.1

30 Jun 08:02
2eb0a72
Compare
Choose a tag to compare

Release 0.7.1 is another milestone on the way to 1.0, bringing a few style improvements and the usual bug fixes.

The release introduces wb_add_named_style(), a new function to create named styles like Note or Title from openxlsx2. This function is accompanied by the introduction of workbook themes. The fmt_txt() function, introduced in release 0.7, has been improved to provide a class with print() and + methods. This should make it easier for the user to create and design workbooks.

Further optimizations have been made to the creation of conditional formatting. A new function wb_add_dxfs_style() has been introduced and color gradients can now be used to create conditional formatting styles. Objects with a label attribute are now treated according to the label, new (experimental) changes have been made to the creation of pivot table number formats and ordering.

A lot of time went into various bug fixes, cleanups, and minor improvements here and there. A number of the fixes and features were developed based on user requests and needs. If you find a bug, please let us know!

The release 0.7.1 is the tenth openxlsx2 release which is available under CRAN. However, the package is not yet fully stable. Until the stable version 1.0 there may still be changes in the API. A look at the issue tracker and the NEWs is recommended in any case.

What's Changed

Full Changelog: v0.7...v0.7.1