C# 读取不带标题的Excel文件ASP.Net
我试着跟着读Excel文件。不幸的是,我不能让它工作,因为我需要阅读没有标题的Excel文件。如何读取没有标题的Excel文件C# 读取不带标题的Excel文件ASP.Net,c#,asp.net,C#,Asp.net,我试着跟着读Excel文件。不幸的是,我不能让它工作,因为我需要阅读没有标题的Excel文件。如何读取没有标题的Excel文件 public static DataTable ToDataTable(this ExcelPackage package) { ExcelWorksheet workSheet = package.Workbook.Worksheets.First(); DataTable table = new DataTable();
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;
}
公共静态数据表到数据表(此ExcelPackage)
{
Excel工作表=package.Workbook.Worksheets.First();
DataTable=新的DataTable();
foreach(workSheet.Cells[1,1,1,workSheet.Dimension.End.Column]中的var firstRowCell)
{
table.Columns.Add(firstRowCell.Text);
}
对于(var rowNumber=2;rowNumber您可以在for
语句中看到它从第二行开始循环(跳过标题),您需要的是从第一行开始循环(因为没有标题行),如下所示:
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);
}
我能够解决这个问题。我自动添加了列。将foreach更改为for循环
for (int x = 0; x <= workSheet.Dimension.End.Column; x++)
{
table.Columns.Add(x.ToString());
}
for(int x=0;x将其更改为1,但它给了我一个错误,即找不到列0。第30行:newRow[cell.Start.column-1]=cell.Text;基本上excel文件的结构是第一行是空的。可以使用bool hasHeader=false;