Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.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# C读取excel文件忽略第一行_C#_Excel_Dataset_Oledb - Fatal编程技术网

C# C读取excel文件忽略第一行

C# C读取excel文件忽略第一行,c#,excel,dataset,oledb,C#,Excel,Dataset,Oledb,我正在使用OLEDB读取Excel文件。阅读后,我将其保存到数据集中,以备将来使用 下面的代码工作得很好,但总是忽略Excel文件的第一行。 这怎么能解决呢? 请忽略评论和例外文本。 这里有resultI的屏幕,我正在显示结果数据集的第一个数据表到DevExpress GridView。 HDR=1是问题所在,将其设为HDR=0-根据代码上的注释,代码假定有标题行,即在数据之前有标题的行-您的数据没有标题行,这就是跳过第一行的原因在strExtendedProperties中将HDR更改为否:

我正在使用OLEDB读取Excel文件。阅读后,我将其保存到数据集中,以备将来使用

下面的代码工作得很好,但总是忽略Excel文件的第一行。 这怎么能解决呢? 请忽略评论和例外文本。 这里有resultI的屏幕,我正在显示结果数据集的第一个数据表到DevExpress GridView。


HDR=1是问题所在,将其设为HDR=0-根据代码上的注释,代码假定有标题行,即在数据之前有标题的行-您的数据没有标题行,这就是跳过第一行的原因

在strExtendedProperties中将HDR更改为否:

    if (Path.GetExtension(filePath).Equals(".xls"))//for 97-03 Excel file
    {
        sbConnection.Provider = "Microsoft.Jet.OLEDB.4.0";
        strExtendedProperties = "Excel 8.0;HDR=No;IMEX=1";//HDR=ColumnHeader,IMEX=InterMixed
    }
    else if (Path.GetExtension(filePath).Equals(".xlsx"))  //for 2007 Excel file
    {
        sbConnection.Provider = "Microsoft.ACE.OLEDB.12.0";
        strExtendedProperties = "Excel 12.0;HDR=No;IMEX=1";
    }
    else
        throw new MyException("Ошибка чтения Excel файла. Необходимо сконвертировать Ваш файл в \".xlsx\" или \".xls\" формат.");

否则,它将始终将第一行解释为列名。

HDR=1是问题所在,将其设为HDR=0-根据代码上的注释,代码假定为标题行,这将是在数据之前有标题的行-您的数据没有标题,这就是为什么第一行被删除的原因skipped@user230910改变。现在,它显示excel文件第一行的第一个列名。无需检查文件扩展名并使用旧的提供程序和其他扩展属性。带有Excel12.0扩展属性的Microsoft.ACE.OLEDB.12.0提供程序可以很好地打开这两种文件类型。您应该避免使用Jet Provider现在它显示excel文件第一行的第一个列名。可能您的GridView没有设置为自动生成列?现在它显示excel文件第一行的第一个列名。上面的屏幕截图没有显示任何列名?它显示了,您可以看到它列为灰色,行为白色。
    if (Path.GetExtension(filePath).Equals(".xls"))//for 97-03 Excel file
    {
        sbConnection.Provider = "Microsoft.Jet.OLEDB.4.0";
        strExtendedProperties = "Excel 8.0;HDR=No;IMEX=1";//HDR=ColumnHeader,IMEX=InterMixed
    }
    else if (Path.GetExtension(filePath).Equals(".xlsx"))  //for 2007 Excel file
    {
        sbConnection.Provider = "Microsoft.ACE.OLEDB.12.0";
        strExtendedProperties = "Excel 12.0;HDR=No;IMEX=1";
    }
    else
        throw new MyException("Ошибка чтения Excel файла. Необходимо сконвертировать Ваш файл в \".xlsx\" или \".xls\" формат.");