POI 导出例子

简介: @Override public InputStream exportTrialAccount(Map params) { List list = this.
    @Override
    public InputStream exportTrialAccount(Map<String, Object> params) {
        List<Object> list = this.searchTrialAccountList(params);
        try {

            if (list != null && list.size() > 0) {
                XSSFWorkbook xssf = new XSSFWorkbook();
                Workbook wb = new SXSSFWorkbook(xssf);
                Sheet sheet = wb.createSheet("导出");
                sheet.setAutoFilter(CellRangeAddress.valueOf("B1:C1"));

                sheet.setColumnWidth(1,256*8*2);
                sheet.setColumnWidth(2,256*8*2);
                sheet.setColumnWidth(3,256*8*2);
                sheet.setColumnWidth(4,256*8*2);
                sheet.setColumnWidth(5,256*8*1);
                sheet.setColumnWidth(6,256*6*2);
                sheet.setColumnWidth(7,256*6*2);
                sheet.setColumnWidth(8,256*8*1);
                Row row1 = sheet.createRow(0);

                // excel 第一行为列名
                String[] cols = new String[]{"序号","开号人员", "分配员工", "产品名称", "软件帐号", "软件密码", "开始时间", "结束时间", "帐号状态", "分配状态"};
                String[] columnNames = new String[]{"排名","staffName", "assignName", "name", "account", "password", "start_time", "end_time", "status", "empAssignStatus"};

                CellStyle style = setRowStyle(wb);

                for (int i = 0; i < cols.length; i++) {
                    Cell colCell = row1.createCell(i);
                    colCell.setCellValue(cols[i]);
                    colCell.setCellStyle(style);
                }
                int rowNum = 1;// 数据从第二行开始显示
                int colNum = 0;// 每一行的cell数

                for (int k = 0; k < list.size(); k++) {
                    Row dataRow = sheet.createRow(rowNum);
                    Map entity = (Map) list.get(k);

                    for (colNum = 0; colNum < columnNames.length; colNum++){
                        String key = columnNames[colNum];
                        Cell cell = null;
                        if (colNum == 0) {
                            cell = dataRow.createCell(colNum);
                            cell.setCellValue(k+1);
                        } else {
                            cell = dataRow.createCell(colNum);
                            cell.setCellValue(entity.get(key) != null ? entity.get(key).toString() : "");
                        }
                    }
                    rowNum++;
                    colNum = 0;
                }

                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                wb.write(baos);
                ByteArrayInputStream swapStream = new ByteArrayInputStream(baos.toByteArray());
                baos.flush();
                baos.close();
                return swapStream;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }



    private CellStyle setRowStyle(Workbook wb) {
        CellStyle style = wb.createCellStyle();
        //边框填充
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 居中对齐
        style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
        style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
        style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框

        Font font = wb.createFont();
        font.setFontName("黑体");
        style.setFont(font);

//        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//        style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);

        style.setWrapText(true);
        return  style;
    }
目录
相关文章
|
7月前
|
Java
Springboot 导出word,动态填充表格数据
Springboot 导出word,动态填充表格数据
|
Java API Android开发
【POI框架实战】——POI设置Excel单元格格式
 “这个excel中的数据怎么不能做加法啊?”、“标头这一行的字体怎么这么小啊,我都看不清”、“这一列能不能换个颜色,明显一些”、“你把这一列的数据给我留两个小数位。”、“这些数据能不能以货币的类型展示啊,就每个三位一个小逗号那种……”
|
3月前
|
Java Apache Maven
Java中使用poi+poi-tl实现根据模板导出word文档
这个过程不仅简化了文档生成的工作,而且保证了生成文档的一致性与准确性,特别适合于那些需要生成大量文档的自动化场景。通过以上步骤,Java开发人员可以实现高效、可靠的Word文档导出功能。
1663 0
|
Java API Apache
POI简介,以及使用POI技术实现Excel文件的导入导出案例
POI简介,以及使用POI技术实现Excel文件的导入导出案例
365 0
POI简介,以及使用POI技术实现Excel文件的导入导出案例
技术汇总:第一章:使用poi实现表单下载成xls文件并打印
技术汇总:第一章:使用poi实现表单下载成xls文件并打印
技术汇总:第一章:使用poi实现表单下载成xls文件并打印
|
JSON 前端开发 Java
【小家java】一个基于POI的Excel导入、导出工具处理类(支持xls,xlsx格式),另有SpringMVC的导入、导出案例讲解
【小家java】一个基于POI的Excel导入、导出工具处理类(支持xls,xlsx格式),另有SpringMVC的导入、导出案例讲解
【小家java】一个基于POI的Excel导入、导出工具处理类(支持xls,xlsx格式),另有SpringMVC的导入、导出案例讲解
【POI框架实战】——POI导出Excel时设置单元格类型为数值类型
  最近做的一个ITFIN的项目中,后台需要用POI实现导出功能,导出的数据中有文本格式,也有货币格式,所以为了方便在将来导出的表格中做计算,存放货币的单元格需要设置为数值类型。
【POI框架实战】——POI导出Excel时设置单元格类型为数值类型
|
前端开发 Java 数据库
java poi拆分excel文件,每个文件保留标题行
java poi拆分excel文件,每个文件保留标题行
444 0
|
前端开发
POI复制Excel模板并填充数据
我们最近需要对系统加一个报表导出的功能,可以通过POI直接导出,导出后的excel文件需要支持在office里面修改数据后图表也会自动变换。方法一可以使用jfreechart+poi,但是这种方法生成的图表是一张图片,不能在office中自动修改;第二种方法是poi调用 office的宏,它需要调用自定义的.dll 文件,也需要在windows环境中,所以不适用。
6554 0