java web 導出excel

這篇博客再次記錄一下導出excel; 收到一個改一個excel導出的任務,於是很自然的去參考上一篇博客。
https://blog.csdn.net/qq_35529931/article/details/81988802
結果導出excel後,裏面的內容卻一直是亂碼。於是一度認爲是字符集沒有設置,各種設置都沒有效果。於是改成了英文,發現下載下來的卻也是亂碼。可以得出結論,不是亂碼的問題了。改成英文打開,如下圖;在這裏插入圖片描述
於是參考了另一篇博客。記錄一下。
前端的寫法,沒有改變。用的原來的。
在這裏插入圖片描述
後臺的寫法 也很簡單。由於是導出模板,沒有從數據庫查詢。
代碼如下:

  public void  exportEnterStockDetailTemplate(HttpServletResponse response) throws  IOException{
        HSSFWorkbook workbook = new HSSFWorkbook();
        HSSFSheet sheet = workbook.createSheet("物資入庫導出模板");
        String fileName = null;
        try {
            fileName = new String("物資入庫導出模板.xls".getBytes("utf-8"), "iso-8859-1");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException("字符編碼格式不支持," + e);
        }
        // 新增數據行,並且設置單元格數據
        String[] headers = { "操作", "入庫數量", "物資名稱", "品牌", "型號",
                "單位", "入庫單價", "有效期", "供應商", "" + "位置"};
        // headers表示excel表中第一行的表頭
        HSSFRow row = sheet.createRow(0);
        for(int i=0;i<headers.length;i++){
            HSSFCell cell = row.createCell(i);
            HSSFRichTextString text = new HSSFRichTextString(headers[i]);
            cell.setCellValue(text);
        }
        response.setContentType("application/octet-stream");
        response.setHeader("Content-disposition", "attachment;filename=" + fileName);
        response.flushBuffer();
        workbook.write(response.getOutputStream());
    }

這樣就可以了。主要是設置了表名的中文,以及頭部的設置。
在這裏插入圖片描述
這次記錄完成。這是第二種spring boot導出excel的方法!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章