首页 > 数据库 >Glang&Mysql&Excel

Glang&Mysql&Excel

时间:2024-05-07 19:56:06浏览次数:14  
标签:VARCHAR String err Cells Excel Glang score Mysql row

package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/go-sql-driver/mysql"
	"github.com/tealeg/xlsx"
)

func main() {
	// 连接MySQL数据库
	db, err := sql.Open("mysql", "root:123456@tcp(localhost:3306)/cysql")
	if err != nil {
		log.Fatalf("Error connecting to MySQL: %v", err)
	}
	defer func(db *sql.DB) {
		err := db.Close()
		if err != nil {
			// 在关闭数据库连接时处理错误
		}
	}(db)

	// 创建表格
	createTable(db)

	// 打开Excel文件
	xlFile, err := xlsx.OpenFile("高二10班下期末考试成绩.xlsx")
	if err != nil {
		log.Fatalf("Error opening Excel file: %v", err)
	}

	// 遍历每个工作表
	for _, sheet := range xlFile.Sheets {
		// 遍历每一行
		for _, row := range sheet.Rows {
			// 从Excel中读取数据
			var name, class string
			var totalScore, schoolRank, nationalExamRank string
			var chinese, math, english, physics, chemistry, biology string
			if len(row.Cells) >= 11 {
				name = row.Cells[0].String()
				class = row.Cells[1].String()
				totalScore = row.Cells[2].String()
				schoolRank = row.Cells[3].String()
				nationalExamRank = row.Cells[4].String()
				chinese = row.Cells[5].String()
				math = row.Cells[6].String()
				english = row.Cells[7].String()
				physics = row.Cells[8].String()
				chemistry = row.Cells[9].String()
				biology = row.Cells[10].String()
			}

			// 插入数据到MySQL数据库
			_, err := db.Exec("INSERT INTO student_scores (name, class, total_score, school_rank, national_exam_rank, chinese_score, math_score, english_score, physics_score, chemistry_score, biology_score) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", name, class, totalScore, schoolRank, nationalExamRank, chinese, math, english, physics, chemistry, biology)
			if err != nil {
				log.Fatalf("Error inserting data into MySQL: %v", err)
			}
		}
	}

	fmt.Println("Data imported successfully")
}

// 创建表格
func createTable(db *sql.DB) {
	// 准备创建表格的SQL语句
	createTableSQL := `
		CREATE TABLE IF NOT EXISTS student_scores (
			name VARCHAR(20),
			class VARCHAR(10),
			total_score VARCHAR(20),
			school_rank VARCHAR(20),
			national_exam_rank VARCHAR(20),
			chinese_score VARCHAR(20),
			math_score VARCHAR(20),
			english_score VARCHAR(20),
			physics_score VARCHAR(20),
			chemistry_score VARCHAR(20),
			biology_score VARCHAR(20)
		)
	`

	// 执行创建表格的SQL语句
	_, err := db.Exec(createTableSQL)
	if err != nil {
		log.Fatalf("Error creating table: %v", err)
	}

	fmt.Println("Table created successfully")
}

标签:VARCHAR,String,err,Cells,Excel,Glang,score,Mysql,row
From: https://www.cnblogs.com/godcy/p/18178253

相关文章

  • mysql练习 —— 关于一些函数的使用
    学校作业,拿来记录一下。(老师出的习题貌似是从一本书上拿到的)Q1:使用RAND()函数来获得3个随机值。A1: 解析:rand()函数,获得随机值,产生0-1的随机值。(random,随机) Q2:求3和4的平方根。A2: 解析:sqrt()用于求解平方根。 Q......
  • MySQL如何定位慢查询
    做压力测试的时候有的接口非常的慢,接口的响应时间超过了2秒以上。系统部署了运维的监控系统Skywalking,在展示的报表中可以看到是哪一个接口比较慢,并且可以分析这个接口哪部分比较慢,这里可以看到SQL的具体的执行时间,所以可以定位是哪个SQL语句出了问题。另外MySQL中也提供了慢日......
  • MySQL同步故障:“ Slave_SQL_Running:No“ 两种解决办法
    进入slave服务器,运行: ​mysql>showslave status\G            .......              Relay_Log_File:localhost-relay-bin.000535               Relay_Log_Pos:21795072       Relay_Ma......
  • oracle表导出mysql适用的脚本方法
    oracle表导出mysql适用的脚本方法1.在对应的oracle数据库plsql中执行下面代码,建F_LIMS_GET_SQL_FOR_MYSQL函数CREATEORREPLACEFUNCTIONF_LIMS_GET_SQL_FOR_MYSQL(PI_TABLENAMEINVARCHAR2,PI_ISDROPININTEGER:=1......
  • xlwings:在Excel中集成Python
    Github地址:https://github.com/xlwings/xlwings在现代数据分析和报表生成中,MicrosoftExcel仍然是一款非常流行和强大的工具。与此同时,Python作为一种高级编程语言,具备出色的数据处理和分析能力。那么,有没有一种方法可以将Excel和Python完美结合,以发挥它们各自的优势?答案是肯定的......
  • Mysql-事务的基本特性和隔离级别
    0.背景在数据库中,事务是一组数据库操作,可以将事务操作视为一个基本的工作单元。1.事务的基本特性事务的基本特性“ACID”对于事务呢,就是这一组sql操作,要确保ACID这4个基本特性。哎,八股文不好背,我记忆方式是:一元吃个(原持隔)原子性(Atomicity):事务中的所有操作要么全部执行成功,......
  • MySQL-基础语法教程
    基础解析:select要几列where要几行,用来对行进行过滤,加where,查出来的行变少*代表所有的列    增删改查 UPDATESET更新UPDATEscoresSETscore=300WHERENAME="王大"ANDkemu="语文"     delete语法DELETEFROMscoresWHEREID=11 #删除......
  • mysql索引使用基础
    1.创建&删除MySQL可以通过CREATE、ALTER、DDL三种方式创建一个索引。在MySQL中,使用CREATEINDEX语句可以创建索引。具体语法如下:CREATEINDEXindexNameONtableName(columnName(length)[ASC|DESC]);其中,indexName是索引的名称,tableName是要在其上创建索引的表名,column......
  • Linux非root用户安装mysql(5.7)
    1、下载安装包···········2、安装MySQL解压:tarxzvfmysql-5.7.31-linux-glibc2.12-x86_64.tar.gzmvmysql-5.7.31-linux-glibc2.12-x86_64mysql配置my.cnf文件:cat>>my.cnf<<EOF[mysqld]basedir=/app/mysqldatadir=/app/mysql/dataport=3333s......
  • 解决excel打开.csv文件乱码问题
    解决excel打开.csv文件乱码问题今天打开用Excel打开一个后缀为.csv的文件,出现乱码,然后用Emeditor转化文件格式为Utf-8,再用excel打开还是乱码,然后就有了以下步骤在Excel里面,点击数据=>从文本/CSV=>然后找到那个乱码.csv的文件,将其导入即可第二次我把制表符改成原始的逗号,......