欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 使用go实现导入Rxcel数据到数据库并渲染到页面上

使用go实现导入Rxcel数据到数据库并渲染到页面上

2025/5/15 10:27:16 来源:https://blog.csdn.net/weixin_45582252/article/details/146501938  浏览:    关键词:使用go实现导入Rxcel数据到数据库并渲染到页面上

github.com/360EntSecGroup-Skylar/excelize

github.com/tealeg/xlsx

可以使用以上两个库

代码如下:

// jsonResult 返回 JSON 格式的结果
func (c *TemplateController) jsonResult(code int, msg string, data interface{}) {c.Data["json"] = map[string]interface{}{"code": code,"msg":  msg,"data": data,}c.ServeJSON()
}// ImportTemplate 导入系统
func (c *TemplateController) ImportTemplate() {// 获取上传的文件file, h, err := c.GetFile("fileInput")if err != nil {fmt.Println("获取文件时发生错误:", err)c.Ctx.WriteString("获取文件失败")return}ext := path.Ext(h.Filename)// 验证后缀名是否符合要求AllowExtMap := map[string]bool{".xlsx": true,}if _, ok := AllowExtMap[ext]; !ok {c.Ctx.WriteString("后缀名不符合上传要求")return}// 打开Excel文件xlsx, err := excelize.OpenReader(file)if err != nil {fmt.Println("打开Excel文件失败:", err)return}rows := xlsx.GetRows("Template")// 遍历Excel的每一行for i, row := range rows {if i > 0 { // 跳过表头Id := row[0]ProductCode := row[1]Creator := row[2]Parent := row[3]Remark := row[4]// 打印准备插入的数据//fmt.Printf("准备插入数据: Id=%s, ProductCode=%s, Creator=%s, Parent=%s, Remark=%s\n", Id, ProductCode, Creator, Parent, Remark)// 插入数据到数据库_, err := Db.Exec("INSERT INTO Materia (Id, ProductCode, Creator, Parent, Remark) VALUES (?, ?, ?, ?, ?)", Id, ProductCode, Creator, Parent, Remark)if err != nil {fmt.Println("插入数据失败:", err) // 打印具体的错误信息continue                    // 继续处理下一行}fmt.Println("插入成功:", Id, ProductCode, Creator, Remark)}}c.Ctx.WriteString("文件已上传,数据已保存到数据库")
}

导入完成

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词