package cn.iocoder.yudao.framework.excel.core.convert;
|
|
import cn.hutool.json.JSONUtil;
|
import cn.idev.excel.converters.Converter;
|
import cn.idev.excel.enums.CellDataTypeEnum;
|
import cn.idev.excel.metadata.GlobalConfiguration;
|
import cn.idev.excel.metadata.data.WriteCellData;
|
import cn.idev.excel.metadata.property.ExcelContentProperty;
|
|
import java.util.List;
|
|
/**
|
* List 写出为 JSON 文本的转换器
|
*
|
* <p>FastExcel 内置没有 List 的转换器,导出含 List 字段的 VO 时
|
* 会抛 {@code Can not find 'Converter' support class List},接口直接 500。
|
* 本转换器把集合序列化成 JSON 文本写入单元格,保证导出可用。</p>
|
*
|
* @author 超级管理员
|
*/
|
public class ListJsonStringConverter implements Converter<List> {
|
|
@Override
|
public Class<List> supportJavaTypeKey() {
|
return List.class;
|
}
|
|
@Override
|
public CellDataTypeEnum supportExcelTypeKey() {
|
return CellDataTypeEnum.STRING;
|
}
|
|
@Override
|
public WriteCellData<?> convertToExcelData(List value, ExcelContentProperty contentProperty,
|
GlobalConfiguration globalConfiguration) {
|
return new WriteCellData<>(JSONUtil.toJsonStr(value));
|
}
|
|
}
|