栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java实现Excel导出下载功能(返回pdf流)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java实现Excel导出下载功能(返回pdf流)

需要引入Jar包 com.spire.xls.Workbook

这种方式只能导出三页(因为收费)

Jar包地址
提取码:ut4n

public Result teamSourceExport(String startTime,String endTime, String type, HttpServletRequest httpServletRequest, HttpServletResponse response) throws Exception {
        response.setContentType("application/octet-stream");
        //取到要导出的模板
        TemplateExportParams params = new TemplateExportParams("/opt/home/package/template/团队分类统计报表.xls", true);
        Map map = new HashMap();
        List> listMap = new ArrayList>();
        if (null!=params){
            List jsonObjects = rentedMapper.teamNameList(startTime, endTime);
            for (int i = 0; i < jsonObjects.size(); i++) {
                String teamName = jsonObjects.get(i).getString("teamName");
                Map lm = new HashMap();
                List teamReceiveRoomNumber = rentedMapper.teamReceiveRoomCount(startTime, endTime,teamName);
                List teamReceivePeopleNumber = rentedMapper.teamReceivePeopleNumber(startTime, endTime,teamName);
                List jsonObjects1 = rentedMapper.teamLeavePeopleNumber(startTime, endTime, teamName);
                lm.put("teamName",teamName);
                lm.put("num","0");
                //实际房数
                lm.put("teamRoomNumber",teamReceiveRoomNumber.get(0).getString("teamReceiveRoomNumber"));
                //实际人数
                lm.put("teamPeopleNumber",teamReceivePeopleNumber.get(0).getString("teamReceivePeopleNumber"));
                //离店房数/人数
                lm.put("teamReceiveRoomNumber",jsonObjects1.get(0).getString("leaveRoomNumber"));
                //到店房数/人数
                listMap.add(lm);
            }

            map.put("maplist",listMap);


            //导出人
            Manager manager = Tools.getTokenMap().get(LoginUser.getToken(httpServletRequest));

            //制表日期
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            Date date = new Date(System.currentTimeMillis());

            //基础数据
            map.put("startTime", startTime);
            map.put("endTime", endTime);
            map.put("tableDate", formatter.format(date));
            map.put("tablePeople", manager.getManagerName());
            Workbook workbook = ExcelExportUtil.exportExcel(params, map);

            

            if ("0".equals(type)) {
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                workbook.write(outputStream);
                ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
                com.spire.xls.Workbook workbook1 = new com.spire.xls.Workbook();
                workbook1.loadFromStream(inputStream);
                //pdf 自适应屏幕大小
                workbook1.getConverterSetting().setSheetFitToWidth(true);
                workbook1.saveToStream(response.getOutputStream(), FileFormat.PDF);  //通过流的形式输出保存
            } else if ("1".equals(type)) {
                ServletOutputStream out = null;
                try {
                    //流的形式传输数据
                    response.setHeader("content-type", "application/octet-stream");
                    //防止中文乱码
                    response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode("团队分类统计报表.xls", "UTF-8"));
                    out = response.getOutputStream();
                    workbook.write(out);
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (null != out) {
                        try {
                            out.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            } else {
                return Result.OK(map);
            }
        }
        return null;
    }
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号