【发布时间】:2011-10-21 02:53:36
【问题描述】:
我有使用 OpenXML 库导出数据的代码。
我有 20,000 行和 22 列,这需要很长时间(大约 10 分钟)。
是否有任何解决方案可以将数据从 C# 导出到 excel,因为我从 asp.net mvc 应用程序执行此操作会更快,并且许多人的浏览器正在超时。
【问题讨论】:
-
您可能必须生成一个新线程,并在那里运行该进程。即使你现在加快速度,如果它增长到 100,000 列呢?类似于: new Thread(() => { // 做工作 }).Start(); (.Net 4)
-
@Patrick Pitre - 这对减少时间有何帮助?
-
这是格式化数据还是您可以使用逗号分隔值文件代替?我认为您的放缓是在创建大型 XML 集而不是数据量本身。
-
@leora 抱歉,我应该澄清一下。产生一个新线程应该有助于防止您的页面超时问题。类似于 JFalcon 在下面的建议。在后台异步执行处理,然后在完成时通知用户。让用户/浏览器一直坐在那里等待并不是好的 UI/UX 实践。
-
@leora 但是,您可能会使用多个线程来加速它,方法是让每个线程只获取一批文件并处理它。例如,线程 1 可以处理前 1000 行,线程 2 可以处理后 1000 行,依此类推。当一个线程完成后,它会拾取接下来的 1000 行。您必须设置某种递增变量来跟踪已处理的行,因此每个线程都确切地知道下一批位于哪一行。可能会变得混乱,但可能是你唯一的希望。因为同样,如果文件增长到 100,000+ 行怎么办。
标签: c# asp.net-mvc excel openxml