В контейнер dataGridView1 помещаю таблицу по SQL-запросу:
SELECT b.ID_B as 'ID', b.NAME_B as 'Название', b.AUTHOR_B as 'Автор', pb.NAME_PB as 'Издательство', b.YEAR_B as 'Год издания', g.NAME_G as 'Жанр' FROM BOOK b JOIN PUBLISHERS pb ON pb.ID_PB = b.PUBLISH_B JOIN GENRE g ON g.ID_G = bOOK.GENRE_B ORDER BY ID_B
DataTable dt = FirebirdConnect.ExecuteQuery(sql_query, fbConn);
dataGridView1.DataSource = dt;
dataGridView1.Columns[0].Visible = false; // Т.к. мне не нужно, чтобы колонка ID выводилась в контейнере
выходит как-то так:
Когда я сохраняю таблицу из контейнера в Excel-файл, у меня не выводится последняя строчка.
Для работы с Excel я использую библиотеку ClosedXML.
Собственно, проблема заключается только в том, что не выводится последняя строчка.
Вот код, который я использую, чтобы сохранить данные в Excel-файл:
public void Export_Data_To_Excel(string filePath)
{
DataTable dt = new DataTable();
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
if (column.HeaderText!="ID")
dt.Columns.Add(column.HeaderText);
}
foreach (DataGridViewRow row in dataGridView1.Rows)
{
dt.Rows.Add();
foreach (DataGridViewCell cell in row.Cells)
{
if ((dt.Rows.Count - 1) != 0)
if (cell.ColumnIndex != 0)
dt.Rows[dt.Rows.Count - 2][cell.ColumnIndex-1] = cell.Value.ToString();
}
}
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt, "Test");
wb.SaveAs(filePath);
}
}