我正在使用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"方法错误?
答案 0 :(得分:7)
通过块安装ExcelDataReader.DataSet
答案 1 :(得分:2)
Install-Package ExcelDataReader.DataSet -Version 3.6.0
安装数据集以与AsDataSet一起使用