EasyExce 自定义类型转换器,Converter<String[]>

实现了 Converter<String[]> 接口,这意味着它定义了如何将 String[] 类型的数据转换为 Excel 表格中的数据,以及如何将 Excel 表格中的数据转换为 String[] 类型的数据。

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.metadata.data.WriteCellData;



public class StringArrayConverter implements Converter<String[]> {

	/**
	 * 告知转换器它支持的 Java 类型是 String[](字符串数组)。
	 *
	 * @return 返回 String[].class 表示该转换器支持 String[] 类型。
	 */
	@Override
	public Class<?> supportJavaTypeKey() {
		return String[].class;
	}

	/**
	 * 这里读的时候会调用
	 *
	 * @param context ReadConverterContext
	 * @return String[] 读取到的数组
	 */
	@Override
	public String[] convertToJavaData(ReadConverterContext<?> context) {
		// 从 Excel 单元格读取数据,假设数据以逗号分隔
		String cellValue = context.getReadCellData().getStringValue();
		if (cellValue == null || cellValue.isEmpty()) {
			return new String[0];
		}
		return cellValue.split(",");
	}

	/**
	 * 这里是写的时候会调用
	 *
	 * @param context WriteConverterContext
	 * @return WriteCellData 写入的单元格数据
	 */
	@Override
	public WriteCellData<?> convertToExcelData(WriteConverterContext<String[]> context) {
		// 将 String[] 转换为逗号分隔的字符串
		String[] value = context.getValue();
		if (value == null || value.length == 0) {
			return new WriteCellData<>("");
		}
		String result = String.join(",", value);
		return new WriteCellData<>(result);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值