openxlsx 将单元格格式化为带逗号的数字,0 值替换为破折号

openxlsx format cells as number with comma, and 0 values are replaced with a dash

我正在尝试编写一个工作簿脚本以匹配一种格式,该格式会自动将任何 0 值更改为破折号,其方式与单击 Excel 中的“,”大致相同。我尝试使用 numFmt = 'COMMA' 但是无法生成破折号。我尝试了一些自定义格式,但没有成功。有没有代码可以给我逗号,没有小数位,并用破折号代替 0?我现在的代码如下。

    addStyle(wb, sheet = "Sheet Name", style = createStyle(numFmt = "#,0"), rows = 4:15, cols = 2:17, gridExpand = T)

我想这更像是一个 Excel 问题而不是 R。在 Excel 中,自定义类型的工作方式类似于

positive number; negative number; zero

因此,如果您想将零转换为破折号,则必须是:

#,##0;-#,##0;-

因此根据您的代码,它将是:

 addStyle(wb, sheet = "Sheet Name", style = createStyle(numFmt = "#,##0;-#,##0;-"), rows = 4:15, cols = 2:17, gridExpand = T)