Как записать данные из dataGridView в excel?

Подсобите решением такой проблемы... Есть датагрид заполненный данными. Есть код нарытый в сети который сохраняет в ексель.

            DataTable dt = result2.Tables[0]; 
               var excel = new OfficeOpenXml.ExcelPackage();
               var ws = excel.Workbook.Worksheets.Add(dt.TableName);
               

                   ws.Cells["A1"].LoadFromDataTable(dt, true);

                   ws.Cells[ws.Dimension.Address.ToString()].AutoFitColumns(5, 15);
                   using (var file = File.Create(dia.FileName))
                       excel.SaveAs(file);

Проблема в этой строке DataTable dt = result2.Tables[0]; Мне нужно получить из грида данные и всунуть их в dt.

Подозреваю что они уже есть где-то(датасет) но как их оттуда взять - незнаю. Как в моем случае должна выглядеть строка DataTable dt = result2.Tables[0]; чтоб все заработало?


Ответы (1 шт):

Автор решения: Blackmeser
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
   dt.Columns.Add(column.HeaderText, column.ValueType);
}
foreach (DataGridViewRow row in dataGridView1.Rows)
{
   dt.Rows.Add();
   foreach (DataGridViewCell cell in row.Cells)
   {
      dt.Rows[dt.Rows.Count - 1][cell.ColumnIndex] = cell.Value.ToString();
   }
}
→ Ссылка