excel文件下载(Servlet版+excel插入图片)

来源:互联网 发布:网络戴口罩女主播照片 编辑:程序博客网 时间:2024/06/06 02:16
@WebServlet("/PopDownload")public class PopDownload extends HttpServlet {private static final long serialVersionUID = 1L;    public PopDownload() {    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String path = this.getServletContext().getRealPath("/")+"img/funny.jpg";File file = new File(path);if(file.exists()){//读取图片ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();BufferedImage bufferedImage = ImageIO.read(file);ImageIO.write(bufferedImage, "jpg", byteArrayOutputStream);HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("图片");HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); HSSFClientAnchor hssfClientAnchor = new HSSFClientAnchor(0, 0, 0, 0, (short)1, 1, (short)4, 8);patriarch.createPicture(hssfClientAnchor, wb.addPicture(byteArrayOutputStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));byteArrayOutputStream.close();//设置请求头String returnName = "测试.xls";response.setContentType("application/octet-stream;charset=utf-8");returnName = response.encodeURL(new String(returnName.getBytes(),"iso8859-1"));response.addHeader("Content-Disposition",   "attachment;filename=" + returnName);    ByteArrayOutputStream byteArrayOutputStream2 = new ByteArrayOutputStream();wb.write(byteArrayOutputStream2);response.setContentLength(byteArrayOutputStream2.size());//输出到浏览器ServletOutputStream outputstream = response.getOutputStream();byteArrayOutputStream2.writeTo(outputstream);byteArrayOutputStream2.close();outputstream.flush();wb.close();}else{System.out.println("文件没有找到");}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}


项目名:popDownload


浏览器访问路径:localhost:8080/popDownload/PopDownload

0 0
原创粉丝点击