代码之家  ›  专栏  ›  技术社区  ›  IceCreamToucan

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

  •  1
  • IceCreamToucan  · 技术社区  · 8 年前

    这个 createStyle 中的函数 openxlsx 包有一个参数 numFmt ,它允许您创建Excel格式以应用于.xlsx文件中的特定单元格。可以通过指定 numFmt = '0' ,您可以通过指定 numFmt = "CURRENCY" .

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

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

    如果没有,是否有其他包允许您指定Excel单元格的格式,并允许对货币格式的单元格进行舍入?

    编辑:

    这给了我想要的(货币格式,带逗号,不加分)

    createStyle(numFmt="$0,0")
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   eipi10    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")
    

    以下是生成的Excel文件的外观:

    enter image description here

    推荐文章