csv

package
v0.0.0-...-ccfaf30 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2020 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package csv エクセルとCSVを相互運用するためのパッケージ

Example (Reader)
package main

import (
	"fmt"
	"os"

	"github.com/topgate/goutils/interop/excel/csv"
)

func main() {
	file, err := os.Open("some_sjis_utf8withbom.csv")
	if err != nil {
		panic(err)
	}
	reader := csv.NewReader(file)
	data, err := reader.ReadAll()
	if err != nil {
		panic(err)
	}
	fmt.Printf("%v", data)
}
Output:

Example (Writer)
package main

import (
	"os"

	"github.com/topgate/goutils/interop/excel/csv"
)

func main() {
	file, err := os.Create("some.csv")
	if err != nil {
		panic(err)
	}
	writer := csv.NewUTF8WithBOMWriter(file)
	defer writer.Flush()
	err = writer.WriteAll([][]string{
		[]string{"header1", "header2"},
		[]string{"val1", "val2"},
	})
	if err != nil {
		panic(err)
	}
}
Output:

Index

Examples

Constants

This section is empty.

Variables

View Source
var UTF8BOM = [3]byte{0xEF, 0xBB, 0xBF}

UTF8BOM UTF8のBOM

Functions

func NewReader

func NewReader(r io.Reader) *csv.Reader

NewReader 与えられたio.Readerを元に新しいcsvリーダーを返す

Example
package main

import (
	"os"

	"github.com/topgate/goutils/interop/excel/csv"
)

func main() {
	file, err := os.Open("some.csv")
	if err != nil {
		panic(err)
	}
	csv.NewReader(file)
}
Output:

func NewSJISReader

func NewSJISReader(r io.Reader) *csv.Reader

NewSJISReader 与えられたio.Readerを元に新しいリーダーを返す

Example
package main

import (
	"os"

	"github.com/topgate/goutils/interop/excel/csv"
)

func main() {
	file, err := os.Open("some.csv")
	if err != nil {
		panic(err)
	}
	csv.NewSJISReader(file)
}
Output:

func NewSJISWriter

func NewSJISWriter(w io.Writer) *csv.Writer

NewSJISWriter 与えられたio.Writerを元に新しいSJISのcsvライターを返す。

UseCRLFはデフォルトでtrueが設定される

panicが発生するため*bufio.Writerをwに与えてはならない。 *bufio.Writerを与えるとpanicになるのは、返されるWriterのFlushを呼び出しても、与えた*bufio.WriterのFlushが呼び出されないため。 これはencoding/csvのWriterの設計に依存する制約である。

Example
package main

import (
	"os"

	"github.com/topgate/goutils/interop/excel/csv"
)

func main() {
	file, err := os.Open("some.csv")
	if err != nil {
		panic(err)
	}
	csv.NewSJISWriter(file)
}
Output:

func NewUTF8WithBOMReader

func NewUTF8WithBOMReader(r io.Reader) *csv.Reader

NewUTF8WithBOMReader BOM付きUTF8のリーダーを新しく作る

Example
package main

import (
	"os"

	"github.com/topgate/goutils/interop/excel/csv"
)

func main() {
	file, err := os.Open("some.csv")
	if err != nil {
		panic(err)
	}
	csv.NewUTF8WithBOMReader(file)
}
Output:

func NewUTF8WithBOMWriter

func NewUTF8WithBOMWriter(w io.Writer) *csv.Writer

NewUTF8WithBOMWriter 与えられたio.Writerを元に新しいBOM付きUTF8のcsvライターを返す。

UseCRLFはデフォルトでtrueが設定される。

panicが発生するため*bufio.Writerをwに与えてはならない。 *bufio.Writerを与えるとpanicになるのは、返されるWriterのFlushを呼び出しても、与えた*bufio.WriterのFlushが呼び出されないため。 これはencoding/csvのWriterの設計に依存する制約である。

Example
package main

import (
	"os"

	"github.com/topgate/goutils/interop/excel/csv"
)

func main() {
	file, err := os.Open("some.csv")
	if err != nil {
		panic(err)
	}
	csv.NewUTF8WithBOMWriter(file)
}
Output:

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL