我正在加载一个Excel文件,用于批量更新主数据中的数据。我有4张床单。导出、县、组织、设置。仅导出可见。其他的都被隐藏起来了。
文件的加载速度非常慢。最多需要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真的很慢,当不隐藏时,它真的很快。加载wsheet后,获取设置的速度很快。
除了揭开我的床单,我还能做什么?
更新
我们进一步调试了这个问题,隐藏/未隐藏列是假阳性。当我们停止调试并重新启动它时,由于超时过长,调试器仍然能够以某种方式获取旧的结果。
我现在找到了真正的罪魁祸首。当我们使用EPPLUS导出文件时,最终用户应该编辑数据,并将其上传回UI进行验证。当用户上载与未编辑文件的导出文件相同的文件时,将发生此长操作。
这是一个非常奇怪的行为,但是因为每个人都应该编辑文件并保存它,所以我不再花时间来解决这个问题。
发布于 2019-01-29 19:01:54
可以在取消隐藏模式下更新工作表,然后使用此属性将其隐藏
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.Hidden;或
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.VeryHidden;您还可以使用以下命令通过代码取消隐藏它们
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.Visible;https://stackoverflow.com/questions/54419368
复制相似问题