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文件夹下,然后再使用包方法打开
  • 相关阅读:
    Siege 3.0 正式版发布,压力测试工具
    Pomm 1.1.2 发布,专为 PG 设计的 ORM 框架
    Whonix 0.5.6 发布,匿名通用操作系统
    国内开源 java cms,Jspxcms 2.0 发布
    EZNamespaceExtensions.Net v2013增加对上下文菜单、缩略图、图标、属性表的支持
    GNU Guile 2.0.9 发布,Scheme 实现
    jdao 1.0.4 发布 轻量级的orm工具包
    OpenSearchServer 1.4 RC4 发布
    Percona Server for MySQL 5.5.3030.2
    Samba 4.0.5 发布
  • 原文地址:https://www.cnblogs.com/mzli/p/13689851.html
Copyright © 2011-2022 走看看