将超过100000行的wpf数据网格导出到Excel-C#Microsoft.OfficeInterop14



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

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

尽管我为用户提供了很多过滤选项,这样他/她就可以很容易地将数据包导出到excel文件中,并将它们放在一个大文件中——但应该可以让软件完成,因为2010年excel的限制约为1000000行。

好吧,最后我不明白为什么100000行是通过Interop导出的限制。我最终使用了OpenXMLSDK,并在EricWhite所记录的流媒体方法中借助OpenXMLPowertools。工作非常适合任何大小(性能为1000行/秒),而且您不需要Interop。只需使用以下行启动创建的XLSX文件:

System.Diagnostics.Process.Start(completeFilename);

最新更新