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. Docker、CICD持续集成部署、Gitlab使用、Jenkins介绍

    目录 1.Docker的基本操作 1.1镜像拉取 1.2镜像的操作 1.3容器的操作 运行容器 查看正在运行的容器 查看容器运行日志 进入到容器内部 停止容器运行 删除容器 启动容器 2.Docker ...

  2. 处理.git文件夹过大出现臃肿问题-filter-branch和BFG工具

    Git开发手册 git一些不常用的命令记不住,可以查看git开发手册(https://m.php.cn/manual/view/34957.html) 1..git/objects/pack 文件过大 ...

  3. 10/29/2017_C语言_三道题

    1. 用标准C编程:找出整形数字1-100之间的素数,并打印出来.(素数:除了1和自己本身可以被整除.) 2. 用标准C编程:有两个整形变量m.n,求出这两个数的最小公倍数. 3. 用标准C编程:输出 ...

  4. modulemap的使用方法

    modulemap的作用   modulemap 文件是用来解决 C,Object-C,C++ 代码在 Swift 项目中集成的问题的. 在 Swift 项目中,如果需要使用 C,Object-C 或 ...

  5. 写一段python下载商品图片的代码

    以下是一个简单的Python代码示例,用于下载商品图片: import requests import os def download_image(url, save_path): response ...

  6. Docker本地搭建个人企业私有云盘seafile搭建(完美解决ONLYOFFICE无法预览的情况)

    seafile搭建 #创建存放路径 mkdir -p /media/megrez/data/seafile/seafile-mysql/db mkdir -p /media/megrez/data/s ...

  7. 修复mbr分区

    修复mbr分区 实验条件 1.备份mbr引导扇区到其他磁盘 2.模拟破坏mbr引导扇区 3.引导镜像急救模式进行mbr扇区恢复 实验 1,添加一块新的磁盘 2,分区,查看分区情况 3,格式化,并挂载 ...

  8. 手写promise之分步解析

    promise是es6推出适用于异步请求的构造函数,帮助解决回调地狱的问题,以下内容将自定义实现promise,只包括基本使用,所以一些边界情况考虑没有在内. 如果对promise用法还不熟悉的朋友可 ...

  9. RedHat8静默安装was

    前言 was(websphere application server),类似weblogic.tomcat,由IBM开发的一种企业级Java容器. 系统版本:redhat 8.2 was版本:was ...

  10. [golang]使用gocron编写定时任务

    前言 linux自带的crontab默认情况下只能精确到分钟,没法执行秒级任务.当然,也不是不行,比如: * * * * * for i in $(seq 1 11);do echo hello &g ...