golang gin 導入excel


框架:gin

使用插件:github.com/360EntSecGroup-Skylar/excelize

在使用go get 安裝的時候有可能會報錯,這個時候我們可以去github上去找報錯對應的包,然后在github上下載,放置到我們項目中對應的文件夾下

話不多說,直接貼代碼,每一步均有注釋

func ToLead(c *gin.Context) {
    // 獲取上傳文件
    files, _ := c.FormFile("file")
    // 設置文件需要保存的指定位置並設置保存的文件名字
    dst := path.Join("../upload", files.Filename)
    // 上傳文件到指定的路徑
    a := c.SaveUploadedFile(files, dst)
    if a != nil {
        c.JSON(200, gin.H{"shuju": a})
    }
    xlsx, err := excelize.OpenFile(dst)
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
    // 獲取excel中具體的列的值
    rows, _ := xlsx.GetRows("Sheet" + "1")
    // 循環剛剛獲取到的表中的值
    for key, row := range rows {
  // 去掉標題行
        if key > 0 {
     // 循環每一個列的值
            // for _, colCell := range row {
                //  fmt.Print(colCell , "\t")
            // }
     // User 是對應users表中字段的struct, 這里就是定義對應字段的值
            user:= User{Username:row[0],Password:row[1], Nickname:row[2], Address:row[3], Sex:row[4], Age:row[5], Headphoto:row[6]}
       // Db.GetDB()這個是我自己封裝的gorm方法,大家可以按照gorm使用方法
            Db.GetDB().Create(&user)
            //fmt.Println(row)
        }
    }
}
注意事項:
在上述代碼中我們可以看到,導入文件的時候並不是像php那樣直接接收到file文件之后直接打開就處理數據了,在golang中直接打開上傳的文件會報錯找不到這個文件,所以在參考gin中的文件上傳后,將excel文件上傳到項目upload文件夾下,然后再使用包方法打開


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM