我正在尝试关注this code来阅读Excel文件。不幸的是,我无法使其工作,因为我需要读取没有标题的Excel文件。如何在没有标题的情况下读取Excel文件?
public static DataTable ToDataTable(this ExcelPackage package)
{
ExcelWorksheet workSheet = package.Workbook.Worksheets.First();
DataTable table = new DataTable();
foreach (var firstRowCell in workSheet.Cells[1, 1, 1, workSheet.Dimension.End.Column])
{
table.Columns.Add(firstRowCell.Text);
}
for (var rowNumber = 2; rowNumber <= workSheet.Dimension.End.Row; rowNumber++)
{
var row = workSheet.Cells[rowNumber, 1, rowNumber, workSheet.Dimension.End.Column];
var newRow = table.NewRow();
foreach (var cell in row)
{
newRow[cell.Start.Column-1] = cell.Text;
}
table.Rows.Add(newRow);
}
return table;
}
答案 0 :(得分:1)
你可以在for
语句中看到它从第二行开始循环(跳过标题),你需要的是从第一行循环(因为没有标题行),如下所示: / p>
var rowNumber = 1
如果您的数据在第一行为空,请在文件中添加您希望的列数:
// Notice I replaced workSheet.Dimension.End.Column with 6, because I am expecting 6 columns.
foreach (var firstRowCell in workSheet.Cells[1, 1, 1, 6])
{
table.Columns.Add(firstRowCell.Text);
}
答案 1 :(得分:0)
我能够解决这个问题。我自动添加了列。改为foreach到for循环。
for (int x = 0; x <= workSheet.Dimension.End.Column; x++)
{
table.Columns.Add(x.ToString());
}