Как выполнить экспорт данных из DataGridView в Excel файл?

В этой статье хочу показать на простом примере, как с помощью языка c# можно выполнить экспорт данных из DataGridView в Excel файл.

И так для начала создадим Windows Forms приложение на языке csharp, после чего добавим на форму два элемента управления: DataGridView (dgv) и кнопку с надписью: Экспорт в Excel.

Windows Forms Application

Подготовка

И так для начала создадим метод CreateTable.

С помощью данного метода мы создадим таблицу с данными, которые затем, например, в событие Form.Load, загрузим в элемент управления DataGridView.

Нажимаем F5 или Ctrl+F5 и получаем следующий результат.

control DataGridView

Экспорт в Excel

Первый этап закончен. Теперь переходим ко второму этапу, который так же начнётся с создания метода. И так, для начала создадим метод ExportToExcel. С помощью него, как думаю не трудно догадаться, мы собственно и будем выполнять экспорт данных в Excel файл.

Для работы с Excel нам понадобиться добавить в проект сборку: Microsoft.Office.Interop.Excel.

Add references

подключение сборки

Чтобы каждый раз не обращаться к членам и типам данной сборки, используя полные имена, добавим следующую строку:

Если сейчас Вы обратите своё внимание на написанный ранее код, то заметите, что в методе CreateTable имя класса DataTable почему-то стало подчеркнутым или выделенным красным цветом. Это произошло, потому что класс DataTable, присутствует как в пространстве имён Microsoft.Office.Interop.Excel так и в пространстве имён System.Data, в результате чего возник конфликт имён.

Чтобы разрешить возникший конфликт создадим псевдоним для пространства имён System.Data

псевдоним

После чего в исходном коде перед именем класса DataTable укажем имя псевдонима.

Конфликта больше нет и теперь можно работать дальше.

И так, чтобы выполнить экспорт данных в excel файл нам понадобиться для начала создать объект класса Application. Здесь так же возникает конфликт имен, поэтому в данном примере я создам ещё один псевдоним, но Вы можете просто указать полное имя:

Затем внутри метода ExportToExcel создадим новый объект.

Следующая строка используется для отладки, чтобы мы могли отслеживать результаты в ходе выполнения кода.

Затем создадим одну новую рабочую книгу.

Excel рабочая книга

Созданная книга по умолчанию содержит три листа, поэтому добавлять их в данном примере не требуется. Поэтому сразу же получаем активный лист.

В первой строке листа мы поместим названия колонок.

колонки

Первая цифра это номер строки, вторая ячейки. Вместо цифры Вы можете указывать и буквенное обозначение.

Экспортируем данные из DataGridView в Excel файл.

Сохраняем результат в Excel файл.

В данном примере файл будет создан в папке Debug текущего проекта.

Excel файл

И в конце завершаем работу с Microsoft Excel.

Нам осталось выполнить последний шаг. В событие Button.Click поместим метод ExportToExcel.

На этом экспорт завершен, окончательный результат можно увидеть на картинке ниже.

результат

Полный листинг:

Если Вам нужно вывести данные не из DataGridView, а из DataTable то это, например можно сделать следующим образом:

На этом всё, если есть какие-то вопросы, то оставляйте их в комментариях.

Дополнение:

1. Свойство Visible влияет на быстродействие, поэтому перед выполнением цикла его лучше установить в значение false.

2. Большой объём данных можно быстро экспортировать, например, с помощью следующего способа:

В данном примере xml схема не используется (второй параметр), поэтому возможно появится сообщение: Указанный источник XML не ссылается на схему просто нажимаем кнопку OK.

Читайте также:

Похожие темы

c# Как изменить цвет строки в DataGridView?... Изменение цвета строки в элементе управления DataGridView В данной статье хочу показать, как можно изменить цвет строки в элементе управления DataGri...
c# Как удалить колонку в DataGridView?... Удаление колонки в DataGridView В этой статье мы рассмотрим, как удалить колонку в элементе DataGridView с помощью языка c# Создадим новый проект ...
c# Как добавить строку в Excel файл?... Добавление строки в Excel файл Сегодня хочу показать на простом примере, как добавить строку в Excel файл. 1. Открываем программу Visual Studio, в...
c# DataGridView свойство ColumnCount Свойство ColumnCount элемента управления DataGridView Свойство ColumnCount элемента управления DataGridView обычно используется для решения следующих...
Как передать данные между формами в c#... Передача данных между формами в языке c# В этой статье хочу показать один из возможных способов передачи данных между формами. Передача данных между...