zoukankan      html  css  js  c++  java
  • 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 , " ")
                // }
         // 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文件夹下,然后再使用包方法打开
  • 相关阅读:
    范仁义js课程---26、循环结构(while循环)
    解决Failed to parse SourceMap: http:xxx 问题
    范仁义js课程---25、switch选择结构
    范仁义js课程---24、条件运算符
    范仁义js课程---23、if选择结构小实例
    范仁义js课程---22、选择结构(if)
    javascript疑难问题---4、NaN的相等性判断
    范仁义js课程---21、js运算符优先级
    android L新控件RecyclerView详解与DeMo[转]
    Color Cube – 国产的优秀配色取色工具
  • 原文地址:https://www.cnblogs.com/mzli/p/13689851.html
Copyright © 2011-2022 走看看