-
Notifications
You must be signed in to change notification settings - Fork 76
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
Feature Request: Add Group and Ungroup columns & rows #32
Comments
I've been working on this for the past while, and I currently have two separate working functions - |
@JoshuaSturm I think having two functions isn't necessarily a bad thing. It's consistent with the way you set the size of columns/rows in Having said that, it could be beneficial to have a single function behind the scenes that is actually doing the work and uses an argument to determine whether it's operating on rows or columns. Are these functions included in any of the branches on your GitHub? I'd love to take a look at them! |
Many thanks @JoshuaSturm , this will be a very useful functionality, indeed. Also it would be great to include, as an option, the possibility to collapse some groups of lines or columns. This functionality would certainly fix at the same time the issue already described two years ago "Collapsed rows / columns are lost" : awalker89/openxlsx#383 |
@aecoleman Thanks for the feedback. You're right, and after thinking about it more, I kept the two functions separate. It is more consistent with the rest of the API, as well as the current code structure (rows and columns are handled separately). @FrancoisR95 I added the ability to collapse rows/columns, and, from what I remember when I last worked on it, preferences were being preserved. Thanks! |
@JoshuaSturm I know you said that you were busy, but just wanted to give you a nudge and say that I'm really looking forward to taking a look at this! |
Hi, @aecoleman. Thanks for the reminder. My current progress is saved here: https://github.com/JoshuaSturm/openxlsx/tree/add-groups I also haven't yet tested on multiple worksheets or loading workbooks. Please let me know of any bugs you come across. Thanks! |
@JoshuaSturm If you have a name conflict for the |
@FrancoisR95 Thanks for the suggestion. The issue wasn't so much the names, but that having conflicting values would lead to errors. For example, To keep the changes to the underlying structure minimal, I decided that setting the I'll probably open a PR tomorrow. |
Thank you @JoshuaSturm for the explanations. This seems a good solution which you describe, that "setting the |
# 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
Hi @ycphs
I have a problem to output a data frame to xlsx with certain styling like grouping several columns based on some conditions.
I think it will be great if openxlsx can have functionality to do grouping & ungrouping columns & rows, while user need to do some manipulation on data frame.
Currently I am doing it in a VBscript, and call it from R, which hard to trace bugs.
Here is the functionality as discussed, under 'Data' tab in excel
The text was updated successfully, but these errors were encountered: