不想挤地铁 2022-02-23 16:28 采纳率: 60%
浏览 3009
已结题

使用postman测试下载xls文件,下载的文件名出现中文乱码

使用postman测试下载xls文件,下载的文件名出现中文乱码
public void exportTeam(AdminInfo adminInfo, SelectTeamDTO dto, HttpServletRequest request, HttpServletResponse response) {

        //导出时取消分页
        dto.setPageSize(Integer.MAX_VALUE);
        dto.setPageIndex(1);

        //查询数据
        BasePageResponse<SelectTeamVO> teamList = teamManageService.selectTeamPage(adminInfo, dto.getTeamName(), dto.getPageIndex(), dto.getPageSize());
        List<SelectTeamVO> records = teamList.getRecords();
        List<SelectTeamVO> vos = new ArrayList<>();

        //设置属性
        records.forEach(p -> {
            SelectTeamVO vo = new SelectTeamVO();
            BeanUtils.copyProperties(p, vo);
            vos.add(vo);
        });

        String sheetName = ExportSheetNameEnum.team_sheet;
        String fileName = sheetName + ".xls";
        String[] title = ExportTitleEnum.teamList_title;

        String[][] values = new String[vos.size()][title.length];
        for (int i = 0; i < vos.size(); i++) {
            values[i] = new String[title.length];
            SelectTeamVO vo = vos.get(i);
            values[i][0] = vo.getTeamName();
            values[i][1] = vo.getTeamType();
            values[i][2] = vo.getProjectName();
            values[i][3] = vo.getLeaderName();
            values[i][4] = vo.getTeamTypeNo();
        }

       //初始化表格设置
        Map<String, Object> map = ExcelUtil.exportFirstSet(sheetName, title);
        HSSFRow row = (HSSFRow) map.get("HSSFRow");
        HSSFSheet sheet = (HSSFSheet) map.get("HSSFSheet");
        HSSFWorkbook wb = (HSSFWorkbook) map.get("HSSFWorkbook");
        //创建内容
        for (int i = 0; i < values.length; i++) {
            row = sheet.createRow(i + 1);
            for (int j = 0; j < values[i].length; j++) {
                row.createCell(j).setCellValue(values[i][j]);
            }
        }
        //设置样式
        ExcelUtil.setHeightWidth(values, null, null, row, sheet);
        //响应到客户端
        try {
            ExcelUtil.setResponseHeader(response, request, fileName);
            OutputStream os = response.getOutputStream();
            wb.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

img

  • 写回答

4条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2022-02-23 16:36
    关注

    乱码是因为文件名存在中文,为编码后的文件名,由于浏览器会自动解码,而 postman 不会,所以显示乱码,不影响打开。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月4日
  • 已采纳回答 2月24日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?