エンジニアはこわくない

雑記とかエンジニアっぽい内容を好きなように書く場所

golangでcsvファイルを書き出し


スポンサーリンク

f:id:tsujitaku50:20170224131252j:plain

golangでcsvを作成したかったので、調べました。

さすがgolangって感じでサクッと出来たので書きたいと思います。

csvファイルの書き出し

csvを書き出すコードは以下になります。

import (
    "encoding/csv"
    "log"
    "os"
)

var sample = []string{
    "sample_1",
    "sample_2",
    "sample_3",
}

func main() {
    //書き込みファイル作成
    file, err := os.Create("/出力したいパス/sample.csv")
    if err != nil {
        log.Println(err)
    }
    defer file.Close()

    writer := csv.NewWriter(file) // utf8
    writer.Write(sample)          
    writer.Flush()                // ファイル出力
}

sample.csvを出力して、その中身は

sample_1,sample_2,sample_3

というcsvファイルになります。

golangがデフォルトでencoding/csvというパッケージを用意してくれているので

そちらを使用しています。

基本は上記のコードでcsvファイル書き出しが可能だと思います。

オプション

UseCRLFCommaというオプションも存在しています。

 writer := csv.NewWriter(file) // utf8
        writer.UseCRLF = true         // デフォルトはLFのみ
        writer.Comma = ';'
    writer.Write(sample)          
    writer.Flush()                // ファイル出力

UseCRLFは改行コードを指定出来て、Commaは区切り文字を指定することが可能になります。

これは意外と便利そう。

おわり!!