What would be the most efficient way to read an entire Excel file using ClosedXML and returning List<List<object>> ?
This somehow doesn't give me data. I get empty lists.
var wb = new XLWorkbook(finalFilePath);
var ws = wb.Worksheets.First();
var range = ws.RangeUsed();
var colCount = range.ColumnCount();
var rowCount = range.RowCount();
var i = 1;
var j = 1;
List<List<object>> data = new List<List<object>>();
while (i < rowCount + 1)
{
List<object> row = new List<object>();
while (j < colCount + 1)
{
row.Add(ws.Cell(i, j).Value);
j++;
}
data.Add(row);
i++;
}
This gets the job done:
Dictionary<Tuple<int, int>, object> data = new Dictionary<Tuple<int, int>, object>();
using (XLWorkbook wb = new XLWorkbook(filePath))
{
var ws = wb.Worksheets.First();
var range = ws.RangeUsed();
for (int i = 1; i < range.RowCount() + 1; i++)
{
for (int j = 1; j < range.ColumnCount() + 1; j++)
{
data.Add(new Tuple<int, int>(i,j), ws.Cell(i,j).Value);
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With