当前位置:主页 > 论文百科 > 森林论文 >

POI导入导出Excel模板···

发布时间:2017-12-24 17:28

  本文关键词:excel模板路径  


  更多相关文章: 导入 导出 Excel 模板


HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,,扩展名是.xls

XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx

以XSSFWorkbook为例:

//导出 public void getExcelByBoiler() { try { /***************没有模板********************************/ // 第一步,创建一个webbook,对应一个Excel文件 XSSFWorkbook work = new XSSFWorkbook(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet XSSFSheet sheet = work.createSheet("学生表一"); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short XSSFRow row = sheet.createRow((int) 0); // 第四步,创建单元格,并设置值表头 设置表头居中 XSSFCellStyle style = work.createCellStyle(); style.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式 XSSFCell cell = row.createCell((short) 0); cell.setCellValue("学号"); cell.setCellStyle(style); cell = row.createCell((short) 1); cell.setCellValue("姓名"); cell.setCellStyle(style); /*****************没有模板END**************************************/ /******************有模板*******************************/ // // 取得excel模板路径 // String path =ServletActionContext.getServletContext().getRealPath("") // + "/excelTemplate/统计.xlsx"; //这个是我的excel模板 // InputStream in = new FileInputStream(new File(path)); // //取得excel模板 // XSSFWorkbook work = new XSSFWorkbook(in); // // 得到excel的第1张表 // XSSFSheet sheet = work.getSheetAt(0); // // 取得第一行 // XSSFRow row = sheet.getRow(0); // // 取得第一行第一列的单元格 // XSSFCell cell = row.getCell(0); // // 给第一行第一列的单元格设值 // cell.setCellValue("第一行第一列"); // // 取得第二行 // row = sheet.createRow(1);// 得到行 // cell = row.createCell(0);// 得到第1个单元格 // cell.setCellValue("第二行第一列"); // // cell.setCellStyle(columnOne);// 填充样式 // // cell = row.createCell(1); // cell.setCellValue("第二行第二列"); // // cell.setCellStyle(columnOne1);// 填充样式 // row = sheet.createRow(2);// 得到行 // cell = row.createCell(1); // cell.setCellValue("第三行第二列"); /*********************有模板END**********************************/ /*********************显示图片**********************************/ //获取批注对象 // XSSFClientAnchor的参数说明: // 参数 说明 // dx1 第1个单元格中x轴的偏移量 // dy1 第1个单元格中y轴的偏移量 // dx2 第2个单元格中x轴的偏移量 // dy2 第2个单元格中y轴的偏移量 // col1 第1个单元格的列号 // row1 第1个单元格的行号 // col2 第2个单元格的列号 // row2 第2个单元格的行号 //(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2) // 显示图片 ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); String InputimagePath = ServletActionContext.getServletContext().getRealPath("").concat(FINAL_FOLDER_PATH).concat("20150202175722.png"); BufferedImage bufferImg = ImageIO.read(new File(InputimagePath)); ImageIO.write(bufferImg,"JPG",byteArrayOut); //设置图片大小,位置 XSSFClientAnchor anchor = new XSSFClientAnchor(5,0,500,122,(short) 0, 5,(short)10,15); //创建 XSSFDrawing patri = sheet.createDrawingPatriarch(); patri.createPicture(anchor ,work.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG)); // 显示第二张图片 byteArrayOut = new ByteArrayOutputStream(); InputimagePath = ServletActionContext.getServletContext().getRealPath("").concat(FINAL_FOLDER_PATH).concat("20150202175754.png"); bufferImg = ImageIO.read(new File(InputimagePath)); ImageIO.write(bufferImg,"JPG",byteArrayOut); //设置图片大小,位置 anchor = new XSSFClientAnchor(5,0,500,122,(short) 11, 5,(short)21,15); //创建 patri = sheet.createDrawingPatriarch(); patri.createPicture(anchor ,work.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG)); /*********************显示图片END**********************************/ /****************************输出流*****************************************/ FileOutputStream fout = new FileOutputStream("E:/students.xlsx"); work.write(fout); fout.close(); downLoadFile("E:/students.xlsx"); } catch (FileNotFoundException e) { System.out.println("文件路径错误"); e.printStackTrace(); } catch (IOException e) { System.out.println("文件输入流错误"); e.printStackTrace(); } }
//导入 public void download(String path, HttpServletResponse response) throws IOException { try { // path是指欲下载的文件的路径。 File file = new File(path); // 取得文件名。 String filename = file.getName(); // 以流的形式下载文件。 InputStream fis = new BoundedInputStream(new FileInputStream(path)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的header response.addHeader("content-disposition", "attachment;filename=" + new String(filename.getBytes())); response.addHeader("content-length", "" + file.length()); OutputStream toclient = new BufferedOutputStream( response.getOutputStream()); response.setContentType("application/vnd.ms-excel ;charset=gb2312"); toclient.write(buffer); toclient.flush(); toclient.close(); } catch (IIOException ex) { ex.printStackTrace(); } } public void downLoadFile(String filePth) { HttpServletResponse response =ServletActionContext.getResponse(); HttpServletRequest request =ServletActionContext.getRequest(); try { //得到当前路径 //StringfilePath=request.getSession().getServletContext().getRealPath(File.separator); File temFile = new File(filePth); //判断文件是否存在 if(!temFile.exists()){ response.getWriter().write("ERROR:File Not Found"); return ; } //处理文件名得位置(若服务器为linux和windows的处理方法不同) String fileName =filePth.substring(filePth.lastIndexOf(File.separator)+1); //设置头文件,名称和内容的编码不同,否则会出现乱码。 response.setHeader("Content-Disposition", "attachment; filename="+new String((fileName).getBytes("gbk"),"UTF-8")); response.setContentType("application/x-download"); OutputStream ot=response.getOutputStream(); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(temFile)); BufferedOutputStream bos = new BufferedOutputStream(ot); byte[] buffer = new byte[4096]; int length = 0; while((length = bis.read(buffer)) > 0){ bos.write(buffer,0,length); } bos.close(); bis.close(); ot.close(); } catch (Exception e) { e.printStackTrace(); } }

本文编号:1329301

资料下载
论文发表

本文链接:https://www.wllwen.com/wenshubaike/mfmb/1329301.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户40635***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com