0. 概述
在平时工作中,我们总是少不了导出一些数据,无论是业务数据还是进程内部数据都有可能,而作为兼容 Excel 的 CSV 文件,是我们喜欢的一种方式,本文就介绍一下如何用 Go 操作 CSV。
1. 创建 go 文件
[[email protected]]# cat csv.go
package main
import (
"encoding/csv"
"log"
"os"
)
2. 创建写出数据
[[email protected]]# cat csv.go
empData := [][]string{
{"Name", "City", "Skills"},
{"Smith", "Newyork", "Java"},
{"William", "Paris", "Golang"},
{"Rose", "London", "PHP"},
}
3. 创建 CSV 文件
[[email protected]]# cat csv.go
csvFile, err := os.Create("employee.csv")
if err != nil {
log.Fatalf("failed creating file: %s", err)
}
csvFile.Close()
4. 写出数据
[[email protected]]# cat csv.go
csvwriter := csv.NewWriter(csvFile)
for _, empRow := range empData {
_ = csvwriter.Write(empRow)
}
csvwriter.Flush()
5. 整体代码
[[email protected]]# cat csv.go
package main
import (
"encoding/csv"
"os"
)
func main() {
csvFile, _ := os.Create("employee.csv")
defer csvFile.Close()
csvFile.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM
csvwriter := csv.NewWriter(csvFile)
for _, empRow := range empData {
_ = csvwriter.Write(empRow)
}
csvwriter.Flush()
}