提高EPPlus在工作表中循环的性能



我一直在寻找瓶颈性能问题,我惊讶地发现:

foreach (ExcelWorksheet ws in wb.Worksheets)
}

有将近2/3的时间在吃东西。

我将以上内容与以下内容进行了比较:

foreach (ExcelWorksheet ws in wb.Worksheets)
MyMethod(ws);
}

没有MyMethod的耗时:73418495551秒

MyMethod的消耗时间为:996992858096毫秒。

有什么方法可以改进吗?我只想在有帮助的情况下寻找可见的床单。

通往上述代码块的代码:

Pack = new ExcelPackage(file);
ExcelWorkbook wb = pack.Workbook;
Stopwatch testsw = new Stopwatch();
testsw.Start();
foreach (ExcelWorksheet ws in wb.Worksheets)
MyMethod(ws);
}
testsw.Stop();
Console.WriteLine("testsw " + testsw.ElapsedMilliseconds);

对我来说,

var fi = new System.IO.FileInfo(sourceFile);
using (var p = new ExcelPackage(fi))
{
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
var wslist = p.Workbook.Worksheets;
foreach ( var ws in wslist)
{
Console.WriteLine(ws.Name);
}
sw.Stop();
Console.WriteLine("sw " + sw.ElapsedMilliseconds);
}

耗时209毫秒

相关内容

  • 没有找到相关文章

最新更新