openxlsx 货币样式 - 是否有舍入选项?
openxlsx currency style - Is there a rounding option?
openxlsx
包中的 createStyle
函数有一个参数 numFmt
,它允许您创建一个 excel 格式以应用于 . .xlsx 文件。您可以通过指定 numFmt = '0'
来舍入值,并且可以通过指定 numFmt = "CURRENCY"
来应用货币格式。
有没有办法指定四舍五入的货币格式?
我尝试了以下方法:
- 舍入数据框中的值不起作用,因为 excel
单元格仍然显示美分,例如
3.00
.
numfmt = 'CURRENCY0'
无效
如果没有,是否有另一个包允许您指定 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")
openxlsx
包中的 createStyle
函数有一个参数 numFmt
,它允许您创建一个 excel 格式以应用于 . .xlsx 文件。您可以通过指定 numFmt = '0'
来舍入值,并且可以通过指定 numFmt = "CURRENCY"
来应用货币格式。
有没有办法指定四舍五入的货币格式? 我尝试了以下方法:
- 舍入数据框中的值不起作用,因为 excel
单元格仍然显示美分,例如
3.00
. numfmt = 'CURRENCY0'
无效
如果没有,是否有另一个包允许您指定 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")