Как хранить данные в Excel из DataSet, не переходя по ячейкам?

Дубликат: Какой самый простой способ импортировать System.Data.DataSet в Excel?

Используя C# под VS2008, мы можем создать приложение Excel, рабочую книгу и затем рабочий лист, выполнив это:

Application excelApp = new Application();
Workbook excelWb = excelApp.Workbooks.Add(template);
Worksheet excelWs = (Worksheet)this.Application.ActiveSheet;

Затем мы можем получить доступ к каждой ячейке с помощью "excelWs.Cells[i,j]" и без проблем писать / сохранять. Однако при большом количестве строк / столбцов мы ожидаем снижения эффективности.

Есть ли способ "привязки данных" из объекта DataSet к рабочему листу без использования подхода "ячейка за ячейкой"? Большинство методов, которые мы видели в какой-то момент, возвращаются к клеточному подходу. Спасибо за любые предложения.

4 ответа

Вы также можете визуализировать GridView в строку и сохранить результаты на клиенте в виде HTML или XLS. Если вы используете расширение файла XLS, чтобы связать данные с Excel, вы увидите ошибку при открытии файла в Excel. Это ничего не повредит, и ваши данные HTML откроются и будут отлично смотреться в Excel...

Почему бы не использовать ADO.NET с помощью поставщика OLEDB?

См.: Советы по чтению электронных таблиц Excel с использованием ADO.NET

Вместо того, чтобы перемещаться ячейка за ячейкой, быстрее установить двумерный массив объектов в диапазон Excel.

object[][] values = ...
ws.Range("A1:F2000").Value = values;

Тем не менее, путь OleDb все еще намного быстрее, чем выше.

Это дублирующий вопрос.

Смотрите: Какой самый простой способ импортировать DataSet в Excel

(Ответ таков: используйте OleDbConnection и прочитайте набор данных из Excel).

Другие вопросы по тегам