读取CSV文件,转换map数据。文件上传scp

This commit is contained in:
TsMask
2023-09-11 21:03:53 +08:00
parent 614e792670
commit f9596f6363
3 changed files with 97 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import (
"encoding/csv"
"os"
"path/filepath"
"strings"
"ems.agt/lib/log"
)
@@ -41,3 +42,45 @@ func WriterCSVFile(data [][]string, filePath string) error {
}
return nil
}
// 读取CSV文件转换map数据
func ReadCSVFile(filePath string) []map[string]string {
// 打开 CSV 文件
file, err := os.Open(filePath)
if err != nil {
log.Fatal("无法打开 CSV 文件:", err)
}
defer file.Close()
// 创建 CSV Reader
reader := csv.NewReader(file)
// 读取 CSV 头部行
header, err := reader.Read()
if err != nil {
log.Fatal("无法读取 CSV 头部行:", err)
}
// 创建 map 存储 CSV 数据
arr := make([]map[string]string, 0)
// 遍历 CSV 数据行
for {
// 读取一行数据
record, err := reader.Read()
if err != nil {
// 到达文件末尾或遇到错误时退出循环
break
}
// 将 CSV 数据插入到 map 中
data := make(map[string]string)
for i, value := range record {
key := strings.ToLower(header[i])
data[key] = value
}
arr = append(arr, data)
}
return arr
}