openxlsx 货币样式 - 是否有四舍五入选项?

Ice*_*can 5 excel r xlsx openxlsx

包中的createStyle函数openxlsx有一个参数numFmt,它允许您创建一个 excel 格式以应用于 .xlsx 文件中的特定单元格。您可以通过指定来舍入值numFmt = '0',并且可以通过指定来应用货币格式numFmt = "CURRENCY"

有没有办法指定四舍五入的货币格式?我尝试了以下方法:

  • 舍入数据框中的值不起作用,因为 excel 单元格仍然显示美分,例如$103.00.
  • numfmt = 'CURRENCY0' 不起作用

如果没有,是否有另一个包允许您指定 excel 单元格的格式,并允许对货币格式的单元格进行四舍五入?

编辑:

这给了我我想要的(货币格式,带逗号,没有美分)

createStyle(numFmt="$0,0")
Run Code Online (Sandbox Code Playgroud)

eip*_*i10 8

您可以设置numFmt="$0"以获取四舍五入的货币值。例如:

library(openxlsx)

mtcars$hp = 100 * mtcars$hp

wb = createWorkbook()
sht = addWorksheet(wb, "test")
writeData(wb, sht, mtcars)

sty1 = createStyle(numFmt="$0")
sty2 = createStyle(numFmt="$0.00")
sty3 = createStyle(numFmt="$0,0.00")

addStyle(wb, sht, sty1, rows=2:(nrow(mtcars)+1), cols=1)
addStyle(wb, sht, sty2, rows=2:(nrow(mtcars)+1), cols=5)
addStyle(wb, sht, sty3, rows=2:(nrow(mtcars)+1), cols=4)

saveWorkbook(wb, "test.xlsx")
Run Code Online (Sandbox Code Playgroud)

生成的 Excel 文件如下所示:

在此处输入图片说明

  • 关于自定义数字格式的附加说明:我应该澄清这些格式不是仅限于 `openxlsx` 的特殊选项。相反,它们是标准的 Microsoft Office 格式化代码,而 `openxlsx` 只允许您在 R 中使用它们来格式化写入 Excel 文件的数据。 (3认同)