读取CSV文件

Golang 创建csv文件 - 图1

  1. // globalData数据结构所在目录
  2. package Global_Define
  3. // csv配置表var
  4. G_StCard2InfoBaseST map[string]*Card2InfoBase // 卡牌活动结构// 卡牌活动结构
  5. type Card2InfoBase struct {
  6. Card2ID string // 卡牌的ID
  7. Card2Msg string // 卡牌的描述
  8. Card2GameName string // 卡牌的地点
  9. Card2GameID string // 策划看到的类型
  10. PicPath string // 图片路径
  11. Type string // 卡牌类型
  12. }
  13. --------------------------------------------------
  14. package main
  15. import (
  16. "项目目录/Global_Define"
  17. "encoding/csv"
  18. "fmt"
  19. "io/ioutil"
  20. "strconv"
  21. "strings"
  22. )
  23. // 获取卡牌的列表
  24. func ReadCsv_ConfigFile_StCard2List_Fun() bool {
  25. // 获取数据,按照文件
  26. fileName := "puke.csv"
  27. fileName = "./csv/" + fileName
  28. cntb, err := ioutil.ReadFile(fileName)
  29. if err != nil {
  30. return false
  31. }
  32. // 读取文件数据
  33. r2 := csv.NewReader(strings.NewReader(string(cntb)))
  34. ss, _ := r2.ReadAll()
  35. sz := len(ss)
  36. // 循环取数据
  37. for i := 1; i < sz; i++ {
  38. Infotmp := new(Global_Define.Card2InfoBase)
  39. Infotmp.Card2ID = ss[i][0]
  40. Infotmp.Card2Msg = ss[i][1]
  41. Infotmp.Card2GameName = ss[i][2]
  42. Infotmp.Card2GameID = ss[i][3]
  43. Infotmp.PicPath = ss[i][4]
  44. Infotmp.Type = ss[i][5]
  45. Global_Define.G_StCard2InfoBaseST[Infotmp.Card2ID] = Infotmp
  46. }
  47. fmt.Println(Global_Define.G_StCard2InfoBaseST)
  48. return true
  49. }

写入CSV文件

  1. package main
  2. import (
  3. "encoding/csv"
  4. "fmt"
  5. "os"
  6. )
  7. func main() {
  8. f, err := os.Create("test.csv") //创建文件
  9. if err != nil {
  10. panic(err)
  11. }
  12. defer f.Close()
  13. f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM
  14. w := csv.NewWriter(f) //创建一个新的写入文件流
  15. data := [][]string{
  16. {"1", "中国", "23"},
  17. {"2", "美国", "23"},
  18. {"3", "bb", "23"},
  19. {"4", "bb", "23"},
  20. {"5", "bb", "23"},
  21. }
  22. w.WriteAll(data) //写入数据
  23. w.Flush()}

Golang 创建csv文件 - 图2