Как хранить данные в 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).