我正在加载一个Excel文件以批量更新主数据中的数据。我有四张纸。导出,县,组织,设置。仅导出可见。其他所有东西都是隐藏的。
文件的加载速度非常慢。最多需要2-3分钟。
我已经找到问题了。当我取消隐藏每张纸并加载文件时,根本就没有性能问题。我们不想显示表格,以免给我们的客户造成混乱。我制作了一个小型控制台应用程序来测试此行为。
private static void Main(string[] args)
{
using (var package = new ExcelPackage(new FileInfo(@"")))
{
var wb = package.Workbook;
var wsheets = wb.Worksheets;
var settings = wsheets["Settings"];
}
Console.ReadKey();
}
wb很快 隐藏我的工作表时,wsheets真的很慢,而没有隐藏时,wsheets真的很快。 进行设置时,加载一张wsheets很快。
除了取消隐藏工作表外,我该怎么办?
我们进一步调试了该问题,隐藏/未隐藏列是误报。当我们停止调试并重新启动它时,由于巨大的超时,调试器仍然能够以某种方式获取旧结果。
我现在找到了真正的罪魁祸首。当我们使用EPPLUS导出文件时,最终用户应编辑数据,然后将其上传回UI进行验证。当用户上传同一文件时,就像在不编辑文件的情况下导出该文件一样,会发生这种冗长的操作。
这是一个很奇怪的行为,但是由于每个人都应该编辑文件并保存它,因此我不再花时间尝试解决这个问题。
答案 0 :(得分:1)
您可以取消隐藏方式更新工作表,然后使用此属性将其隐藏
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.Hidden;
或
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.VeryHidden;
您还可以使用以下代码通过代码取消隐藏它们
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.Visible;