17

我正在使用 ExcelDataReader v.2.1。库来读取我的 C# 项目中的 xls 和 xlsx 文件。这边走:

FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader;

string extension = Path.GetExtension(filePath);

if (extension == ".xls")
{
    excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
}
else if (extension == ".xlsx")
{
    excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
}
else
{
    throw new NotSupportedException("Wrong file extension");
}

return excelReader;

然后,我使用“AsDataSet”方法获取填充的 DataSet:

_dataSet = GetDataReader(_options.Filepath).AsDataSet();

它在大多数情况下都可以正常工作,但是对于一些 XLSX 文件,它只读取第一列。我一直在用 Watch 查看 excelReader 实例,我看到它实际上获取了 Excel 的所有值,但是,当使用 AsDataSet 方法时,它只读取第一列。

你知道这里可能出了什么问题吗?您认为这可能是“AsDataSet”方法错误吗?

4

2 回答 2

48

通过 nugget 安装 ExcelDataReader.DataSet

于 2018-10-02T23:49:13.317 回答
3
Install-Package ExcelDataReader.DataSet -Version 3.6.0

安装 DataSet 以使用 AsDataSet

于 2020-07-07T18:27:02.640 回答