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

时间:2018-05-18 14:12:42

标签: r excel xlsx openxlsx

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

有没有办法指定圆形货币格式? 我尝试过以下方法:

  • 舍入数据框中的值并不起作用,因为excel 细胞仍显示美分,例如$103.00
  • numfmt = 'CURRENCY0'不起作用

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

编辑:

这给了我想要的东西(货币格式,逗号,没有分钱)

createStyle(numFmt="$0,0")

2 个答案:

答案 0 :(得分:3)

您可以设置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")

以下是生成的Excel文件的样子:

enter image description here

答案 1 :(得分:0)

万一您想使用其他货币格式,可以尝试

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

例如

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