5
注册的自定义转换器会被构建成null,导致csv默认类型string去map获取找不到自定义,DefaultConverterLoader内目前没有支持Timestamp,求大佬提供个解决方式
注册的自定义转换器会被构建成null,导致csv默认类型string去map获取找不到自定义,DefaultConverterLoader内目前没有支持Timestamp,求大佬提供个解决方式
你在Excelproperty里面指定转换器就可以呀
你在Excelproperty里面指定转换器就可以呀
您说的是registerConverter吗?
是你的实体,指定
write方法的第二个参数
是你的实体,指定
我write是文件,没有实体类
你的数据是哪来的 没有实体类吗
你的数据是哪来的 没有实体类吗
我的场景是动态头写入,没有指定实体的写
贴能复现的代码和预期的样子
贴能复现的代码和预期的样子
`@Test public void test() {
Map<String, Object> oneMap = new HashMap<>();
oneMap.put("timestamp", new Timestamp(System.currentTimeMillis()));
List<List<String>> titles = new ArrayList<>();
List<List<Object>> rowData = new ArrayList<>();
oneMap.forEach((k, v) -> {
List<String> kList = new ArrayList<>();
List<Object> vList = new ArrayList<>();
kList.add(k);
vList.add(v);
titles.add(kList);
rowData.add(vList);
});
File file = new File("test.csv");
try {
if(!file.exists()) {
System.out.println(file.createNewFile());
}
EasyExcel.write(file)
.excelType(ExcelTypeEnum.CSV)
.charset(StandardCharsets.UTF_8)
.head(titles)
.sheet()
.doWrite(rowData);
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
file.deleteOnExit();
}
}`
预期结果:成功写入
嗯。。。 这是个bug。 目前的解决办法是推荐用实体或者你用反射把转换器塞进去... 下版本会改掉