首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

apache poi 导入2007excel 及处置excel不可读取内容

2012-10-06 
apache poi 导入2007excel 及处理excel不可读取内容!处理excel主要是三层循环,对工作表的循环,对行数的循

apache poi 导入2007excel 及处理excel不可读取内容!
处理excel主要是三层循环,对工作表的循环,对行数的循环,对单元格的循环

try {is = new FileInputStream(file);HSSFWorkbook wb=null;try {//office 2003和以前版本wb = new HSSFWorkbook(new POIFSFileSystem(is));} catch (RuntimeException e) {//office 2007版本XSSFWorkbook wb1 = new XSSFWorkbook(file.getPath());return import2007(wb1);}//工作表数int sheetNum = wb.getNumberOfSheets();for (int i = 0; i < sheetNum ; i++) {HSSFSheet childSheet = wb.getSheetAt(i);int rowNum = childSheet.getLastRowNum();for (int j = childSheet.getFirstRowNum(); j < rowNum; j++) {HSSFRow row = childSheet.getRow(j);if(row!=null){int cellNum = row.getLastCellNum();String[] str=new String[cellNum];for (int k = 0; k < cellNum; k++) {if(row.getCell(k)!=null){str[k]=row.getCell(k).toString();}else{str[k]=null;}}}}}}



//2007版本excelpublic String import2007(XSSFWorkbook wb){StockderDAO dao=(StockderDAO)getDao();int sheetNum = wb.getNumberOfSheets();for (int i = 0; i <sheetNum ; i++) {XSSFSheet childSheet = wb.getSheetAt(i);int rowNum = childSheet.getLastRowNum();for (int j = childSheet.getFirstRowNum(); j < rowNum; j++) {XSSFRow row = childSheet.getRow(j);int cellNum = row.getLastCellNum();String[] str=new String[cellNum];for (int k = 0; k < cellNum; k++) {if(row.getCell(k)!=null){str[k]=row.getCell(k).toString();}else{str[k]=null;}}if(j!=0){boolean flag=dao.getBuyDistinct(str,this.request.getParameterMap());if(flag){XSSFCell cel=row.createCell(cellNum );cel.setCellValue("R");}}}}ServletOutputStream fOut=null;try {fOut=response.getOutputStream();wb.write( fOut);fOut.flush();fOut.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return NONE;}



关于excel不可读取的内容:当我们把2007的excel另存为 2003excel的格式的时候,然后以2003excel导入到程序,这时如生成的是2003excel,而原本的2007excel如果有安全设置或宏 在打开excel的时候就 弹出 有些内容不可读取的提示!

下面的附件 就是导入2007的excel所需要的jar包!

1 楼 zhanghe086 2012-05-15   “不可读取的内容”这个问题怎么解决呢?

热点排行