Skip to content
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

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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