大家一起学Golang——电子表格读取数据到Mysql数据库

大家一起学Golang——电子表格读取数据到Mysql数据库

创建

要先使用包 github/tealeg/xlsx
具体内容参照链接:https://github.com/tealeg/xlsx
查考 Reading XLSX files、Writing XLSX files部分的内容,可以看出对于excel表的文件、sheet、row和cell都有操作。读取表格中的数据放入到事先定义的结构体中,便于后面数据操作。

package main

import (
	"database/sql"
	"fmt"
	_"github.com/go-sql-driver/mysql"
	"github.com/tealeg/xlsx"
)

type Person struct {
	Name       string
	Education  string
	University string
	Industry   string
	Workyear   string
	Position   string
	Salary     string
	Language   string
}

//func init () {
//
//}
func GetExcel() []Person {
	var per1 []Person
	file, err := xlsx.OpenFile("E:\\student_info.xlsx")  //打开文件
	if err != nil {
		fmt.Println(err)
	}

	for _, sheet := range file.Sheets {
		for _, row := range sheet.Rows {
			var temp1 Person
			var str []string
			for _, cell := range row.Cells {
				str = append(str, cell.String())
			}
			temp1.Name = str[0]
			temp1.Education = str[1]
			temp1.University = str[2]
			temp1.Industry = str[3]
			temp1.Workyear = str[4]
			temp1.Position = str[5]
			temp1.Salary = str[6]
			temp1.Language = str[7]
			if str[1] == "本科" && str[4] == "1-3年" {
				per1 = append(per1, temp1)
			}
		}
	}
	for i, v := range per1 {
		fmt.Println(i, v)
	}
	return per1
}

var (
	db *sql.DB
)

//建立数据库连接
func init() {
	var err error
	db, err = sql.Open("mysql", "mysqluser:password@(127.0.0.1:3306)/goDB")
	if err != nil {
		fmt.Println(err)
		panic(err)
	}
}
func main() {
	//var db *sql.DB    这个和全局的db 重复 报错了!!==
	//"用户名:密码@[连接方式](主机名:端口号)/数据库名"
	//db, _ := sql.Open("mysql", "mysqluser:password@(127.0.0.1:3306)/goDB")
	defer db.Close()
	//连接数据库
	err := db.Ping()
	if err != nil {
		fmt.Println("数据库连接失败")
		return
	}
	per := GetExcel()
	//db.Query("insert into goDB.person values(?,?,?,?,?,?,?,?)")

	stmt, _ := db.Prepare("insert into goDB.person values(?,?,?,?,?,?,?,?)") //获取预处理语句对象
	for _, one := range per {
		fmt.Println(one.Name, one.Education, one.University, one.Industry, one.Workyear, one.Position, one.Salary, one.Language)
		stmt.Exec(one.Name, one.Education, one.University, one.Industry, one.Workyear, one.Position, one.Salary, one.Language) //调用预处理语句
	}

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值