csv.go 621 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package export
  2. import (
  3. "encoding/csv"
  4. "os"
  5. )
  6. type CsvExport struct {
  7. }
  8. func (e *CsvExport) ExportData(fileName string, datas [][]string, comma ...rune) error {
  9. // 打开文件
  10. file, err := os.Create(fileName)
  11. if err != nil {
  12. return err
  13. }
  14. defer file.Close()
  15. // 写入UTF-8 BOM,避免使用Microsoft Excel打开乱码
  16. file.WriteString("\xEF\xBB\xBF")
  17. // 创建csv writer
  18. writer := csv.NewWriter(file)
  19. if len(comma) > 0 {
  20. writer.Comma = comma[0]
  21. }
  22. defer writer.Flush()
  23. // 写入数据
  24. for _, data := range datas {
  25. err = writer.Write(data)
  26. if err != nil {
  27. return err
  28. }
  29. }
  30. return nil
  31. }