golang excel数据写入到sqlite3中--v2版本
(278条消息) golang excel数据写入到sqlite3中_夸父追梦@的博客-CSDN博客项目内容信息:上一个版本在这里看下https://blog.csdn.net/wtt234/article/details/124522353更新代码内容信息:package mainimport ("database/sql""fmt""github.com/360EntSecGroup-Skyl
·
项目内容信息:上一个版本在这里看下
https://blog.csdn.net/wtt234/article/details/124522353
更新代码内容信息:
package main
import (
"database/sql"
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
_ "github.com/mattn/go-sqlite3"
"log"
"os"
)
//定义数据库的全局变量信息
const (
dbDriverName = "sqlite3"
dbname = "./datacheck.db"
)
//读取与写入的数据放在一块----写入数据库文件
func exceTosqliteChckdata(db *sql.DB, ExcelName string) {
//f, err := excelize.OpenFile("./sx1.xlsx")
f, err := excelize.OpenFile(ExcelName)
if err != nil {
fmt.Println("打开excel文件错误", err)
return
}
rows := f.GetRows("ck")
for index, row := range rows {
//indiex-->是行号 1,2,3,。。。
if index == 0 { //第一行‘表头’数据不写入数据库
continue
}
//fmt.Println("inex=", index)
//fmt.Println(row) //[4000027 三层南走廊东 4000027 hkGxwgL6u03f]
Gbid := row[0] //gb id 4000027
devicename := row[1] //设备名称 --三层南走廊东
fmt.Println(Gbid, devicename) //录入数据内容
sql := `insert into checkdata (gbid, devicename) values(?,?)`
stmt, _ := db.Prepare(sql)
_, err := stmt.Exec(Gbid, devicename)
if err != nil {
log.Fatalln("插入数据失败")
}
}
}
func exceTosqliteNetwl(db *sql.DB, ExcelName string) {
//f, err := excelize.OpenFile("./sx1.xlsx")
f, err := excelize.OpenFile(ExcelName)
if err != nil {
fmt.Println("打开excel文件错误!", err)
return
}
rows := f.GetRows("data")
for index, row := range rows {
if index == 0 { //第一行‘表头’数据不写入数据库--跳过第一行数据,不读
continue
}
//fmt.Println(row)
Gbid := row[5] //gb id -表格的第五列是gbid
devicename := row[0] //设备名称 --三层南走廊东
fmt.Println(Gbid, devicename) //录入数据内容
sql := `insert into netwl (gbid, devicename) values(?,?)`
stmt, _ := db.Prepare(sql)
_, err := stmt.Exec(Gbid, devicename)
if err != nil {
log.Fatalln("插入数据失败")
}
}
}
func showMenu() {
//菜单选项
//fmt.Println()
fmt.Println("1.写入库数据")
fmt.Println("2.写入待检测数据")
fmt.Println("3.数据检测")
fmt.Println("4.退出系统")
}
func importnetwl(db *sql.DB) {
exceTosqliteNetwl(db, "sx1.xlsx")
}
func importcheckdata(db *sql.DB) {
exceTosqliteChckdata(db, "dly.xlsx")
}
func checkdata() {
fmt.Println("数据检测...")
}
func main() {
//初始化数据sqlite3db
db, err := sql.Open(dbDriverName, dbname)
if err != nil {
fmt.Println(err)
}
for {
showMenu() //1.调用系统菜单
var choice int //2.等待用户选择要执行的选项
fmt.Print("请输入选项:")
//fmt.Scanln(&choice)
fmt.Scanf("%d\n", &choice)
//3.选择输入的数字编号,执行用户选择的动作
switch choice {
case 1:
importnetwl(db)
case 2:
importcheckdata(db)
case 3:
checkdata()
case 4:
os.Exit(0)
default:
fmt.Println("你输入的序号错误,请重新输入!")
}
//fmt.Printf("你的选择是%v\n", choice)
}
}
更多推荐
所有评论(0)