在C#中将xls和xlsx转换为Datatable

Rob*_*ood 5 c#-4.0

我正在将ths xls和xlsx转换为c#中的数据表。我已经使用了这段代码。

public DataTable ReadDataExcel(string filepath)
    {
        FileStream stream = File.Open(filepath, FileMode.Open, FileAccess.Read);
        IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
        excelReader.IsFirstRowAsColumnNames = true;
        DataSet result = excelReader.AsDataSet();
        DataTable dt = new DataTable();
        dt = result.Tables[0];
        return dt;
    }
Run Code Online (Sandbox Code Playgroud)

如果是xls,则可以正常工作。每当我使用xlsx时,它都无法正常工作。其给出“对象引用”错误。

是否还有其他方法可以将xls和xlsx都转换为数据表。我对使用“ Microsoft.Jet.OLEDB”不感兴趣。

Rob*_*ood 5

这就是答案。

对于导入 xlsx,

IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
Run Code Online (Sandbox Code Playgroud)

对于导入 xls,

IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
Run Code Online (Sandbox Code Playgroud)