AutoFitColumns() 与 EPPlus 略短

AutoFitColumns() with EPPlus slightly short

我用 EPPlus 生成了一个 Excel sheet,最后,在我的范围内调用 AutoFitColumns()

sheet.DefaultColWidth = 10;
sheet.Cells[1,1,myRow,myCol].AutoFitColumns();

它工作正常,除了所有调整后的列最终都略小于实际列宽。当我双击 header 列时,Microsoft Excel 会适当调整宽度,但使用 EPPlus,最后一个字符通常会 half-hidden.

EPPlus 和 Excel 的 auto-adjust 之间的大小差异似乎根据内容的宽度而变化,但它不是线性的,所以我假设 EPPlus 不计算内容宽度准确地基于字体。

除了在 auto-adjusting 之后任意增加列宽之外,有没有办法解决这个问题?

我断定这是 EPPlus 的错误。通过默认参数设置列宽也是不准确的(结果宽度较低)。我没有测试过手动设置列宽。

作为解决方法,我计算了使用 EPPlus 和 Excel 设置的每列宽度之间的差异,并确定对于我的应用程序,它的差异高达 6-7%。因此,在调用 AutoFitColumns() 之后,我执行以下操作:

for(int i = 1; i < myRow; i++
    sheet.Column(i).Width *= 1.06;