我有一个超过 1000 行的 excel 文件。每行包含一些数据和 2 张图像。 图像附OfficeOpenXml.Drawing.eEditAs.OneCell
填充 Excel 后,我运行它来设置行高。
int prodTableStart = 3;
int prodTableEnd = 1025;
while (prodTableStart <= prodTableEnd)
{
ws.Row(prodTableStart).Height = 112d; // works, but mega slow
prodTableStart++;
}
我试图用这样的事情加速:ws.Cells["A" + prodTableStart + ":L" + prodTableEnd].Rows
但这会返回一个int
? 那么,如何在选定的行范围内设置行高呢?
当我有这么多行时,它甚至永远不会结束。不会引发任何异常。这个过程需要永远。
附言。我在 C# 中的 .Net 4.6.2 上使用 epplus 最新的 nuget (4.1.0)
在 EPPlus 中设置行高可能非常慢。您可以非常快速地设置所有行的行高,而不是逐个更新多行的行高,例如:
workSheet.DefaultRowHeight = 500;
如果您不想设置所有行高,您现在可以逐个将行高设置回这些行的先前默认值。如果需要更新高度的行多于不需要更新高度的行,则此解决方案会更快。
对于 4 年后寻找这个的人:出于某种原因,调整包含图像的行的大小会显着减慢速度。为了提高效率,请在添加图像之前计算并设置行高。您可能需要添加包含所有文本信息的行,以及字符串。清空图像所在的单元格,然后在设置行的高度后添加它们。