[Go] CSV 形式の文字列を作成する

作成日: 2022年04月21日

encoding/csv パッケージを使うことで CSV 形式の文字列を作成することができます。

package main

import (
    "bytes"
    "encoding/csv"
    "fmt"
)

func main() {
    records := [][]string{
        {"name", "age", "country"},
        {"Tanaka", "20", "Japan"},
        {"Bob", "25", "USA"},
        {"Tom", "30", "England"},
    }

    buf := new(bytes.Buffer)

    w := csv.NewWriter(buf)
    err := w.WriteAll(records)
    if err != nil {
        panic("error")
    }

    if err := w.Error(); err != nil {
        panic("error")
    }

    fmt.Println(buf.String())
}

説明

  • new(bytes.Buffer) で CSV 形式のデータを書き込み先となる buf を作成します。
  • csv.NewWriter(buf) で書き込み先を buf として *csv.Writer を生成します。
  • w.WriteAll(records)record の内容を書き込みます。
  • fmt.Println(buf.String()) で CSV 形式のデータを出力します。

実行結果

name,age,country
Tanaka,20,Japan
Bob,25,USA
Tom,30,England
Go