使用openxlsx设置丹麦式点号千分位分隔符的技术问题
解决openxlsx设置丹麦数字格式(点号千分位)的问题
我正在用R的openxlsx包给Excel文件添加新工作表,丹麦地区要求点号作为千分位分隔符,希望输出的.xlsx文件能按这个格式显示数字,同时保留原有数字格式。
我的代码如下:
library(openxlsx) file <- file.path("S:", "test.xlsx") df <- data.frame(A = c(1, 200, -3000, 40000, 500000, 6000000), B = c(0.0101, 1.0245, 0.9876, 0.6512, 0.0101, 1.0245)) wb <- loadWorkbook(file) sht <- addWorksheet(wb, sheetName = "newSheet") head_st <- createStyle(textDecoration = "Bold") number_st <- createStyle(numFmt = "#.##0") pct_st <- createStyle(numFmt = "PERCENTAGE") writeData(wb, sht, df, headerStyle = head_st) addStyle(wb, sht, style = number_st, cols=c(1), rows = 2:(nrow(df) + 1), gridExpand = TRUE) addStyle(wb, sht, style = pct_st, cols=c(2), rows = 2:(nrow(df) + 1), gridExpand = TRUE) saveWorkbook(wb, file, overwrite = TRUE)
目前的问题是:Excel输出里百分比格式正常(用逗号作小数分隔符),但数字格式完全不符合预期,千分位没有用点号分隔。
我已经尝试了这些方法,但都没解决:
- 参考Excel的数字格式定义,改用
"#.##0;-#.##0"作为numFmt参数,无效 - 尝试使用Excel自定义格式的完整字符串,但执行代码时直接报错:
> number_st <- createStyle(numFmt = "_-* #.##0_-;-* #.##0_-;_-* \"-\"??_-;_-@_-") Error in "_-* #.##0_-;-* #.##0_-;_-* " - "??_-;_-@_-" : non-numeric argument to binary operator
有没有可行的解决思路?
内容的提问来源于stack exchange,提问作者CodingCat
相关产品推荐
相关产品推荐

