MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。
导入示例
// (推荐)方式一:全部读取后处理,SAX模式,避免OOM,建议大量数据使用 List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class) .sheet(0) // 0代表第一个,如果为0,可省略该操作 .rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行 .beanFilter(ArtCrowd::isDance) // bean过滤 .read(path.toFile());// 可接收inputStream // (推荐)方式二:读取一行处理一行,可自行决定终止条件,SAX模式,避免OOM,建议大量数据使用 // readThen有两种重写接口,返回Boolean型接口允许在返回False情况下直接终止读取 SaxExcelReader.of(ArtCrowd.class) .sheet(0) // 0代表第一个,如果为0,可省略该操作 .rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行 .beanFilter(ArtCrowd::isDance) // bean过滤 .readThen(path.toFile() ,artCrowd -> {System.out.println(artCrowd.getName);});// 可接收inputStream public class ArtCrowd { // index代表列索引,从0开始 @ExcelColumn(index = 0) private String name; @ExcelColumn(index = 1) private String age; @ExcelColumn(index = 2,dateFormatPattern="yyyy-MM-dd") private Date birthday; }
导出示例
List<ArtCrowd> dataList = this.getDataList(); Workbook workbook = DefaultExcelBuilder.of(ArtCrowd.class) .build(dataList); AttachmentExportUtil.export(workbook, "艺术生信息", response); // 加密导出 // AttachmentExportUtil.encryptExport(workbook, "艺术生信息", response,"123456"); }