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数据库中。如果您有任何疑问或建议,请在评论区留言。

Python 利用pymysql和openpyxl操作MySQL数据库并插入Excel数据的更多相关文章

  1. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  2. python模块----pymysql模块 (连接MySQL数据库)

    pymysql模块是专门用来连接mysql数据库的模块,是非标准库模块,需要pip下载 下载 pip install pymysql 查询 import pymysql # 打开数据库连接 db = ...

  3. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...

  4. 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)

    前言   安装了mysq数据库,最终时为了实现在一个树莓派上实现多用户多进程操作的同步问题,避免数据并发出现一些错误,本篇安装了远程服务并且讲述了使用Qt进行悲观锁for update操作,命令行进行 ...

  5. pymysql连接和操作Mysql数据库

    pymysql 一.概要 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库, 二.PyMySQL 安装 pip install pymysql 三.操作流程 创建c ...

  6. mysql数据库表插入单条数据/批量插入数据

    1.创建表格 reate table trade( id int(4) not null primary key auto_increment, product varchar(30) null, p ...

  7. python3操作MySQL数据库

    安装PyMySQL 下载地址:https://pypi.python.org/pypi/PyMySQL 1.把操作Mysql数据库封装成类,数据库和表先建好 import pymysql.cursor ...

  8. golang利用beego框架orm操作mysql

    GO引入orm框架操作mysql 在beego框架中引入orm操作mysql需要进行的步骤: 第一步:导入orm框架依赖,导入mysql数据库的驱动依赖 import ( "github.c ...

  9. Java程序向MySql数据库中插入的中文数据变成了问号

    找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...

  10. 利用Python操作MySQL数据库

    前言 在工作中,我们需要经常对数据库进行操作,比如 Oracle.MySQL.SQL Sever 等,今天我们就学习如何利用Python来操作 MySQL 数据库. 本人环境:Python 3.7.0 ...

随机推荐

  1. sharding-jdbc分库连接数优化

    一.背景: 配运平台组的快递订单履约中心(cp-eofc)及物流平台履约中心(jdl-uep-ofc)系统都使用了ShardingSphere生态的sharding-jdbc作为分库分表中间件, 整个 ...

  2. 智能制造之路—从0开始打造一套轻量级MOM平台

    一.概述 面对数字化浪潮,MOM需求迈入上升期,数字化从"可选项"变成了企业竞争"必选项".制造行业每个工厂的生产逻辑都不尽相同,流程的梳理.数据统一化都需要调 ...

  3. windows内核情景分析-毛德操(第一章)

    微内核操作系统的特点内核尽量缩小 windows内核包括了两大部分 操作系统内核(ntoskrnl.exe),另一部分则是迁移到了内核中即系统空间中的视窗服务(win32k.sys) 用户空间和系统空 ...

  4. Blazor中如何呈现富文本/HTML

    将需要显示字符串转换成MarkupString类型 @((MarkupString)htmlString) 参考文献 https://stackoverflow.com/questions/60167 ...

  5. Linux 命令:gpasswd 管理用户组

    工作中经常需要将用户加入docker组,可执行如下操作: sudo gpasswd -a ec2-user docker newgrp # 不用加sudo gpasswd gpasswd -h Usa ...

  6. 构建易于运维的 AI 训练平台:存储选型与最佳实践

    伴随着公司业务的发展,数据量持续增长,存储平台面临新的挑战:大图片的高吞吐.超分辨率场景下数千万小文件的 IOPS 问题.运维复杂等问题.除了这些技术难题,我们基础团队的人员也比较紧张,负责存储层运维 ...

  7. [python]从环境变量和配置文件中获取配置参数

    前言 从环境变量和配置文件中获取配置参数,相关库: python-dotenv:第三方库,需要使用pip安装 configparser:标准库 示例代码 test.ini [mysql] host = ...

  8. 理解linux的CPU上下文切换

    前言 linux是一个多任务操作系统,它支持远大于CPU数量的任务同时运行.当然,这个同时运行不是真的同时运行,而是系统在很短的时间内轮流分配CPU资源,由于CPU的速度很快,所以给人一种同时运行的错 ...

  9. 【pandas小技巧】--数据转置

    所谓数据转置,就是是将原始数据表格沿着对角线翻折,使原来的行变成新的列,原来的列变成新的行,从而更方便地进行数据分析和处理. pandas中DataFrame的转置非常简单,每个DataFrame对象 ...

  10. mybatis-plus+nacos配置中心和服务发现保姆级教程

    默认你已经看了我的Mybatis-Plus+Mysql的教程,现在有了一个简单的项目如下(之前的教程:  https://www.cnblogs.com/leafstar/p/17638741.htm ...