R openxlsx货币样式-是否有舍入选项?
R openxlsx货币样式-是否有舍入选项?,r,excel,xlsx,openxlsx,R,Excel,Xlsx,Openxlsx,openxlsx包中的createStyle函数有一个参数numFmt,可用于创建excel格式,以应用于.xlsx文件中的特定单元格。您可以通过指定numFmt='0'对值进行舍入,也可以通过指定numFmt=“currency”应用货币格式 有没有办法指定一种四舍五入的货币格式? 我尝试了以下方法: 在数据框中舍入值不起作用,因为excel 单元格仍然显示美分,例如,$103.00 numfmt='CURRENCY0'不起作用 如果没有,是否有另一个包允许您指定excel单元格的格式,并
openxlsx
包中的createStyle
函数有一个参数numFmt
,可用于创建excel格式,以应用于.xlsx文件中的特定单元格。您可以通过指定numFmt='0'
对值进行舍入,也可以通过指定numFmt=“currency”
应用货币格式
有没有办法指定一种四舍五入的货币格式?
我尝试了以下方法:
- 在数据框中舍入值不起作用,因为excel
单元格仍然显示美分,例如,
$103.00
不起作用numfmt='CURRENCY0'
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文件的外观:
如果你想用其他货币格式化,你可以试试这个 style=createStyle(numFmt=“[$CURRENCY SYMBOL]#,##0”) 例如
style=createStyle(numFmt=“[$UGX]#,##0”)谢谢。两个问题:(1)你是怎么知道的?是否有对所有可用格式的解释?(2) 这将删除逗号。如何保持逗号和圆形?我添加了一个带有逗号分隔符的示例。我怎么知道的?我从来没有仔细研究过Excel数字格式的规则,但这些年来,我偶尔需要创建一个自定义格式。因此,我大致了解了它们的工作原理。我在回答中创建的格式看起来就像是“自然”的事情,结果证明是可行的。如果它们不起作用,我会在谷歌上搜索并找出如何调整它们。关于如何创建自己的自定义格式的说明,这里有很多带有示例的网页。谷歌“Excel数字格式”或“Excel自定义数字格式”(不带引号)或类似的东西,你会看到一堆指南。关于自定义数字格式的另一个注意事项是:我应该澄清一下,这些格式不是仅限于
openxlsx
的特殊选项。相反,它们是标准的Microsoft Office格式代码,openxlsx
只允许您在R中使用它们来格式化写入Excel文件的数据。
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")