官方例子中,
EasyExcel.write(fileName, DemoData.class) .sheet("模板") .doWrite(() -> { // 分页查询数据 return data(); });
DemoData.class 可以用动态字节码技术动态生成。
但是 data() 函数该怎么写呢?编译的时候,编译器需要找到DemoData,还是可以动态添加及如何添加?感觉是不是不可行啊。
Q
[alibaba/easyexcel]关于EasyExcel.write的使用,一个问题。
9
A
回答
7
没太明白你的意思,如果是想做成动态写入,那你可以将写入的数据指定为Map类型,然后在返回数据的时候,可以使用Map或者HashMap进行数据转换即可了
EasyExcel.write(fileName, head()) .sheet("模板") .doWrite(() -> { // 分页查询数据 return data(); });
7
你讲的方法对我来说很新颖。需要消化一下。这里有个疑惑,我这里是有几种Excel文件需要输出,列数各不一样的。你的方法可以处理吗?谢谢
9
可参考com.alibaba.easyexcel.test.demo.write.WriteTest#noModelWrite
这个方法里面的实现
1
谢谢。
2
不明白你答复里的使用HashMap进行数据转换。是建立一个public class HashMapConverter implements Converter<HashMap>
还是将HashMap 转换为ArrayList?抑或其他意思
没太明白你的意思,如果是想做成动态写入,那你可以将写入的数据指定为Map类型,然后在返回数据的时候,可以使用Map或者HashMap进行数据转换即可了
EasyExcel.write(fileName, head()) .sheet("模板") .doWrite(() -> { // 分页查询数据 return data(); });
5
即不使用JavaBean的方式来做存储动态数据. 表头你可以用List<List
> 支持自定义表头,数据:你可以用 List<List<Object>>
来支持动态数据
4
多谢