R - OpenXLSX - 对公式应用格式/设置样式
R - OpenXLSX - Applying formatting / setting a style to a formula
通过 openxlsx
我正在填充一个 Excel 文件,其中包含数据和公式。对于某些单元格,需要格式化,例如百分比,这可以通过将 percentage
分配给 class 或应用样式来完成。但是,这不适用于公式。下面是一个包含 4 个条目的示例:前两个是数据并正确显示为百分比。条目 3 和 4 是公式,条目 3 使用 class
设置格式,而条目 4 使用 addStyle
# Create workbook
wb <- createWorkbook()
# Add new orksheet
addWorksheet(wb, sheetName = "Test")
x <- 0.05
class(x) <- c(class(x), "percentage")
writeData(wb, sheet = "Test", x = x, startRow = 1, startCol = 1, rowNames = FALSE, colNames = FALSE)
x <- 0.07
class(x) <- c(class(x), "percentage")
writeData(wb, sheet = "Test", x = x, startRow = 2, startCol = 1, rowNames = FALSE, colNames = FALSE)
x <- "A1+A2"
class(x) <- c(class(x), "percentage")
writeFormula(wb, sheet = "Test", x = x, startRow = 3, startCol = 1)
x <- "A1+A2"
writeFormula(wb, sheet = "Test", x = x, startRow = 4, startCol = 1)
number_format <- createStyle(numFmt = openxlsx_getOp("numFmt", "PERCENTAGE"))
addStyle(wb, sheet = sheet, number_format,
rows = 4:4, cols = 1:1, gridExpand = FALSE)
# Store the Excel-file
saveWorkbook(wb, "test_model1.xlsx", overwrite = TRUE)
生成的 WB:
这可能是因为公式被写成了字符。按 enter
后,正确的格式确实出现了。 Display as percentages using openxlsx::addStyle without having to click on cell in Excel也是这种情况,但是没有提供解决方案。
原来问题出在创建样式上:
number_format <- createStyle(numFmt = openxlsx_getOp("numFmt", "PERCENTAGE"))
应该是
number_format <- createStyle(numFmt = "percentage")
此外,在某些情况下,先应用样式,然后填写 data/formula。
通过 openxlsx
我正在填充一个 Excel 文件,其中包含数据和公式。对于某些单元格,需要格式化,例如百分比,这可以通过将 percentage
分配给 class 或应用样式来完成。但是,这不适用于公式。下面是一个包含 4 个条目的示例:前两个是数据并正确显示为百分比。条目 3 和 4 是公式,条目 3 使用 class
设置格式,而条目 4 使用 addStyle
# Create workbook
wb <- createWorkbook()
# Add new orksheet
addWorksheet(wb, sheetName = "Test")
x <- 0.05
class(x) <- c(class(x), "percentage")
writeData(wb, sheet = "Test", x = x, startRow = 1, startCol = 1, rowNames = FALSE, colNames = FALSE)
x <- 0.07
class(x) <- c(class(x), "percentage")
writeData(wb, sheet = "Test", x = x, startRow = 2, startCol = 1, rowNames = FALSE, colNames = FALSE)
x <- "A1+A2"
class(x) <- c(class(x), "percentage")
writeFormula(wb, sheet = "Test", x = x, startRow = 3, startCol = 1)
x <- "A1+A2"
writeFormula(wb, sheet = "Test", x = x, startRow = 4, startCol = 1)
number_format <- createStyle(numFmt = openxlsx_getOp("numFmt", "PERCENTAGE"))
addStyle(wb, sheet = sheet, number_format,
rows = 4:4, cols = 1:1, gridExpand = FALSE)
# Store the Excel-file
saveWorkbook(wb, "test_model1.xlsx", overwrite = TRUE)
生成的 WB:
这可能是因为公式被写成了字符。按 enter
后,正确的格式确实出现了。 Display as percentages using openxlsx::addStyle without having to click on cell in Excel也是这种情况,但是没有提供解决方案。
原来问题出在创建样式上:
number_format <- createStyle(numFmt = openxlsx_getOp("numFmt", "PERCENTAGE"))
应该是
number_format <- createStyle(numFmt = "percentage")
此外,在某些情况下,先应用样式,然后填写 data/formula。