AutoFitColumns() with EPPlus slightly short

本文关键字:slightly short EPPlus with AutoFitColumns | 更新日期: 2023-09-27 18:34:38

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

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

它工作正常,除了所有调整的列最终略低于实际列宽。当我双击列标题时,Microsoft Excel 会正确调整宽度,但使用 EPPlus,最后一个字符通常会半隐藏。

EPPlus 和 Excel 的自动调整之间的大小差异似乎根据内容的宽度而变化,但它不是线性的,因此我假设 EPPlus 不会根据字体准确计算内容宽度。

除了自动调整后任意增加列宽之外,有没有办法解决这个问题?

AutoFitColumns() with EPPlus slightly short

我的结论是这是EPPlus的一个错误。通过默认参数设置列宽也不准确(结果宽度较小(。我还没有测试手动设置列宽。

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

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