Go Language Tutorial
CSV means comma separated values and it is one of the most common format to import and export in spreadsheets and databases.
encoding/csv module has the functionalities to read or write the CSV format data.
Let us consider example csv file ‘test-file.csv’ and has the below content.
id,name,class 1,student1,VII 2,student2,XI 3,student3,VIII
This Go program is used to read the existing csv file and provides the list of Student objects to consume in the Go programming.
package main import ( "fmt" "os" "encoding/csv" ) func main() { // Create struct to hold the CSV row data type Student struct { Id string Name string Class string } // Open csv file using Open function importing os module csvFile, err := os.Open("test-file.csv") if err!=nil { fmt.Println(err) } defer csvFile.Close() // Create CSV reader csvReader := csv.NewReader(csvFile) // Specify number of columns per row csvReader.FieldsPerRecord = 3 // Specify delimiter csvReader.Comma = ',' // Read all the csv rows as csvData object csvData, err := csvReader.ReadAll() if err != nil { fmt.Println(err) os.Exit(1) } var stu Student var students []Student // Parses csvData object and create array of Student objects for _, row := range csvData { stu.Id = row[0] stu.Name = row[1] stu.Class = row[2] students = append(students, stu) } // Prints the data fmt.Println("All Students") fmt.Println(students) }Output:
$ go build csv-reader.go $ ./csv-reader All Students [{id name class} {1 student1 VII} {2 student2 XII} {3 student3 VIII}]« Previous Next »