2014-02-11 3 views
0

У меня есть таблица размером от 80 до 90 столбцов, и у нее есть данные от 800000 до 900000, мне нужно экспортировать данные около 400000, чтобы преуспеть с использованием asp.net и C#.Как экспортировать данные для экспорта в excel

Я попытался экспортировать данные из набора данных с использованием метода DOM Open-XML, но в какой-то момент он выведет систему и получит сообщение «Ошибка памяти из привязки».

может любой другой метод, который будет экспортировать данные с sqlserver в Microsoft Excel 2007/2010.

+0

вы видели [Как импортировать или данные таблицы экспорта SQL Server в листе MS-Excel с помощью C# Code] (http://www.mindstick.com/Blog/294/Как% 20to% 20import% 20or% 20export% 20SQL) ?? –

ответ

3

Вы знаете, что excel может открывать файлы CSV (Comma Separated Value) без проблем?

Это о лучшем - и тонком пути. Я вижу, что это обработано.

И не помещайте их в набор данных. Используйте читатель и записывайте их в поток ответов по мере их чтения. Не нужно материализовывать их в памяти.

1

DOM облегчает работу, потому что все строго типизировано. К сожалению, подход DOM требует загрузки целых частей Open XML в память, что может привести к исключениям из памяти.

Вы можете также использовать возможности написания SAX типа, как описано в следующей статье Брайан Джонс:

Writing Large Excel Files with the Open XML SDK

0

метод, предложенный TomTom будет лучше всего, когда ур дело с такими объемными данными. но если вам нужно, чтобы экспортируемый файл был xls или xlsx, тогда вы можете попробовать использовать файл Excel в качестве источника данных и использовать OleDb для подключения к источнику данных (в этом случае файл Excel). И используйте запросы вставки, чтобы вставлять строки в файл excel.

Вы также можете попробовать использовать Microsoft.Office.Interop.Excel писать, чтобы преуспеть файлы .. Но я все еще не уверен, сколько времени он будет потреблять, чтобы иметь дело с такими тяжелыми данными ..

+1

Я тоже об этом подумал, но ссылка на веб-сайт в этом вопросе заставляет меня думать, что это может не сработать - ни один здравомыслящий веб-сайт не поддерживает доступный сервер sql и/или пользователи не имеют доступа к базе данных. Если вы хотите, чтобы это из веб-сайта делало это ЧЕРЕЗ веб-сайт также легче для рабочего процесса пользователя. – TomTom

Смежные вопросы