Skip to content

Repository files navigation

csvdata -- Reading CSV Data

Go ReferenceCICodeQLGitHub licenseGitHub release

This package is required Go 1.25 or later.

Design Goals

  • Provide a simple and stable interface for reading CSV-like rows.
  • Keep parsing concerns separated by format adapters (exceldata, calcdata).
  • Return explicit errors with context, and avoid hidden side effects.

Development

Local Validation

Primary command:

task test

Equivalent direct commands:

go mod verify
go test -shuffle on ./...
golangci-lint-v2 run --enable gosec --timeout 3m0s ./...

Optional Checks

task govulncheck
task graph

CI Workflows

  • CI: lint, tests, and vulnerability checks.
  • CodeQL: security analysis.

All workflows are available in GitHub Actions for this repository.

Usage

Import

import"github.com/goark/csvdata"

Usage

package csvdata_test
import (
"fmt""github.com/goark/csvdata"
)
funcExampleNew() {
file, err:=csvdata.OpenFile("testdata/sample.csv")
iferr!=nil {
fmt.Println(err)
return
}
rc:=csvdata.NewRows(csvdata.New(file), true)
deferrc.Close()
iferr:=rc.Next(); err!=nil {
fmt.Println(err)
return
}
fmt.Println(rc.Column("name"))
// Output:// Mercury
}

Reading from Excel file

package exceldata_test
import (
"fmt""github.com/goark/csvdata""github.com/goark/csvdata/exceldata"
)
funcExampleNew() {
xlsx, err:=exceldata.OpenFile("testdata/sample.xlsx", "")
iferr!=nil {
fmt.Println(err)
return
}
r, err:=exceldata.New(xlsx, "")
iferr!=nil {
fmt.Println(err)
return
}
rc:=csvdata.NewRows(r, true)
deferrc.Close() //dummyiferr:=rc.Next(); err!=nil {
fmt.Println(err)
return
}
fmt.Println(rc.Column("name"))
// Output:// Mercury
}

Reading from LibreOffice Calc file

package calcdata_test
import (
"fmt""github.com/goark/csvdata""github.com/goark/csvdata/calcdata"
)
funcExampleNew() {
ods, err:=calcdata.OpenFile("testdata/sample.ods")
iferr!=nil {
fmt.Println(err)
return
}
r, err:=calcdata.New(ods, "")
iferr!=nil {
fmt.Println(err)
return
}
rc:=csvdata.NewRows(r, true)
deferrc.Close() //dummyiferr:=rc.Next(); err!=nil {
fmt.Println(err)
return
}
fmt.Println(rc.Column("name"))
// Output:// Mercury
}

Modules Requirement Graph

dependency.png

About

Reading CSV Data

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages