利用excel批量操作MySql数据库

文章目录

  • 前言
  • 一、使用步骤
    • 1.引入库
    • 2.pycharm配置MySql数据库
    • 3.在excel中准备待修改的数据
    • 4.批量操作的sql语句
  • 总结


前言

把待修改的数据存放在excel表格中,利用Python openpyxl模块对excel表格中的数据进行操作,批量修改MySql数据库中的数据,提高工作效率。


一、使用步骤

1.引入库

openpyxl最好用的python操作excel表格库,不接受反驳;openpyxl官网只支持【.xlsx / .xlsm / .xltx / .xltm】格式的文件;安装命令如下:

pip install openpyxl -i https://pypi.douban.com/simple

使用豆瓣源安装,下载速度非常快,强烈推荐使用。

2.pycharm配置MySql数据库

import pymysql
#连接数据库
conn = pymysql.Connection(
    host='xxx', # 数据库服务器主机地址
    port=3306,        # 端口号 可选 整型
    user='xxx',      # 用户名
    password='xxx', # 密码
    database='bjpowernode',  # 数据库名称,以已经创建的数据库为例
    charset='utf8',   # 编码 可选
)

conn.begin()
cs = conn.cursor()
# sql语句
sql = """xxxxxx"""
try:
    cursor = cs.execute(sql)
    conn.commit()
except Exception as e:
    print(e)
    conn.rollback()
cs.close()
conn.close()

3.在excel中准备待修改的数据

数据库bjpowernode中t_sale表的数据结构如下:
利用excel批量操作MySql数据库_第1张图片
本例以删除grid为1002,1003,1004的数据。
在exce中创建待删除grid的编号:
利用excel批量操作MySql数据库_第2张图片

4.批量操作的sql语句

import pymysql
import os
import openpyxl


path = r"C:\Users\Administrator\Desktop\data"
os.chdir(path)  # 修改工作路径

#连接数据库
conn = pymysql.Connection(
    host='xxx', # 数据库服务器主机地址
    port=3306,        # 端口号 可选 整型
    user='xxx',      # 用户名
    password='xxx', # 密码
    database='bjpowernode',  # 数据库名称
    charset='utf8',   # 编码 可选
)

conn.begin()
cs = conn.cursor()

# 打开待删除数据的exce表单
workbookdelete = openpyxl.load_workbook('待删除数据.xlsx') # 返回一个workbook数据类型的值
sheetdelete = workbookdelete['Sheet1']
celldelete = sheetdelete['A']#待删除的列及grid的编号

# sql语句
for i in celldelete:
    try:
        gridcode = i.value
        sql = """delete from t_sale WHERE gid = '%s'"""%(gridcode)
        cursor = cs.execute(sql)
        conn.commit()
        print(gridcode)
    except Exception as e:
        print(e)
        conn.rollback()
cs.close()
conn.close()

效果如下:
利用excel批量操作MySql数据库_第3张图片
大功告成,可以看出grid为1002,1003,1004的数据已经批量删除了。

总结

利用Python openpyxl批量处理excel中待修改的海量数据时,该方法的优势很明显;新手在工作中摸索的方法经验,不足之处,望各路大神批评、指正!

你可能感兴趣的:(日常办公,数据库,excel,mysql)