Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取不带标题的Excel文件ASP.Net_C#_Asp.net - Fatal编程技术网

C# 读取不带标题的Excel文件ASP.Net

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();

我试着跟着读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;
    }
公共静态数据表到数据表(此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;