491674105 / Fearon_POI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

工具集

1、目前仅对excel进行处理,支持多级复杂表头生成(四级及以下表头可正常生成导出)

2、表头创建必须是树形结构

3、内部使用迭代算法进行实现保证了生成和导出的效率

4、调用路径:com.fearon.util.poi.ExportUtil

测试代码:

本地导出方式:
public static void localTest() throws IOException {
    List<BasePOIEntity> tableHeader = new ArrayList<>();

    /*BasePOIEntity entity = new BasePOIEntity("年月", "punchDate");
    tableHeader.add(entity);
    entity = new BasePOIEntity("姓名", "name");
    tableHeader.add(entity);

    entity = new BasePOIEntity("日期", "punchDay");
    BasePOIEntity child1 = new BasePOIEntity("上午", "morning");
    child1.setChildren(Arrays.asList(
            new BasePOIEntity("状态", "morningStatus"),
            new BasePOIEntity("时间", "morningTime"),
            new BasePOIEntity("地点", "morningLocation")
            )
    );
    BasePOIEntity child2 = new BasePOIEntity("下午", "afternoon");
    child2.setChildren(Arrays.asList(
            new BasePOIEntity("状态", "afternoonStatus"),
            new BasePOIEntity("时间", "afternoonTime"),
            new BasePOIEntity("地点", "afternoonLocation")
            )
    );
    entity.setChildren(Arrays.asList(child1, child2));
    tableHeader.add(entity);

    List<Map<String, Object>> row = new ArrayList<>();
    Map<String, Object> division = new HashMap<>();
    division.put("punchDate", "2019-01");
    division.put("name", "fearon");
    division.put("morningStatus", "正常");
    division.put("morningTime", "2019-4-11 8:20:25");
    division.put("morningLocation", "人民广场");
    division.put("afternoonStatus", "正常");
    division.put("afternoonTime", "2019-4-11 18:20:25");
    division.put("afternoonLocation", "人民广场");
    row.add(division);*/

    BasePOIEntity entity = new BasePOIEntity("UUID", "uuids");
    tableHeader.add(entity);

    List<Map<String, Object>> rowData = new ArrayList<>();
    Map<String, Object> division = null;
    int i = 0;
    for (; i < 447; i++) {
        division = new HashMap<>();
        division.put("uuids", StringUtil.getUUID32(null, null));
        rowData.add(division);
    }

    ExcelFormatEntity entity1 = new ExcelFormatEntity("D:\\");
    entity1.setExcelType(ExcelType.XSSF);
    entity1.setFileName("test");
    entity1.setSheetName("数据");
    entity1.setTitle("测试表");

    ExcelUtil.createExcel(entity1, tableHeader, rowData);
}

服务端导出方式:
public void serverTest(HttpServletResponse response) throws IOException {
    List<BasePOIEntity> tableHeader = new ArrayList<>();
    
    BasePOIEntity entity = new BasePOIEntity("UUID", "uuids");
    tableHeader.add(entity);

    List<Map<String, Object>> rowData = new ArrayList<>();
    Map<String, Object> division = null;
    int i = 0;
    for (; i < 447; i++) {
        division = new HashMap<>();
        division.put("uuids", StringUtil.getUUID32(null, null));
        rowData.add(division);
    }

    ExportUtil.exportExcelWithPOI(response, "test", "测试表", tableHeader, rowData);
}

About


Languages

Language:Java 100.0%