我最近注意到,当我使用openxlsx包创建excel工作簿时,它生成的电子表格的默认列宽为10.71,而不是我们通常在excel中得到的8.43。例如,如果我运行以下代码来创建一个完全空白的excel电子表格,则所有列的宽度为10.71。
wb <- openxlsx::createWorkbook()
openxlsx::addWorksheet(wb, "Sheet 1")
openxlsx::saveWorkbook(wb, "Test File.xlsx", overwrite = TRUE)有人知道如何将默认的列宽度设置回标准的8.43吗?我知道我可以运行以下命令来更改列宽,但是这会向电子表格中添加额外的格式,这将在我输入更大的数据集后增加我的文件大小。这还意味着,导出到excel的数据数据中的列与数据右侧的列的宽度不同(这看起来很琐碎,但如果可能的话,我希望保持整洁)。
openxlsx::setColWidths(wb, "Sheet 1", cols = 1:ncol(df), widths = "8.43")在openxlsx::op.openxlsx中似乎没有描述列宽度的任何东西,这在我看来有点奇怪。
如果这是一个愚蠢的问题,或者我错过了一些简单的问题,但我还没有在网上找到任何关于这个问题的信息,请原谅。
发布于 2022-02-01 07:48:35
width的默认参数实际上是8.43,可以在帮助函数?setColWidth中看到。所以可能还有另一个原因干扰了这里。
openxlsx_getOp("minWidth")给了什么?缺省值为3,但您可能将其更改为10.71?
如果您不是从头开始创建工作簿,而是在现有文件中读取,这也可以解释两者之间的区别(如果读取文件的宽度为10.71)。
更新:我可以确认这个问题,默认设置的列宽度为10.71,而不是8.43。因此,我的建议是在开发人员的页面上打开一个bug:https://github.com/ycphs/openxlsx/issues
https://stackoverflow.com/questions/70936734
复制相似问题