C#如何确定excel文件版本

时间:2014-10-06 17:44:27

标签: c# excel exceldatareader

我正在使用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();
                    }

2 个答案:

答案 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工作表”