java实现导出报表功能

​        // 第一步 创建HSSFWorkbook对象(excel的文档对象)
        HSSFWorkbook workbook = new HSSFWorkbook();

        // 第二步,在workbook中添加一个sheet,建立新的sheet对象(excel的表单)
        HSSFSheet sheet = workbook.createSheet("制定表");
        // 单元格高度
        sheet.setDefaultRowHeightInPoints(26);
        // 设置单个列宽
        sheet.setColumnWidth(0, 256 * 18 + 184);
        sheet.setColumnWidth(1, 256 * 36 + 184);

        // sheet.setDefaultColumnWidth(25);//设置全部列宽

        // 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
        HSSFRow row1 = sheet.createRow(0);

        // --------第一行 表头格式设置:
        HSSFCellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setAlignment(HorizontalAlignment.CENTER); // 水平居中
        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直居中

        // 创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
        HSSFCell cell = row1.createCell(0);
        // 设置单元格内容
        cell.setCellValue("制定表");
        // 设置单元格样式居中
        cell.setCellStyle(cellStyle);
        // 合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
        sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 4));

        // 在sheet里创建第二行
        HSSFRow row2 = sheet.createRow(1);
        // 第二行开始,每列水平居中
        row2.createCell(1).getCellStyle().setWrapText(true);
        // 水平居中
        row2.createCell(1).getCellStyle().setAlignment(HorizontalAlignment.CENTER);
        // 垂直居中
        row2.createCell(1).getCellStyle().setVerticalAlignment(VerticalAlignment.CENTER);
        // 创建单元格并设置单元格内容
        row2.createCell(0).setCellValue("编号");
        row2.createCell(1).setCellValue("名称");

        // 数据 根据条件查询数据
        List<LtcMilestonePmDateVo> list = ltcProjectMilestoneMapper.getMilestonePmDate();
        // 判断要导出的数据是否为空,不为空遍历集合
        if (null != list) {
            int j = 2;
            for (int i = 0; i < list.size(); i++) {
                // 在sheet里创建第三行,按照表头,添加数据
                HSSFRow row = sheet.createRow(j);
                // 创建单元格
                // 第一个单元格
                row.createCell(0).setCellValue(list.get(i).getLeadNo());
                // 第二个单元格
                row.createCell(1).setCellValue(list.get(i).getName());
                row.createCell(2).setCellValue(list.get(i).getDutyMain());
                row.createCell(3).setCellValue(list.get(i).getUserName());
                row.createCell(4).setCellValue("是");

                j++;
            }
        }

​

  // 最后输出Excel文件
        try {
            File file=new File("C:\\Users\\Desktop\\xxx.xlsx");
            OutputStream fileOutputStream = new FileOutputStream(file);

            workbook.write(fileOutputStream);// 把相应的Excel 工作簿存盘   把文件写入流中输出
            fileOutputStream.close();// 关闭输出流
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值