public class CSVHelper extends java.lang.Object
Modifiers | Name | Description |
---|---|---|
static java.lang.String |
COMMENT_CHAR |
CSV 文件中的注释字符,如果某一行以 ; 开头,则导入的时候,将忽略该行 |
static java.lang.String |
DATA_FOLDER_INSIDE_JAR |
指定在 jar 文件中,seed 数据和相关的 groovy 文件保存的顶级路径 |
static java.lang.String |
DELETE_FLAG |
指定 CSV 中某一行需要被删除的列标题 |
static java.lang.String |
DYNAMIC_FIELD_SUFFIX |
动态字段(DynamicFieldDefinition)在CSV中的列标题的后缀 |
static char |
ESCAPE_CHAR |
CSV文件中的转移字符,用于转义英文引号字符 |
static java.lang.String |
FILE_FIELD_SUFFIX |
导入 CSV 时,从文件中获取字符类型的字段的值的字段的后缀 |
static java.lang.String |
INTENTIONAL_NULL_VALUE |
|
static java.lang.String |
OBJECT_FIELD_QUERY_FIELD_SPLIT_CHAR |
|
static java.lang.String |
OBJECT_FIELD_QUERY_FIELD_SPLIT_CHAR_REGEX |
CSV文件中,待导入对象中的字段与关联对象中的查询字段的连接字符, 比如 GroupRole 对象导入时,要用 group 对象的 name 属性查询关联的 group, 则在CSV文件的第一行,写为 group.name,系统在导入时,就会自动进行关联查询 |
static java.lang.String |
QUERY_FIELD_SUFFIX |
CSV文件中,用于查询待更新现有对象(匹配数据库中记录)的列字段的 header line中的字段名后缀 |
static java.lang.String |
QUOTE_CHAR |
CSV文件中的引号字符 |
Type Params | Return Type | Name and description |
---|---|---|
|
public java.lang.String |
getCSVRecordContent(org.apache.commons.csv.CSVRecord record) 获取 CSV 文件某一行的原始数据 |
|
public java.lang.String |
getFieldType(java.lang.String header, java.util.Collection<java.util.Map<java.lang.String, java.lang.Object>> objectMeta) 从字段的元数据中,获取其类型 如果字段的名称是包含在 SpecialCSVHeaderToTypeMapping 这个 Map 中, 则直接返回该 Map 中的对应值 如果是对象字段,则将其 type 字段中的 a_b_c 格式的值替换为合法的 java package a.b.c 的格式 |
|
public java.lang.String |
getFileContentAsString(java.lang.String filePath, java.lang.String baseFolder) 以 UTF-8 编码读取文件内容为字符串, 如果文件路径是一个相对路径(不以 / 开头), 则默认为 baseFolder 下的文件, 如果在对应目录下没有找到, 则尝试从 jar 文件的 classpath 中的 data 子目录下读取 |
|
public java.lang.String |
getObjectFieldName(java.lang.String header) 从带关联字段名称和关联字段中的字段名称的整体字段名称中,截取关联字段名称 比如从 organization.name 这样的字符串中截取 organization 部分 |
|
public java.lang.String |
getObjectFieldQueryField(java.lang.String header) 从带关联字段名称和关联字段中的字段名称的整体字段名称中,截取关联字段中的字段名称 |
|
public java.util.List<java.lang.String> |
getQueryFields(java.util.List<java.lang.String> headerNames) 从一组CSV中的列标题中过滤出查询字段来,查询字段是那些以 (*) 结尾的列 |
|
public boolean |
isCommentLine(org.apache.commons.csv.CSVRecord csvRecord) 判断某一行是不是注释行 |
|
public boolean |
isDynamicFieldColumn(java.lang.String header) 通过 CSV 中的字段标题判断某个字段是否是动态字段? |
|
public boolean |
isFileField(java.lang.String header) 判断某字段是否为从文件读取内容 |
|
public boolean |
isObjectField(java.lang.String header) 判断 CSV 文件中的某一列是不是带关联关系的对象字段 |
|
public boolean |
isQueryField(java.lang.String header) 查询某字段是否为用于导入时查询现有记录的字段 |
|
public static CSVHelper |
me() |
|
public java.lang.String |
removeDynamicFieldSign(java.lang.String header) 将字段名称中的 CSVHelper.DYNAMIC_FIELD_SUFFIX 去除掉 |
|
public java.lang.String |
removeFileFieldSign(java.lang.String header) |
|
public java.lang.String |
removeQuerySign(java.lang.String header) 将字段名称中的 CSVHelper.QUERY_FIELD_SUFFIX 去除掉 |
|
public java.lang.String |
removeStartAndEndQuote(java.lang.String value) 删除开始和结束的引号,只在开始和结束都是引号字符的时候会做替换 |
|
public boolean |
startsAndEndsWithQuote(java.lang.String value) 判断某个字符串是不是前后都是引号 |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#getClass(), java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#hashCode(), java.lang.Object#equals(java.lang.Object), java.lang.Object#notifyAll(), java.lang.Object#toString(), java.lang.Object#notify() |
CSV 文件中的注释字符,如果某一行以 ; 开头,则导入的时候,将忽略该行
指定在 jar 文件中,seed 数据和相关的 groovy 文件保存的顶级路径
指定 CSV 中某一行需要被删除的列标题
动态字段(DynamicFieldDefinition)在CSV中的列标题的后缀
CSV文件中的转移字符,用于转义英文引号字符
导入 CSV 时,从文件中获取字符类型的字段的值的字段的后缀
CSV文件中,待导入对象中的字段与关联对象中的查询字段的连接字符, 比如 GroupRole 对象导入时,要用 group 对象的 name 属性查询关联的 group, 则在CSV文件的第一行,写为 group.name,系统在导入时,就会自动进行关联查询
CSV文件中,用于查询待更新现有对象(匹配数据库中记录)的列字段的 header line中的字段名后缀
CSV文件中的引号字符
获取 CSV 文件某一行的原始数据
record
- CSV文件某一行的记录从字段的元数据中,获取其类型 如果字段的名称是包含在 SpecialCSVHeaderToTypeMapping 这个 Map 中, 则直接返回该 Map 中的对应值 如果是对象字段,则将其 type 字段中的 a_b_c 格式的值替换为合法的 java package a.b.c 的格式
header
- CSV 中的字段名objectMeta
- 字段的元数据以 UTF-8 编码读取文件内容为字符串, 如果文件路径是一个相对路径(不以 / 开头), 则默认为 baseFolder 下的文件, 如果在对应目录下没有找到, 则尝试从 jar 文件的 classpath 中的 data 子目录下读取
filePath
- 文件路径baseFolder
- 文件的基础路径从带关联字段名称和关联字段中的字段名称的整体字段名称中,截取关联字段名称 比如从 organization.name 这样的字符串中截取 organization 部分
header
- 整体的字段名称从带关联字段名称和关联字段中的字段名称的整体字段名称中,截取关联字段中的字段名称
header
- 整体的字段名称从一组CSV中的列标题中过滤出查询字段来,查询字段是那些以 (*) 结尾的列
headerNames
- 一组字符串判断某一行是不是注释行
csvRecord
- CSV 行记录通过 CSV 中的字段标题判断某个字段是否是动态字段?
header
- 列标题判断某字段是否为从文件读取内容
header
- CSV 文件中的列名称判断 CSV 文件中的某一列是不是带关联关系的对象字段
header
- CSV 文件中的列名称查询某字段是否为用于导入时查询现有记录的字段
header
- CSV 文件中的列名称将字段名称中的 CSVHelper.DYNAMIC_FIELD_SUFFIX 去除掉
header
- 字段名称将字段名称中的 CSVHelper.QUERY_FIELD_SUFFIX 去除掉
header
- 字段名称删除开始和结束的引号,只在开始和结束都是引号字符的时候会做替换
value
- 待处理的字符串判断某个字符串是不是前后都是引号
value
- 待判断字符