Быстрая выгрузка из DataGridView1 в Excel - Visual Basic .NET
Формулировка задачи:
Всем привет.
Столкнулся с проблемой выгрузки данных из DataGridView1 в Excel
Почти все примеры, которые есть в Интернете показывают 1 метод - циклом For Next по ячейкам Excel.
Данный метод крайне медленный.
По практике работы с Excel могу сказать, что самый быстрый способ взять с листа и записать на лист является способ через использование массива.
Взять информацию с листа:
вернуть данные на лист:
а не так
Отсюда вопрос - как можно "взять" данные из DataGridView1 в массив или DataSet (DataTable)
Обращение циклом к ячейкам листа Excel - очень медленный процесс, но можно было бы, например, создать двумерный массив, циклом загрузить в него данные из DataGridView1 и уже одной строчкой выгрузить массив на лист Excel, типа:
Подскажите, как можно взять данные из DataGridView1 в массив ? Обязательно ли это делать циклом?
Хорошо бы, что-то такого было бы
Dim ds As New DataSet
Dim dt As DataTable
ds = Me.DataGridView1.DataSource или dt = Me.DataGridView1.DataSource
Но ни то, ни то не работает.
P.S. Загружаю данные в DataGridView1 вот так
Пока нашёл/доработал такой способ. Но есть косяк. В одном столбце есть даты, даты забираются из Excel и вставляются в DataGridView1 и дата в DataGridView1 отображается корректно, а вот этим ниже представленным способом дата из DataGridView1 после вставки на лист получается уже другого формата, т.е. вместо нужной даты "01.01.2005" в ячейку вставляется "01.01.2005 0:00:00"
Может кто знает, почему формат даты меняется?
Решение задачи: «Быстрая выгрузка из DataGridView1 в Excel»
textual
Листинг программы
Imports Microsoft.Office.Interop.Excel
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д