1.2.7 生成CSV数据

  1. 逗号分隔值(Comma-Separated Values, CSV)是指文件以纯文本形式存储表格数据(数字和文本)

  2. Go语言提供encoding/csv包来处理CSV数据

  3. 生成CSV数据流程如下:

    1. 使用os.Create()函数创建.csv文件,函数定义如下:

      func Create(name string) (*File, error)

      备注:os.Create()函数如果创建文件成功,则会返回文件指针对象*File

    2. 调用文件对象*FileWriteString()方法来设置写入文件的内容为字符串类型,WriteString()方法定义如下:

      func (f *File) WriteString(s string) (n int, err error)
    3. 调用encoding/csv包中提供了NewWriter()函数来实例化并返回*Writer对象,定义如下

      func NewWriter(w io.Writer) *Writer
    4. 调用*Writer对象提供的Writer()方法来写入数据到CSV文件中,定义如下

      func (w *Writer) Write(record []string) error
  4. 示例如下:

    func main() {
    
    	// 创建名为test.csv文件
    	file, err := os.Create("test.csv")
    	if err != nil {
    		panic(err)
    	}
    	defer file.Close()
    
    	file.WriteString("\xEF \xBB \xBF") // 写入UTF-8 BOM
    
    	// NewWriter()函数返回一个Writer对象
    	w := csv.NewWriter(file)
    
    	// 调用Writer对象的Write()方法写入数据到CSV文件中
    	w.Write([]string{"学号", "姓名", "分数"})
    	w.Write([]string{"1", "Barry", "99.5"})
    	w.Write([]string{"2", "Ling", "100"})
    	w.Write([]string{"3", "Jack", "88"})
    	w.Write([]string{"4", "Dong", "68"})
    	w.Flush()
    
    }

    运行结果:会在代码所在目录生成一个名为"test.csv"的文件

Last updated