1. 需求分析
本文将介绍如何使用Python连接MySQL数据库,并从Excel文件中读取数据,将其插入到MySQL数据库中。
2. 环境准备
在开始本文之前,请确保您已经安装好了以下环境:
- Python 3.x
- PyMySQL库
- openpyxl库
- MySQL数据库
3. 连接MySQL数据库
我们可以使用pymysql
库来连接MySQL数据库。请先创建一个名为test
的MySQL数据库,并在其中创建一个名为yonghu
的表。
import pymysql
# 连接到MySQL数据库
mydb = pymysql.connect(
host="localhost",
user="root",
passwd="123456",
db="test"
)
在上述代码中,我们调用了pymysql
库中的connect()
函数来连接MySQL数据库。其中,host
参数是MySQL服务器的主机名或IP地址,user
参数是登录MySQL服务器的用户名,passwd
参数是登录MySQL服务器的密码,db
参数是要连接的数据库名。
4. 打开Excel文件
在Python中,可以使用openpyxl
库来读写Excel文件。请先安装好openpyxl
库。
from openpyxl import load_workbook
# 打开Excel文件
wb = load_workbook(filename=r'E:\重新开始\Python操作MySQL数据库\sheet1.xlsx')
sheet = wb.active
在上述代码中,我们使用load_workbook()
函数加载Excel文件,并使用active
属性获取活动工作表。
5. 获取表头
在插入数据之前,我们需要先获取Excel表格的表头信息。
# 获取表头
header = [cell.value for cell in sheet[1]]
在上述代码中,我们遍历第一行的单元格,获取每个单元格的值,作为表头。
6. 遍历Excel数据并插入数据库
接下来,我们遍历Excel文件中的每一行数据,并将其插入到MySQL数据库中。
# 遍历每一行数据,并将其插入到数据库中
cursor = mydb.cursor()
count = 0
for row in sheet.iter_rows(min_row=2, values_only=True):
sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})"
cursor.execute(sql, row)
count += 1
print(f"正在插入{count}条数据")
# 提交更改并关闭数据库连接
mydb.commit()
cursor.close()
mydb.close()
在上述代码中,我们使用iter_rows()
函数从第二行开始遍历每一行数据。在遍历过程中,我们构建了一个插入数据的SQL语句,使用占位符%s
,然后使用游标对象执行SQL语句,将行数据插入到MySQL数据库中。
最后,我们提交了对数据库的更改,并关闭了游标对象和与MySQL数据库的连接。
7. 完整代码
最终的Python代码如下:
from openpyxl import load_workbook # 导入load_workbook函数,用于加载Excel文件
import pymysql # 导入pymysql库,用于连接和操作MySQL数据库
# 连接到MySQL数据库
mydb = pymysql.connect(
host="localhost",
user="root",
passwd="123456",
db="test"
)
# 打开Excel文件
wb = load_workbook(filename=r'E:\重新开始\Python操作MySQL数据库\sheet1.xlsx') # 加载Excel文件
sheet = wb.active # 获取活动工作表
# 获取表头
header = [cell.value for cell in sheet[1]] # 获取第一行的单元格值,作为表头
# 遍历每一行数据,并将其插入到数据库中
cursor = mydb.cursor() # 创建游标对象,用于执行SQL语句
count = 0 # 计数器,用于记录插入的数据条数
for row in sheet.iter_rows(min_row=2, values_only=True): # 从第二行开始遍历每一行数据
sql = f"INSERT INTO yonghu ({', '.join(header)}) VALUES ({', '.join(['%s'] * len(header))})"
# 构建插入数据的SQL语句,使用占位符%s
cursor.execute(sql, row) # 执行SQL语句,将行数据插入到数据库中
count += 1 # 每插入一条数据,计数器加1
print(f"正在插入{count}条数据") # 输出插入的数据条数
# 提交更改并关闭数据库连接
mydb.commit() # 提交对数据库的更改
cursor.close() # 关闭游标对象
mydb.close() # 关闭与数据库的连接
8. 总结
本文介绍了如何使用Python连接MySQL数据库,并从Excel文件中读取数据,将其插入到MySQL数据库中。如果您有任何疑问或建议,请在评论区留言。