原使用通过xls、xlsx扩展名方式判断输入文件格式,确定使用HSSFWorkbook或XSSFWorkboo获取workbook。 在实践中发现,部分excel文件扩展名为xls,但读入后为2007格式,导致获取workbook失败。
使用WorkbookFactory可解决上述问题,实测有效。
try
{
using (var filestream = new FileStream(strFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
workbook = WorkbookFactory.Create(filestream);/*兼容xls、xlsx*/
}
}
catch (Exception e)
{
throw e;
}