从CSV文件创建插入内容时,如何跳过CSV文件中的第一行?

我已经创建了一些代码,这些代码应该循环遍历一个csv文件,然后从该文件创建插入,以插入到数据库中。 该代码有效,但是它试图插入csv文件的第一行。第一行恰好是标题行。例如:

ID,Name
1,'John'

我不希望代码读取第一行并尝试插入ID和Name,而是插入1和'John'。

如何跳过.csv文件的第一行以相应地插入我的实际数据?

这是我目前正在从事的工作:

type InsertTestThing struct {
    ID int `csv:"id"`
    Name string `csv:"name"`
}

func InsertTestFileLoader(filename string,channel chan InsertTestThing) {
    defer close(channel)
    file,err := os.Open(filename)
    if err != nil {
        panic(err)
    }
    defer file.Close()
    var InsertTestNew InsertTestThing
    reader := csv.NewReader(file)
    for {
        err := unmarshal.Unmarshal(reader,&InsertTestNew)
        if err == io.EOF {
            break
        }
        if err != nil {
            panic(err)
        }
        channel <- InsertTestNew
    }
}

func saveInsertTest(channel <-chan InsertTestThing,db *sql.DB) {
    stmt,err := db.Prepare(`INSERT INTO InsertTest (id,name) VALUES (?,?);`)
    if err != nil {
        log.Fatal(err)
    }

    for InsertTestThing := range channel {
        _,err := stmt.Exec(
            InsertTestThing.DiscountID,InsertTestThing.CategoryGroupId,)
        if err != nil {
            log.Fatal(err)
        }

    }
}

func InsertTestInsert()  {
    db,_ := sql.Open(
        "mysql","localhost")
    channel := make(chan InsertTestThing)
    go InsertTestFileLoader("InsertTest.csv",channel)
    saveInsertTest(channel,db)
    defer db.Close()
lcz197474 回答:从CSV文件创建插入内容时,如何跳过CSV文件中的第一行?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3099421.html

大家都在问