|
@@ -0,0 +1,38 @@
|
|
|
|
+package export
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "encoding/csv"
|
|
|
|
+ "os"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+type CsvExport struct {
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func (e *CsvExport) ExportData(fileName string, datas [][]string, comma ...rune) error {
|
|
|
|
+ // 打开文件
|
|
|
|
+ file, err := os.Create(fileName)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ defer file.Close()
|
|
|
|
+
|
|
|
|
+ // 写入UTF-8 BOM,避免使用Microsoft Excel打开乱码
|
|
|
|
+ file.WriteString("\xEF\xBB\xBF")
|
|
|
|
+
|
|
|
|
+ // 创建csv writer
|
|
|
|
+ writer := csv.NewWriter(file)
|
|
|
|
+ if len(comma) > 0 {
|
|
|
|
+ writer.Comma = comma[0]
|
|
|
|
+ }
|
|
|
|
+ defer writer.Flush()
|
|
|
|
+
|
|
|
|
+ // 写入数据
|
|
|
|
+ for _, data := range datas {
|
|
|
|
+ err = writer.Write(data)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return nil
|
|
|
|
+}
|