1. 程式人生 > >jsp請求java返回pdf、excel與word

jsp請求java返回pdf、excel與word

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"); // 設置返回內容格式
        try
{ String pdfPath="放置你的指定pdf文件路徑"; // 判斷該路徑下的文件是否存在 File file = new File(pdfPath); if (file.exists()) { DataOutputStream temps = new DataOutputStream(response.getOutputStream()); DataInputStream in = new DataInputStream(new
FileInputStream(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()); } }
View Code

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