java读excel的方法有两种:
1、jxl.jar来读,后来发现无法读取2007的即.xlsx格式
2、poi.jar来读取,支持2007以上的版本,读取.xls时会报错,如下:
org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException:Package should contain a content type part
所以两个方法可以结合使用
jxl方法只需加
jxl.jar
poi方法需加jar有:
poi-3.8-20120326.jar poi-ooxml-3.8-20120326.jar poi-ooxml-schemas-3.8-20120326.jar xmlbeans-2.3.0.jar
//判断后缀 String pfix=StringUtils.substringAfterLast(saveName, ".").toLowerCase(); if(pfix!=null&&!pfix.equals("xlsx")){ //==========读取excel文件内容=====jxl方法可读取.xls格式 jlxExcel(saveName); }else{ //==========读取excel文件内容=====poi方法可读取Excel2007即.xlsx格式 poiExcel(saveName); }
//读取.xls格式,jlx方法 private void jlxExcel(String saveName){ //===============jlx方法================= try{ String realPath = getPath() + "\\" + saveName; File fileDes = new File(realPath); InputStream str = new FileInputStream(fileDes); // 构造Workbook(工作薄)对象 Workbook rwb=Workbook.getWorkbook(str); Sheet rs=rwb.getSheet(0);//获取第一张工作表 int rsRows=rs.getRows();//获取Sheet表中所包含的总行数 int rsCols=rs.getColumns();//获取Sheet表中所包含的总列数 log.info("========行========"+rsRows+"=====列========"+rsCols); for(int i=1;i<rsRows;i++){//读取行 log.info("========执行第========"+i+"行"); for(int j=0;j<rsCols;j++){ log.info("========执行第========"+j+"列"); Cell coo=rs.getCell(j, i);//单元格定位列,再定位行 log.info("========coo========"+coo); String strc=coo.getContents();//读取内容 log.info("========读取内容strc========"+strc); System.out.println("文件"+saveName+"的内容为:"+strc); } } rwb.close(); }catch (FileNotFoundException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //==========读取excel文件内容=结束===================== }
//poi读取.xlsx方法
private void poiExcel(String saveName){ try{ String realPath = getPath() + "\\" + saveName; File fileDes = new File(realPath); InputStream str = new FileInputStream(fileDes); XSSFWorkbook xwb = new XSSFWorkbook(str); //利用poi读取excel文件流 XSSFSheet st = xwb.getSheetAt(0); //读取sheet的第一个工作表 int rows=st.getLastRowNum();//总行数 int cols;//总列数 log.info("========行========"+rows); for(int i=0;i<rows;i++){ XSSFRow row=st.getRow(i);//读取某一行数据 if(row!=null){ //获取行中所有列数据 cols=row.getLastCellNum(); log.info("========行========"+rows+"=====列========"+cols); for(int j=0;j<cols;j++){ XSSFCell cell=row.getCell(j); if(cell==null){ System.out.print(" "); }else{ //判断单元格的数据类型 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: // Boolean System.out.println(cell.getBooleanCellValue() + " "); break; case XSSFCell.CELL_TYPE_FORMULA: // 公式 System.out.print(cell.getCellFormula() + " "); break; case XSSFCell.CELL_TYPE_BLANK: // 空值 System.out.println(""); break; case XSSFCell.CELL_TYPE_ERROR: // 故障 System.out.println("故障"); break; default: System.out.print("未知类型 "); break; } } } } } }catch(IOException e){ e.printStackTrace(); } }
相关推荐
Java读取Excel内容 v Java读取Excel内容 Java读取Excel内容
JAVA读取 excelJAVA读取 excel
通过Java读取Excel文件中的数据时,需要自动判断当前Cell中的数据格式是否日期格式,如果是就要做特殊处理,以便读出数据的格式与预想的相符。
java读取excel数据导入数据库源码 java读取excel数据导入数据库源码
完美解决java读取excel内存溢出问题,希望可以帮到大家
java 读取Excel文件中的内容 java 读取Excel文件中的内容
java读取excel表格的数据,并将其保存!已经调试过了,可以使用!
java 读取excel内容 创建excel 插入文字及图片 可以直接运行
JAVA读取excel
Java读取excel
JAVA读取Excel,建库建表,并生成java实体
java 读excel 写 excel 边读边写excel 可以数据库抓来数据List,填冲到excel的制定位置
java读取excel所有页的数据,可能会有bug 毕竟我测试是没有,小白一个,大佬勿喷啊,网上搜的资源然后改写的读取所有页,可能会有不足的地方。01年的弟弟,不喜勿喷
java 读取 excel,代码绝对没有错误。请放心下载,祝大家好运
java读取Excel表中的内容,可以读取多个sheet,生成自定义格式的xml文件
使用Java读取Excel文件的内容,主要是使用POI框架,可以读取最新的Excel文件xlsx后缀文件,即2007版本之后的。
java读取xls中的数据,每个对象对应多个属性值,根据每个对象的属性值来生成一个二维矩阵
java读取excel的工具类型,可同时支持excel2003和2007版本
java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...
java读取excel文件内容,可读取2003和2007版本