Documentation ¶
Index ¶
- func ConvertCsvLineToValue(valueType reflect.Type, row []string, columnNames []string, option *CsvOption) reflect.Value
- func ConvertStringToFieldValue(object, fieldVal reflect.Value, columnName, fieldString string, ...)
- func ReadCsvFile(file string) ([][]string, error)
- func ReadCsvFileMap[M ~map[K]V, K IntOrString, V any](file string, m M, option *CsvOption) error
- func ReadCsvFileObject[V any](file string, v V, option *CsvOption) error
- func ReadCsvFileSlice[Slice ~[]V, V any](file string, s Slice, option *CsvOption) (Slice, error)
- func ReadCsvFromDataMap[M ~map[K]V, K IntOrString, V any](rows [][]string, m M, option *CsvOption) error
- func ReadCsvFromDataObject[V any](rows [][]string, v V, option *CsvOption) error
- func ReadCsvFromDataSlice[Slice ~[]V, V any](rows [][]string, s Slice, option *CsvOption) (Slice, error)
- type CsvOption
- func (co *CsvOption) GetConverterByColumnName(columnName string) FieldConverter
- func (co *CsvOption) GetConverterByType(typ reflect.Type) FieldConverter
- func (co *CsvOption) GetConverterByTypePtrOrStruct(typ reflect.Type) (converter FieldConverter, convertToElem bool)
- func (co *CsvOption) RegisterConverterByColumnName(columnName string, converter FieldConverter) *CsvOption
- func (co *CsvOption) RegisterConverterByType(typ reflect.Type, converter FieldConverter) *CsvOption
- type FieldConverter
- type IntOrString
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertCsvLineToValue ¶
func ConvertStringToFieldValue ¶
func ConvertStringToFieldValue(object, fieldVal reflect.Value, columnName, fieldString string, option *CsvOption)
字段赋值,根据字段的类型,把字符串转换成对应的值
func ReadCsvFile ¶
func ReadCsvFileMap ¶
func ReadCsvFileMap[M ~map[K]V, K IntOrString, V any](file string, m M, option *CsvOption) error
csv数据转换成map V支持proto.Message和普通struct结构
func ReadCsvFileObject ¶
key-value格式的csv数据给对象赋值 V支持proto.Message和普通struct结构
func ReadCsvFileSlice ¶
csv数据转换成slice V支持proto.Message和普通struct结构
func ReadCsvFromDataMap ¶
func ReadCsvFromDataMap[M ~map[K]V, K IntOrString, V any](rows [][]string, m M, option *CsvOption) error
csv数据转换成map V支持proto.Message和普通struct结构
func ReadCsvFromDataObject ¶
key-value格式的csv数据转换成对象 V支持proto.Message和普通struct结构
Types ¶
type CsvOption ¶
type CsvOption struct { // 数据行索引(>=1) DataBeginRowIndex int // 数组分隔符 // 如数组分隔符为;时,则1;2;3可以表示[1,2,3]的数组 SliceSeparator string // Map的分隔符 // 如MapKVSeparator为_ MapSeparator为; // 则a_1;b_2;c_3可以表示{"a":1,"b":2,"c":3}的map MapKVSeparator string MapSeparator string // contains filtered or unexported fields }
func (*CsvOption) GetConverterByColumnName ¶
func (co *CsvOption) GetConverterByColumnName(columnName string) FieldConverter
func (*CsvOption) GetConverterByType ¶
func (co *CsvOption) GetConverterByType(typ reflect.Type) FieldConverter
func (*CsvOption) GetConverterByTypePtrOrStruct ¶
func (co *CsvOption) GetConverterByTypePtrOrStruct(typ reflect.Type) (converter FieldConverter, convertToElem bool)
如果typ是Struct,但是注册的FieldConverter是同类型的Ptr,则会返回Ptr类型的FieldConverter,同时convertToElem返回true
func (*CsvOption) RegisterConverterByColumnName ¶
func (co *CsvOption) RegisterConverterByColumnName(columnName string, converter FieldConverter) *CsvOption
注册列名对应的转换接口
func (*CsvOption) RegisterConverterByType ¶
func (co *CsvOption) RegisterConverterByType(typ reflect.Type, converter FieldConverter) *CsvOption
注册类型对应的转换接口
type FieldConverter ¶
type FieldConverter func(obj interface{}, columnName, fieldStr string) interface{}
字段转换接口
Click to show internal directories.
Click to hide internal directories.