AutoFitColumns()与EPPlus稍微短

时间:2016-02-15 20:01:27

标签: c# excel epplus

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我得出结论,这是EPPlus的一个错误。通过默认参数设置列宽也不准确(生成的宽度较低)。我没有测试手动设置列宽。

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

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