读取Excel2003版本及Excel2007版本,需要分别进行处理:
FileStream fs = new FileStream(excelPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
if (excelPath.IndexOf(".xlsx") > 0)
{
workbook = new XSSFWorkbook(fs);
}else if (excelPath.IndexOf(".xls") > 0)
{
workbook = new HSSFWorkbook(fs);
}
现就遇到的两个问题及解决方案进行说明:
问题1:
原因:workbook = new XSSFWorkbook(fs);丢了参数,写成了workbook = new XSSFWorkbook();出现上面的错误
问题2:
这个错误可能会有多种原因导致,百度上面也有不同的解决方法,我遇到这个问题是因为:为了测试,将.xls文件保存为.xlsx的过程中,文件破损:重新另存为一份文件,问题得到解决;