44 lines
878 B
Go
44 lines
878 B
Go
package file
|
||
|
||
import (
|
||
"encoding/csv"
|
||
"os"
|
||
"path/filepath"
|
||
|
||
"ems.agt/lib/log"
|
||
)
|
||
|
||
// 写入CSV文件,需要转换数据
|
||
// 例如:
|
||
// data := [][]string{}
|
||
// data = append(data, []string{"姓名", "年龄", "城市"})
|
||
// data = append(data, []string{"1", "2", "3"})
|
||
// err := file.WriterCSVFile(data, filePath)
|
||
func WriterCSVFile(data [][]string, filePath string) error {
|
||
// 获取文件所在的目录路径
|
||
dirPath := filepath.Dir(filePath)
|
||
|
||
// 确保文件夹路径存在
|
||
err := os.MkdirAll(dirPath, os.ModePerm)
|
||
if err != nil {
|
||
log.Errorf("创建文件夹失败 CreateFile %v", err)
|
||
}
|
||
|
||
// 创建或打开文件
|
||
file, err := os.Create(filePath)
|
||
if err != nil {
|
||
return err
|
||
}
|
||
defer file.Close()
|
||
|
||
// 创建CSV编写器
|
||
writer := csv.NewWriter(file)
|
||
defer writer.Flush()
|
||
|
||
// 写入数据
|
||
for _, row := range data {
|
||
writer.Write(row)
|
||
}
|
||
return nil
|
||
}
|