1. CSV工具类
1.1. 简要描述
此工具类提供CSV文件和List、实体Bean的相互转换功能
1.2. 示例
/src/test/java/com.helioscloud.middleware.util.CsvUtilTest
文件下载:CsvUtilTest
1.3. CSV文件转换为List
1.3.1. 方法签名
List parse(String path)
1.3.2. 输入
参数名 |
参数类型 |
描述 |
path |
String |
CSV文件路径 |
1.3.3. 输出
参数名 |
参数类型 |
描述 |
|
List |
CVS文件解析结果,每一个String[]为一行CVS数据 |
1.4. CSV文件转换为实体Bean
1.4.1. 方法签名
List parse(String path,Class clazz)
1.4.2. 输入
参数名 |
参数类型 |
描述 |
path |
String |
CSV文件路径 |
clazz |
Class |
实体Bean<泛型>的class,举例:Test.class |
1.4.3. 输出
参数名 |
参数类型 |
描述 |
|
List |
返回实体的List集合 |
1.5. List转换为CSV文件
1.5.1. 方法签名
void createCSVFile(String[] heads, List
1.5.2. 输入
参数名 |
参数类型 |
描述 |
heads |
String[] |
CSV文件头 |
rows |
List |
CSV文件内容 |
path |
String |
CSV文件路径 |
1.5.3. 输出
参数名 |
参数类型 |
描述 |
|
void |
无返回,可在路径下查看文件是否创建 |
1.6. List转换为CSV文件
1.6.1. 方法签名
void createCSVFile(List rows, String path,Class clazz)
1.6.2. 输入
参数名 |
参数类型 |
描述 |
rows |
List |
实体对象集合<泛型> |
path |
String |
CSV文件路径 |
clazz |
Class |
实体Bean<泛型>的class,举例:Test.class |
1.6.3. 输出
参数名 |
参数类型 |
描述 |
|
void |
无返回,可在路径下查看文件是否创建 |
1.7. 实体类注解说明
@Data
@Headers(sequence = { "quantity","comments","amount","date"})
public class CsvBean {
@Format(formats = {"dd-MM-yyyy", "yyyy-MM-dd"})
@Parsed
private Date date;
@NullString(nulls = {"?", "-"})
@Parsed(defaultNullRead = "0")
private Integer quantity;
@Trim
@LowerCase
@Parsed(index = 1)
private String comments;
@Parsed(field = "amount")
private BigDecimal amount;
}
1.7.3. @Parsed:将CSV文件中的属性与字段建立映射
1.7.4. @NullString(nulls = {"?", "-"}):会将? -映射为实体类的null
1.7.5. @Trim:去掉字符串两边空格
1.7.6. @LowerCase:转换为小写
1.7.7. @Parsed(index = 1):指定映射列顺序
1.7.8. @Parsed(field = "amount"):指定映射列别名
1.7.9. @Parsed(defaultNullRead = "0"):字段为空时的默认值