序言:
由于HSSFWorkbook只能操作excel2003以下版本,
XSSFWorkbook只能操作excel2007以上版本,
所以利用Workbook接口创建对应的对象操作excel来处理兼容性。
测试:
当 HSSFWorkbook 操作2007以上版本是报错:
Exception in thread "main" org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)
修改了XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File("E:\\asd.xlsx")));
运行报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
导入xmlbeans-2.6.0.zip lib下的所有架包
运行报错:
java.lang.NoClassDefFoundError: org/dom4j/DocumentException
导入dom4j-1.6.1.jar
运行
-----OK-------
代码分十步走
step1: 获取Excel的工作区间总数
step2:取得所需工作区间(下标从0开始)
step3:获取总共有多少行数据因为中间空行的话,则读取出来的数据不准确
step4: 获取每一行
step5 : 去除空行
step6: 获取每一行的长度
step7: 获取每一行的每一列的值
step8: 存数据
step9: 关闭输入流
step10: 返回数据