网上大多是读取2003版的,而读取2007和2003有少许不同
2003-用的类以HSSF开头,而2007+的以XSSF开头
package poi; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /* * 对excel(2007+,以.xlsx结尾)读取 * */ public class Test { public static void main(String[] args) { File f=new File("f:\\a.xlsx"); try { FileInputStream is=new FileInputStream(f); XSSFWorkbook wbs=new XSSFWorkbook(is); XSSFSheet childSheet=wbs.getSheetAt(0); //System.out.println(childSheet.getLastRowNum()); for(int i=0;i<=childSheet.getLastRowNum();i++) { XSSFRow row=childSheet.getRow(i); if(null!=row) { //System.out.println(row.getLastCellNum()); for(int j=0;j<row.getLastCellNum();j++) { XSSFCell cell=row.getCell(j); if(null!=cell) { switch (cell.getCellType()) { case XSSFCell.CELL_TYPE_NUMERIC: System.out.print(cell.getNumericCellValue()+" "); break; case XSSFCell.CELL_TYPE_STRING: System.out.print(cell.getStringCellValue()+" "); break; case XSSFCell.CELL_TYPE_BOOLEAN: System.out.print(cell.getBooleanCellValue()+" "); break; case XSSFCell.CELL_TYPE_FORMULA: System.out.print(cell.getCellFormula()+" "); break; case XSSFCell.CELL_TYPE_BLANK: System.out.print(" "); break; case XSSFCell.CELL_TYPE_ERROR: System.out.print(" "); break; default: break; } } } } System.out.println(); } wbs.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
要导入的jar包有poi-XXXX(视版本而定).jar,poi-ooxml-XXXXX.jar,xmlbeans-XXXX.jar,poi-ooxml-schemas-XXXX.jar