从wpf datagrid导出超过10万行到Excel – C#Microsoft.Office Interop 14

我有以下问题:在我的WPF应用程序中,我提供了一个数据网格中的数据,用户可以通过一个对象数组将数据导出到Excel中,就像在这个SO线程中描述的那样。 那么,只要less于10万行输出,它就可以正常工作。 但是我不能输出超过10万行。 然后,Excel不能打开,但我可以在任务pipe理器中看到一个Excel进程已经启动,但是什么也没做,大约有5 MB分配给它。 但是,我的程序没有被阻止,也没有报告任何exception。 不pipe有多less列 – 限制似乎是10万行。

进一步的细节可能是相关的:testing环境: – Win 7 / XP / 8(32位) – Office 2010 – Microsoft.Office.Interop 14 – .NET 4.0客户端configuration文件

Althoug我为用户提供了很多过滤选项,所以他/她可以轻松地将数据包导出到excel文件,并将它们放在一个大文件中 – 但应该可以通过软件来完成,如Excel限制2010年约有100万行。

那么,最后我不知道为什么100,000行是通过Interop出口的限制。 我最终在Open XML Powertools的帮助下使用了Open XML SDK,并采用了Eric White所logging的stream式方法。 对于任何尺寸的工作都是完美的(性能是每秒1000行),而不需要Interop。 只需使用以下行启动创build的XLSX文件:

 System.Diagnostics.Process.Start(completeFilename);