2014-01-19 3 views
1

У меня есть следующая проблема: в моем WPF-приложении я предоставляю данные в datagrid, и пользователь может экспортировать данные сетки в Excel через массив объектов, как описано в этом SO-thread. Ну, он работает нормально, пока экспортируется менее 100 000 строк. Но я не могу экспортировать более 100 000 строк. Тогда Excel не откроется, но я вижу в диспетчере задач, что процесс Excel был запущен, но ничего не делает и имеет около 5 МБ, назначенных ему. Однако моя программа не заблокирована и не сообщает никаких исключений. И не имеет значения, сколько столбцов есть - предел составляет 100 000 строк.Экспорт более 100 000 строк из datagrid из wpf в Excel - C# Microsoft.Office Interop 14

Дальнейшие детали, которые могут иметь отношение: Испытано среда: - Win 7/XP/8 (32 бит) - Офис 2010 - Microsoft.Office.Interop 14 - .NET 4.0 Client Profile

Althoug Я предлагаю пользователю множество опций фильтров, чтобы он мог легко экспортировать пакеты в файлы excel и объединять их в один большой файл - но это должно быть возможно, чтобы это было сделано программным обеспечением в качестве предела Excel в 2010 год - около 1 000 000 строк.

+0

В случае действительно больших наборов данных, которые должны храниться в * Excel *, вы должны использовать файлы 'csv'. –

ответ

1

Ну, в конце концов, я не мог узнать, почему 100 000 строк были пределом для экспорта через Interop. Я закончил использование Open XML SDK с помощью Open XML Powertools в потоковом подходе как documented by Eric White. Работа идеально подходит для любого размера (производительность 1000 строк в секунду), и вам не нужно Interop. Просто запустите созданный XLSX-файл, используя следующую строку:

System.Diagnostics.Process.Start(completeFilename); 
Смежные вопросы