Code which exports data from worksheet to datatable (iterative approach):
/// <summary>
/// Exports data and column names from ClosedXML worksheet to DataTable
/// </summary>
public static DataTable ExportWorkSheetToDataTable(IXLWorksheet worksheet)
{
DataTable dt = new DataTable();
int ColumnsQty = worksheet.ColumnsUsed().Count();
int RowsQty = worksheet.RowsUsed().Count();
// Create column names for DataTable
for (int i = 1; i <= ColumnsQty; i++)
{
dt.Columns.Add(worksheet.Row(1).Cell(i).GetValue<string>());
}
// Add data to DataTable
for (int i = 2; i <= RowsQty; i++)
{
DataRow workRow = dt.NewRow();
for (int j = 1; j <= ColumnsQty; j++)
{
var CellValue = worksheet.Row(i).Cell(j).Value;
workRow[j - 1] = CellValue;
}
dt.Rows.Add(workRow);
}
return dt;
}