我使用EPPlus生成Excel工作表,最后在我的范围内调用AutoFitColumns()
:
sheet.DefaultColWidth = 10;
sheet.Cells[1,1,myRow,myCol].AutoFitColumns();
它工作正常,除了所有调整的列最终略微偏离实际列宽。当我双击列标题时,Microsoft Excel会正确调整宽度,但使用EPPlus时,最后一个字符通常会被半隐藏。
EPPlus和Excel的自动调整之间的大小差异似乎根据内容的宽度而有所不同,但它不是线性的,因此我假设EPPlus不会根据字体准确计算内容宽度。
有没有办法解决这个问题,除了在自动调整后任意增加列宽?
答案 0 :(得分:0)
我得出结论,这是EPPlus的一个错误。通过默认参数设置列宽也不准确(生成的宽度较低)。我没有测试手动设置列宽。
作为一种解决方法,我计算了使用EPPlus和Excel设置的每列宽度之间的差异,并确定对于我的应用程序,它相差最多6-7%。因此,在致电AutoFitColumns()
后,我会执行以下操作:
for(int i = 1; i < myRow; i++
sheet.Column(i).Width *= 1.06;