guanquan.wang

Results 227 comments of guanquan.wang

可以尝试换成EEC来处理这类问题, https://github.com/wangguanquan/eec 它支持filter, map, collect等标准的流式处理,可以像操作集合类一样读取Excel ``` try (ExcelReader reader = ExcelReader.read(Paths.get("/export/excel-1000k.xlsx"))) { // 指定第1行为表头并获取表头 HeaderRow row = (HeaderRow) reader.sheet(0).header(1).getHeader(); System.out.println(row); // 获取第100行的数据 Row row100 = reader.sheet(0).rows().filter(r -> r.getRowNum() == 100).findAny().get();...

可以尝试小而精的EEC https://github.com/wangguanquan/eec

短期内不会开发这个功能,你可以尝试开发扩展

可以的,注解使用`@RowNum`获取,或者使用`row.getRowNum()`方法获取,获取的行号为打开Excel左侧看到的行号从1开始

SpecItems不需要继承Row,它是一个普通对象 ``` public static class SpecItems { @ExcelColumn("商品编码") private String goodsNo; @RowNum private int rowNum; // 注入行号 } ``` 第1行为表头的话可以简单使用dataRows `List list = reader.sheets().flatMap(Sheet::dataRows).map(row -> row.to(SpecItems.class)).collect(Collectors.toList());` Row在EEC里是一个内在共享的对象,如果使用row.getRowNum()取行号则不能在收集后获取 ``` List list...

多表头你可以通过header来指定表头,指定表头后就会按 "规格项1:材质","规格项1:铝合金" 这种格式做为表头 ``` reader.sheets() .peek(sheet -> sheet.header(1, 2)) //

我可能理解错了,表头只有一个是吧,灰色行为表头,如果只有一列则表示那一列的值,如果有两列则第一列为Key,第二列为Value ,key 库存单位 value 个,key 规格项1:材质:value 铝合金,需要像下面这样的效果是吗

合并单元格可以使用copyOnMerged来复制值 ``` List list = reader.sheets() .map(sheet -> sheet.asFullSheet().copyOnMerged()). //

升版吧,当前最新版为0.5.22,担心兼容问题可以升到0.5.11

以下几个版本都增加了新特性或提升了性能,可以尝试一下 0.5.11 优化ExcelReader性能 0.5.13 增加FullSheet读取更多属性 0.5.14 增加TemplateSheet模板导出工作表 0.5.22 Workbook增加WbestSpeed方法打开性能模式提升导出速度