I suspect that this has to do with the line-ending characters on a Mac. I think Excel is writing the file with each line ending with a CR character. The encoding/csv package expects RFC 4180 format (each line terminated with CRLF), which is what Excel writes when you select "Windows Comma Separated".
I don't know a super-easy way to make encoding/csv accept the first format. On Mon, Jul 17, 2017 at 4:42 PM Dat Huynh <audathu...@gmail.com> wrote: > Hi all, > > I have a problem with parsing a .csv file using the library "encoding/csv". > > I wonder if that is the problem of Microsoft Excel or the Go library. > > I am using Microsoft Excel version 14.2.2 on MacOS and go1.8.3 darwin/amd64 > > What did I do? > > Firstly I input the below values into an Excel sheet, and save as a .csv > file. > value 11 value 12 > value 21 value 22 > value 31 value 32 > > If I choose "Comma Separated Values (.csv)" in the option "Format", type > the file name "data.csv", and run my Go app, it returns: > > $ go run demo.go > value 31 value 32]12 > > If I choose "Window Comma Separated (.csv)" in the option "Format", type > the file name "data.csv", and run my Go app, it works well. > > $ go run demo.go > 0 [value 11 value 12] > 1 [value 21 value 22] > 2 [value 31 value 32] > > Could you please confirm if this is a bug of the library or MS Excel? > > Below is my code. > > package main > > import ( > "encoding/csv" > "fmt" > "os" > ) > > func main() { > file, _ := os.Open("data.csv") > defer file.Close() > csvReader := csv.NewReader(file) > records, _ := csvReader.ReadAll() > for index, record := range records { > fmt.Println(index, record) > } > } > > Thank you very much. > > Regards, > Dat Huynh. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.