读取没有标题ASP.Net的Excel文件

时间:2017-01-30 01:46:21

标签: c# asp.net

我正在尝试关注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;
    }

2 个答案:

答案 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());
        }