我正在使用Excel数据阅读器,我发现它与旧版excel 5.0 / 95工作簿文件不兼容。有没有办法在将它发送到excel数据读取器之前获取.xls文件的版本,以防止发送早期版本的excel文件?
这是我现在使用的。
if (extension == ".XLS")
{
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
excelReader.IsFirstRowAsColumnNames = true;
result = excelReader.AsDataSet();
}
else
{
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
excelReader.IsFirstRowAsColumnNames = true;
result = excelReader.AsDataSet();
}
答案 0 :(得分:1)
你拥有的是正确的。但你可以让它更清洁一点。例如:
IExcelDataReader excelReader;
if (String.Compare(extension, ".xls", true) == 0){
excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
} else if (String.Compare(extension , ".xlsx", true) == 0){
excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
}
excelReader.IsFirstRowAsColumnNames = true;
result = excelReader.AsDataSet();
答案 1 :(得分:0)
旧excel文件的最后一行应该有一个字符串,用于指定创建它的Excel版本。我忘记了那些真正旧的措辞,但对于Excel 2003,它是“Microsoft Excel 2003工作表”