jsp請求java返回pdf、excel與word
阿新 • • 發佈:2019-03-08
table表 != ica 請求 ring ger NPU pat format
1,返回pdf關鍵代碼
/** * @todo * @param * @date 2019年3月8日 * @author yanan */ @RequestMapping("/getPdf") public void getPdf(HttpServletRequest req, HttpServletResponse response)throws Exception { response.setContentType("application/pdf"); // 設置返回內容格式 tryView Code{ String pdfPath="放置你的指定pdf文件路徑"; // 判斷該路徑下的文件是否存在 File file = new File(pdfPath); if (file.exists()) { DataOutputStream temps = new DataOutputStream(response.getOutputStream()); DataInputStream in = new DataInputStream(newFileInputStream(pdfPath)); byte[] b = new byte[2048]; while ((in.read(b)) != -1) { temps.write(b); temps.flush(); } in.close(); temps.close(); } else { System.out.println(" 文件不存在!"); } } catch (Exception e) { logger.info(e.getMessage()); } }
2,返回word關鍵代碼
/** * @todo 導出word * @param * @date 2019年3月8日 * @author yanan */ @RequestMapping(value="/exportWord",method=RequestMethod.POST) public void exportWord(HttpServletResponse response,HttpServletRequest req) throws IOException{ response.setContentType("application/doc"); // 設置返回內容格式 response.setHeader("Content-disposition","attachment; filename="+new String("你的文件名稱".getBytes("utf-8"), "8859_1")); DataOutputStream temps = new DataOutputStream(response.getOutputStream()); temps.write("你的文件內容".getBytes()); temps.flush(); temps.close(); }View Code
3,返回excel關鍵代碼
/** * @todo 導出excel * @param tableHtml 要導出的table表格示例:<table><tr><td>aaa</td></tr></table> * @param fileName 要導出的文件名 * @date 2019年3月8日 * @author yanan */ @RequestMapping(value="/exportExcel",method=RequestMethod.POST) public void export(HttpServletResponse response,String tableHtml,String fileName,HttpServletRequest req) throws IOException{ String cssStyle = req.getParameter("cssStyle");//樣式 cssStyle=cssStyle==null?"":cssStyle; exportDataExcel(response, tableHtml, fileName,cssStyle); } private static void exportDataExcel(HttpServletResponse response, String tableHtml, String fileName,String cssStyle) throws IOException { response.setCharacterEncoding("UTF-8"); //返回頭設置文件名。Content-Disposition參數本來是為了在客戶端另存文件時提供一個建議的文件名,但是考慮到安全的原因,就從規範中去掉了這個參數。 //但是由於很多瀏覽器已經能夠支持這個參數,所以只是在規範文檔中列出,但是要註意這個不是HTTP/1.1的標準參數。 //若不用java.net.URLEncoder.encode,則中文文件名亂碼無法顯示(英文部分不影響) response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName+".xls", "UTF-8")); //返回內容為excel response.setContentType("application/ms-excel;charset=UTF-8"); PrintWriter out = response.getWriter();; tableHtml=String.format("<style type=‘text/css‘>%s</style>%s", cssStyle, tableHtml); out.print(tableHtml); out.close(); }View Code
利用poi導出,移步我之前的文章@java利用poi生成/讀取excel表格
jsp請求java返回pdf、excel與word