-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New feature: buildWorkbook() #192
Comments
There exists already a function for your request. If it doesn't fit your needs, please let me know. |
You can see some of the development here: |
Now I understand your request correctly. The idea is good and I fully support the concept. Writing the data seems quite straightforward to implement as you have shown. I expect more difficulties when it comes to styles, widths, heights and other layout topics. What is your idea to cover the layout topics? |
I like the idea and it will solve the issue of duplicated code in the write functions. |
# development openxlsx 4.2.4 ## Fixes * `Write.xlsx()` now successfully passes `withFilter` ([#151](ycphs/openxlsx#151)) * code clean up PR [#168](ycphs/openxlsx#168) * removal of unused variables PR [#168](ycphs/openxlsx#168) ## New features * adds `buildWorkbook()` to generate a `Workbook` object from a (named) list or a data.frame ([#192](ycphs/openxlsx#192), [#187](ycphs/openxlsx#187)) * this is now recommended rather than the `write.xlsx(x, file) ; wb <- read.xlsx(file)` functionality before * `write.xlsx()` is now a wrapper for `wb <- buildWorkbook(x); saveWorkbook(x, file)` * parameter checking from `write.xlsx()` >> `buildWorkbook()` are now held off until passed to `writeData()`, `writeDataTable()`, etc * `row.names` is now deprecated for `writeData()` and `writeDataTable()`; please use `rowNames` instead * `read.xlsx()` now checks for the file extension `.xlsx`; previously it would throw an error when the file was `.xls` or `.xlm` files * memory allocation improvements * global options added for `minWidth` and `maxWidth` * `write.xlsx()` >> `buildWorkbook()` can now handle `colWidths` passed as either a single element or a `list()` * Added ability to change positioning of summary columns and rows. * These can be set with the `summaryCol` and `summaryRow` arguments in `pageSetup()`. * `activeSheet` allows to set and get the active (displayed) sheet of a worbook. * Adds new global options for workbook formatting ([#165](ycphs/openxlsx#165); see `?op.openxlsx`) # openxlsx 4.2.3 ## New Features * Most of functions in openxlsx now support non-ASCII arguments better. More specifically, we can use non-ASCII strings as names or contents for `createNamedRegion()` ([#103](ycphs/openxlsx#103)), `writeComment()`, `writeData()`, `writeDataTable()` and `writeFormula()`. In addition, openxlsx now reads comments and region names that contain non-ASCII strings correctly on Windows. Thanks to @shrektan for the PR [#118](ycphs/openxlsx#118). * `setColWidths()` now supports zero-length `cols`, which is convinient when `cols` is dynamically provided [#128](ycphs/openxlsx#128). Thanks to @shrektan for the feature request and the PR. ## Fixes for Check issues * Fix to pass the tests for link-time optimization type mismatches * Fix to pass the checks of native code (C/C++) based on static code analysis ## Bug Fixes * Grouping columns after setting widths no longer throws an error ([#100](ycphs/openxlsx#100)) * Fix inability to save workbook more than once ([#106](ycphs/openxlsx#106)) * Fix `loadWorkbook()` sometimes importing incorrect column attributes # openxlsx 4.2.2 ## New Features * Added features for `conditionalFormatting` to support also 'contains not', 'begins with' and 'ends with' * Added return value for `saveWorkbook()` the default value for `returnValue` is `FALSE` ([#71](ycphs/openxlsx#71)) * Added Tests for new parameter of `saveWorkbook()` ## Bug Fixes * Solved CRAN check errors based on the change disussed in [PR#17277](https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=17277) # openxlsx 4.2.0 ## New Features * Added `groupColumns()`, `groupRows()`, `ungroupColumns()`, and `ungroupRows()` to group/ugroup columns/rows ([#32](ycphs/openxlsx#32)) ## Bug Fixes * Allow xml-sensitve characters in sheetnames ([#78](ycphs/openxlsx#78)) ## Internal * Updated roxygen2 to 7.1.1 # openxlsx 4.1.5.1 ## Bug Fixes * fixed issue [#68](ycphs/openxlsx#68]) # openxlsx 4.1.5 ## New Features * Add functions to get and set the creator of the xlsx file * add function to set the name of the user who last modified the xlsx file ## Bug Fixes * Fixed NEWS hyperlink * Fixed writing of mixed EST/EDT datetimes * Added description for `writeFormula()` to use only english function names * Fixed validateSheet for special characters ## Internal * applied the tidyverse-style to the package `styler::style_pkg()` * include tests for `cloneWorksheet` # openxlsx 4.1.4 ## New Features * Added `getCellRefs()` as function. [#7](ycphs/openxlsx#7) * Added parameter for customizing na.strings ## Bug Fixes * Use `zip::zipr()` instead of `zip::zip()`. * Keep correct visibility option for loadWorkbook. [#12](ycphs/openxlsx#12]) * Add space surrounding "wrapText" [#17](ycphs/openxlsx#17) * Corrected Percentage, Accounting, Comma, Currency class on column level * update to rogygen2 7.0.0 # openxlsx 4.1.3 ## New Features * Added a `NEWS.md` file to track changes to the package. * Added `pkgdown` to create site. ## Bug Fixes * Return values for cpp changed to R_NilValue for r-devel tests * Added empty lines at the end of files # openxlsx 4.1.2 * Changed maintainer # openxlsx 4.1.1 ## New Features * `sep.names` allows choose other separator than '.' for variable names with a blank inside * Improve handling of non-region names in `getNamedRegions` and add related test
I've been toying with a bit of a rewrite of
write.xlsx()
which separates the building and saving process. Ideally, a (named) list with...
params could be passed to something likebuildWorkbook()
which would generate aWorkbook
object that can then be further modified before saving -- often something I personally find myself doing and could see a general utility.write.xlsx()
would then essentially be shorthand for ...... when finer edits would not be necessary.
The process of this would involve a better method of passing/matching parameters -- would would resolve issues like like #187 and wouldn't require additional edits when new params are added -- without changing the current use of
write.xlsx()
The text was updated successfully, but these errors were encountered: