首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用epplus修复性能缓慢的问题?

如何使用epplus修复性能缓慢的问题?
EN

Stack Overflow用户
提问于 2019-01-29 18:50:24
回答 1查看 2.4K关注 0票数 1

我正在加载一个Excel文件,用于批量更新主数据中的数据。我有4张床单。导出、县、组织、设置。仅导出可见。其他的都被隐藏起来了。

文件的加载速度非常慢。最多需要2-3分钟。

我已经找到了问题所在。当我取消隐藏每一张工作表,并加载文件时,根本没有性能问题。我们不想展示床单,以免给我们的客户造成混淆。我做了一个小的控制台应用程序来测试这个行为。

代码语言:javascript
复制
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进行验证。当用户上载与未编辑文件的导出文件相同的文件时,将发生此长操作。

这是一个非常奇怪的行为,但是因为每个人都应该编辑文件并保存它,所以我不再花时间来解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2019-01-29 19:01:54

可以在取消隐藏模式下更新工作表,然后使用此属性将其隐藏

代码语言:javascript
复制
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.Hidden;

代码语言:javascript
复制
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.VeryHidden;

您还可以使用以下命令通过代码取消隐藏它们

代码语言:javascript
复制
worksheet.Hidden = OfficeOpenXml.eWorkSheetHidden.Visible;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54419368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档