2

我正在使用 excel 数据阅读器,我注意到它与旧的 excel 5.0/95 工作簿文件不兼容。有没有办法在将 .xls 文件发送到 excel 数据阅读器之前获取它的版本,以防止发送早期版本的 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();
                    }
4

2 回答 2

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();
于 2014-10-06T17:51:10.703 回答
0

旧 excel 文件的最后一行应该有一个字符串,指定创建它的 Excel 版本。我忘记了那些真正古老的确切措辞,但对于 Excel 2003,它是“Microsoft Excel 2003 工作表”

于 2014-10-06T17:52:31.310 回答