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

openxlsx currency style - Is there a rounding option?

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

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

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

编辑:

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

createStyle(numFmt="[=10=],0")

您可以设置 numFmt="[=11=]" 以获得四舍五入的货币值。例如:

library(openxlsx)

mtcars$hp = 100 * mtcars$hp

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

sty1 = createStyle(numFmt="[=10=]")
sty2 = createStyle(numFmt="[=10=].00")
sty3 = createStyle(numFmt="[=10=],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")

生成的 Excel 文件如下所示:

万一你想用其他货币格式化,你可以试试这个

style = createStyle(numFmt="[$CURRENCY SYMBOL]#,##0")

例如

style = createStyle(numFmt="[$UGX]#,##0")