Apache POI 官网下载:
http://poi.apache.org/download.html
下面需要用到的 poi jar 包百度网盘分享:
https://pan.baidu.com/s/1i4DDcpB
具体代码
java 使用 poi 读取 Word:
这里我们把在 word 中读取到的图片保存到一个专门的地方,内容用 html 的 img 标签代替
/** * 读取doc文件 * docPath: doc文件路径 * descImageFolder: doc文件中的图片存放位置文件夹 */ public static StringBuilder readDoc(String docPath,String descImageFolder) throws Exception{ InputStream is=new FileInputStream(new File(docPath)); //poi读取doc HWPFDocument doc=new HWPFDocument(is); //存储doc内容 StringBuilder sb=new StringBuilder(); //获取doc图片表格对象 PicturesTable pt=doc.getPicturesTable(); Range docr=doc.getRange(); CharacterRun run=null; for (int i = 0; i < docr.numCharacterRuns(); i++) { run=docr.getCharacterRun(i); //判断是不是图片 if(pt.hasPicture(run)){ //图片对象 Picture pic=pt.extractPicture(run, true); //图片路径,文件以系统时间命名 String imgSrc=descImageFolder+"/"+System.currentTimeMillis()+"."+pic.suggestFullFileName(); sb.append("<img src='").append(imgSrc).append("' />"); //输出图片 this.writeFile(imgSrc,pic.getContent()); }else{ //在该范围内遍历字符,判断是否有换行符 for(int j=run.getStartOffset();j<run.getEndOffset();j++){ //获取单个字符 String text=new Range(j, j+1, doc).text(); int code=text.hashCode(); //根据code判断是否有换行 if(code==13||code==7) sb.append("\n"); else sb.append(text); } } } return sb; } /**输出文件*/ public static void writeFile(String path,byte []file){ try{ File f=new File(path); if(!f.exists()) f.createNewFile(); OutputStream os=new FileOutputStream(f); os.write(file); os.close(); }catch(Exception e){e.printStackTrace();} } //main方法测试 public static void main(String[] args) throws Exception { String docPath="C:/Users/Administrator/Desktop/测试.doc"; String descImageFolder="C:/Users/Administrator/Desktop"; StringBuilder sb=readDoc(docPath, descImageFolder); System.out.println(sb.toString()); }
java 使用 poi 读取 Excel:
//读取Excel打印到控制台 public static void main(String[] args) throws Exception{ String xlsPath="C:/Users/Administrator/Desktop/测试.xls"; //读取excel对象 HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(xlsPath)); //获取sheet数 int sheets=workbook.getNumberOfSheets(); HSSFSheet sheet=null;//sheet HSSFRow row=null;//row HSSFCell cell=null;//cell //遍历sheets for (int i = 0; i < sheets; i++) { sheet=workbook.getSheetAt(i); //遍历行 for (int j = 0; j <= sheet.getLastRowNum(); j++) { row=sheet.getRow(j); //遍历列 for (int s = 0; s < row.getLastCellNum(); s++) { cell=row.getCell(s); //打印列的值用|隔开,这里需要判断列的类型 System.out.print(getCellValue(cell)+" | "); } //换行 System.out.println(); } } } //获取列的值,返回String public static String getCellValue(HSSFCell cell){ if(cell==null) return null; Object obj=null; int type=cell.getCellType(); //列为空 if(type==cell.CELL_TYPE_BLANK){ obj=""; //boolean类型 }else if(type==cell.CELL_TYPE_BOOLEAN){ obj=cell.getBooleanCellValue(); //数字/时间 }else if(type==cell.CELL_TYPE_NUMERIC){ if(HSSFDateUtil.isCellDateFormatted(cell)) obj=cell.getDateCellValue(); else obj=cell.getNumericCellValue(); //字符串类型 }else if(type==cell.CELL_TYPE_STRING){ obj=cell.getStringCellValue(); //其他类型 }else/* if(type==cell.CELL_TYPE_FORMULA)*/{ obj=cell.toString(); } return obj!=null?String.valueOf(obj):null; }
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于