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;
我用 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;