从wpf datagrid导出超过100,000行到Excel - C#Microsoft.Office Interop 14

时间:2014-01-19 20:38:44

标签: c# wpf excel datagrid ms-office

我有以下问题:在我的WPF应用程序中,我确实在数据网格中提供数据,用户可以通过对象数组将网格数据导出到Excel,如SO-thread中所述。 好吧,只要导出的行少于100,000行,它就可以正常工作。但我不能导出超过100,000行。然后Excel不会打开,但是我可以在任务管理器中看到Excel进程已经启动但是什么也没做,并且分配了大约5 MB。但是,我的程序不会被阻止,也不会报告任何异常。 并且无论有多少列都没关系 - 限制似乎是100,000行。

可能相关的进一步细节: 经过测试的环境: - Win 7 / XP / 8(32位) - Office 2010 - Microsoft.Office.Interop 14 - .NET 4.0客户端配置文件

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

1 个答案:

答案 0 :(得分:1)

好吧,最后我无法找出为什么100,000行是通过Interop导出的限制。我最后在Open XML Powertools的帮助下使用Open XML SDK作为documented by Eric White。适用于任何尺寸的工作(性能为1,000行/秒),您不需要Interop。只需使用以下行启动创建的XLSX文件:

System.Diagnostics.Process.Start(completeFilename);