Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Formatting on new sheet gets applied to sheets created previously by openxlsx #68

Closed
sy20082010 opened this issue May 6, 2020 · 6 comments
Labels
bug Something isn't working fixed Fixed, issue will be closed within 7 days question Further information is requested

Comments

@sy20082010
Copy link

What I'm doing is creating an openxlsx workbook with one sheet ("sheet1") and writing a table to it with column 1 formatted (in this example, number format "0.0"). Then I save the workbook. Then reopen, add a second sheet ("sheet2"), write a table to it and format a column (in the example, column 2 number format "0.00")

Expected Behavior

With the second action, Column 2 in sheet2 should get formatted to "0.00"

Actual Behavior

Column 2 in sheet2 does get formatted to "0.00" but so does Column 1 of sheet1

Steps to Reproduce the Problem

(please attach an example xlsx file if possible)

# This to initially create the workbook and sheet1
wb = openxlsx::createWorkbook()
openxlsx::addWorksheet(wb, "sheet1")
openxlsx::writeData(wb, "sheet1", mtcars,
startCol=1, startRow=1,
colNames = TRUE,
rowNames = FALSE,
withFilter=FALSE)
style = openxlsx::createStyle(numFmt="0.0")
openxlsx::addStyle(wb, "sheet1", style, rows=2:33, cols=1, gridExpand=TRUE, stack=TRUE)
openxlsx::saveWorkbook(wb, "temp.xlsx", overwrite=TRUE)

# This is the bug: this will apply the 0.00 formatting to sheet1 column 1 too for some reason
wb = openxlsx::loadWorkbook("temp.xlsx")
openxlsx::addWorksheet(wb, "sheet2")
openxlsx::writeData(wb, "sheet2", mtcars,
startCol=1, startRow=1,
colNames = TRUE,
rowNames = FALSE,
withFilter=FALSE)
style = openxlsx::createStyle(numFmt="0.00")
openxlsx::addStyle(wb, "sheet2", style, rows=2:33, cols=2, gridExpand=TRUE, stack=TRUE)
openxlsx::saveWorkbook(wb, "temp.xlsx", overwrite=TRUE)

sessionInfo()

  • Version of openxlsx: 4.1.5
  • Version of R: 3.3.1
ycphs added a commit that referenced this issue May 7, 2020
preparation for patch release on cran
@ycphs ycphs added bug Something isn't working fixed Fixed, issue will be closed within 7 days question Further information is requested labels May 7, 2020
@ycphs
Copy link
Owner

ycphs commented May 7, 2020

I hope the current version fixes the issue.

I tried it on my machine and it worked.

@sy20082010
Copy link
Author

@ycphs , I was under the impression 4.1.5 was the current version. Are you referring to a version that's even more recent than that?

@ycphs
Copy link
Owner

ycphs commented May 7, 2020

Yes I created a patch version 4.1.5.1 which solves your issue.

@ycphs
Copy link
Owner

ycphs commented May 7, 2020

Just try

require(​devtools​)
install_github(​"​ycphs/openxlsx​"​)

@sy20082010
Copy link
Author

Thanks! I will give that a try

kainhofer pushed a commit to kainhofer/openxlsx that referenced this issue May 7, 2020
preparation for patch release on cran
@sy20082010
Copy link
Author

Worked for me too, thank you for the quick response.

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Sep 8, 2021
# 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
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working fixed Fixed, issue will be closed within 7 days question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants