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;

}

时间: 2024-12-15 07:38:26

Excel导出双sheet表格(poi)的相关文章

java 利用poi导出默认以表格展示的excel透视表

前言: 从前,我是一个前端程序猿,怀着对打通任(前)督(后)二(开)脉(发)的梦想转了后端,自学两礼拜java+spring全家桶,直接上项目实战.最近接到一需求:将业务数据导出一张透视表. 需求开发完成已近有一段时间了,甲方的大爷大妈,爷爷奶奶们也都用的很开心,我也很开心,于是就心想咱学了也不能白学,所以写下这篇随笔. 先看下用easypoi+POI导出的excel效果图(easypoi用来导出sheet1数据源,poi用来sheet0透视表): 图中的excel分为两个sheet, shee

Excel导出学习之道:Java Web利用POI导出Excel简单例子

采用Spring mvc架构: Controller层代码如下 [java] view plaincopy @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void exportExcel(HttpServletReq

POI使用详解 java 复杂excel导出

Apache POI使用详解 1.POI结构与常用类 (1)POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 Microsoft Office文档的功能. (2)POI结构说明 包名称说明 HSSF提供读写Microsoft Excel XLS格式档案的功能. XSSF提供读写Microsoft Excel OOXM

poi excel导出,下载

poi.jar包 public void downExcel(HttpServletResponse response,Page<ShopApply> page) throws Exception{ // 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet HSSFSheet sheet = wb.createSheet(&quo

CRM报表导出excel时指定sheet名

如图所示,设置PageName即可: 这样导出excel时,sheet的名就有了:

CRM 报表导出excel时指定sheet名

如图所示,设置PageName即可: 这样导出excel时,sheet的名就有了:

项目笔记:导出Excel功能分sheet页插入数据

导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN"); JxlUtil jsl = new JxlUtil(); List<Device> dataList =new ArrayList<Device>(); List<DeviceExport> list = new ArrayList<DeviceExport

前端 导出为Excel 数据源为table表格 并且table中含有图片

图片导出到Excel,图片的路径得调整一下, 把 <img src="1.jpg" id="img1" /> 改为: <img src="http://localhost:2079/%E6%B5%8B%E8%AF%951/1.jpg" /> 这样Excel导出的时候就能包含图片了,但不是完美的解决方案. 导出注意事项: 图片并不是实实在在存入Excel中的,应该仅仅只是存的图片路径 图片的src地址必须是完整的,需要包含h

displaytag的Excel导出实践

本文转自 http://lingceng.iteye.com/blog/1820081/ Displaytag官网有1.0, 1.1, 1.2等,注意找到对应的版本.源码和API可以在Maven库中找到.   常规的使用不是问题,这里说说关于Excel导出的问题,中文乱码,使用POI等.我使用的是Displaytag1.1. 基本导出功能   这种情况只需引入displaytag-1.1.jar.   设置column属性media="html"将不会导出,media="ex