java常用操作excel的方法有利用jxl类库和Apache POI接口,但是jxl目前暂停更新只支持到office2003,Apache POI还在持续更新,能够office2003以上版本,本文将介绍使用Apache POI读取excel的操作,读取内容如下:
首先,新建Java项目,并导入POI的jar包,如图:
其次,变成读写代码,主要使用的方法有:
1:创建工作簿对象 Workbook workbook=new HSSFWorkbook(is)(支持“.xls”);
或 Workbook workbook=new XSSFWorkbook(is)(支持“.xlsx”);
2:获取Sheet数量 workbook.getNumberOfSheets();
3:获取Sheet对象 Sheet sheet = workbook.getSheetAt(index);
4:获取每个sheet的迭代器,用于遍历 Iterator<Row> rowIterator = sheet.iterator();
5:获取每行的内容即单元格对象 Iterator<Cell> cellIterator = row.cellIterator();
6:获取每个单元内容 cell.getStringCellValue();
代码如下:
public static void main(String[] args) { // TODO Auto-generated method stub TestExcel obj=new TestExcel(); obj.readExcelSour("D:/Temp/write.xls"); } public void readExcelSour(String file) { try { // 创建输入流,读取Excel FileInputStream is = new FileInputStream(file); Workbook workbook = null; if(file.toLowerCase().endsWith("xlsx")){ //poi-ooxml-3.11-20141221.jar workbook = new XSSFWorkbook(is); }else if(file.toLowerCase().endsWith("xls")){ //poi-3.11-20141221.jar workbook = new HSSFWorkbook(is); } //获取sheet的数量 int numberOfSheets = workbook.getNumberOfSheets(); //遍历每个sheet for (int index = 0; index < numberOfSheets; index++) { // 每个页签创建一个Sheet对象 Sheet sheet = workbook.getSheetAt(index); Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { //读取每一行 Row row = rowIterator.next(); //读取每一行的列的Interator Iterator<Cell> cellIterator = row.cellIterator(); int count=0; while (cellIterator.hasNext()) { //获取每个单元格内容 Cell cell = cellIterator.next(); System.out.print(getContent(cell)+" "); } //end of rows iterator System.out.println(); } } is.close(); } catch (IOException e) { } } //获取内容 public String getContent(Cell cell){ switch(cell.getCellType()){ //String类型 case Cell.CELL_TYPE_STRING: return cell.getStringCellValue().trim(); //数字类型 case Cell.CELL_TYPE_NUMERIC: return Double.toString(cell.getNumericCellValue()) ; } return null; } }
最后,查看结果: