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的方法!!!

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