Экспорт из DataGridView в Excel с помощью C# (Без сторонних библиотек)

Здравствуйте, дорогие читатели блога lemiro.ru. Сегодня хочу поделиться, как выгрузить данные из DataGridView в EXCEL с помощью языка программирования C#. В предыдущей статье я уже рассматривал один способ экспорта, но там требовалась дополнительная сторонняя библиотека ExcelLibrary. В данном же способе, есть один минус: при большом количестве записей файл MICROSOFT EXCEL создается долго. Примерно на 500 строк — 14 секунд. Скорее всего это из-за того, что каждая ячейка с данными считывется и записывается в файл последовательно.

Для начала создадим новый класс и подключим ссылку на Microsoft.Office.Interop.Excel;. Так же добавим его в код:

После этого создадим новые приватные переменные:

Опишем метод, который будет создавать COM-объект EXCEL:

Далее опишем вспомогательный метод, который будет переводить числовое значение ячейки в представление вида «A1»:

Теперь, собственно и сам метод, который будет заполнять наш COM-объект (excel) данными из DataGridView:

Хотелось бы отдельно рассмотреть код сборщика мусора. Без этих двух строк При закрытии программы иногда оставались зависшие процессы EXCEL, которые приходилось
завершать вручную через Диспетчер Задач.

Дополнение: Как выяснилось опытным путем, Microsoft Excel не умеет переносить текст в объединенных ячейках, для решения этой проблемы была написана функция,
которая копировала текст из объединенной ячейки в любую обычную, выставляла бы свойство «перенос текста», после чего копировала высоту ячейки, очищала ее и присваивала новую высоту объединенной.

Сам класс полностью:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *