Excel导出双sheet表格(poi)

@SuppressWarnings("unchecked")
    @Transactional(readOnly = true)
    public ByteArrayOutputStream approvalExport(Integer deptId, String signedTime, String signoutTime, Integer curPage,
            Integer perPageSum) throws Exception {
        // 日期
        Date start = null, end = null;
        if (StringUtils.isNotEmpty(signedTime)) {
            start = DateUtil.setDayMinTime(DateUtils.parseDate(signedTime, "yyyy-MM-dd"));
        }
        if (StringUtils.isNotEmpty(signoutTime)) {
            end = DateUtil.setDayMinTime(DateUtils.parseDate(signoutTime, "yyyy-MM-dd"));
        }

        // 分页
        Page page = new Page();
        page.setCurPage(curPage);
        page.setPerPageSum(perPageSum);
        RowBounds rowBounds = new RowBounds(page.getNextPage(), page.getPerPageSum());

        // 1、输出的文件地址及名称
        OutputStream outputStream = new FileOutputStream("请假_出差.xlsx");
        // 2、sheet表中的标题行内容,需要输入excel的汇总数据
        String[] businessTrip = { "部门名称", "姓名", "出差开始时间", "出差结束时间", "出差事由", "行程安排", "审批人", "审批结果", "创建时间" };
        List<List<String>> businessTripData = new ArrayList<List<String>>();

        Departments departments = new Departments();
        departments.setDeptId(deptId);
        List<Departments> depts = departmentDao.selectByDept(departments);
        List<ApprovalReportDto> _listBusinessTrip = attenceReportDao.selectbusinessTripByList(depts, start, end,
                rowBounds);
        for (ApprovalReportDto businessTripARDto : _listBusinessTrip) {
            List<String> rowData = new ArrayList<String>();
            rowData.add(businessTripARDto.getDepartmentName());
            rowData.add(businessTripARDto.getUserName());
            rowData.add(businessTripARDto.getStartTime());
            rowData.add(businessTripARDto.getEndTime());
            rowData.add(businessTripARDto.getContent());
            rowData.add(businessTripARDto.getSchedules());
            rowData.add(businessTripARDto.getUpdateBy());
            rowData.add(businessTripARDto.getState());
            rowData.add(businessTripARDto.getCreateTime());
            businessTripData.add(rowData);
        }

        // 请假
        String[] leave = { "部门名称", "姓名", "请假开始时间", "请假结束时间", "请假类型", "请假原因", "审批人", "审批结果", "创建时间" };
        List<List<String>> leaveData = new ArrayList<List<String>>();
        List<ApprovalReportDto> _listLeave = attenceReportDao.selectLeaveByList(depts, start, end, rowBounds);
        for (ApprovalReportDto leaveARDto : _listLeave) {
            List<String> rowData = new ArrayList<String>();
            rowData.add(leaveARDto.getDepartmentName());
            rowData.add(leaveARDto.getUserName());
            rowData.add(leaveARDto.getStartTime());
            rowData.add(leaveARDto.getEndTime());
            rowData.add(leaveARDto.getLeaveType());
            rowData.add(leaveARDto.getContent());
            rowData.add(leaveARDto.getUpdateBy());
            rowData.add(leaveARDto.getState());
            rowData.add(leaveARDto.getCreateTime());
            leaveData.add(rowData);
        }

        // 3、写入
        ExcelUtil excelUtil = new ExcelUtil<Map<String, Object>>();
        ByteArrayOutputStream xlsOutput = new ByteArrayOutputStream();
        XSSFWorkbook workbook = new XSSFWorkbook();
        // 第一个表格内容
        excelUtil.exportExcel(workbook, 0, "出差", businessTrip, businessTripData, outputStream);
        // 第二个表格内容
        excelUtil.exportExcel(workbook, 1, "请假", leave, leaveData, outputStream);

        // 写出
        workbook.write(xlsOutput);

        return xlsOutput;

    }

转载于:https://www.cnblogs.com/lsz1349yw/p/poi20170515_02.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值