【每天一课】读mysql表后写入Excel文件(xlsx)的通用python实现

【每天一课】读mysql表后写入Excel文件(xlsx)的通用python实现

技术教程gslnedu2025-02-26 10:53:3713A+A-

背景介绍:

日常工作中会有相当大的几率处理一些服务单,内容基本是查询某一张或者某几张数据表,并且表都不大,不超过10W行数据,这种情况下是可以通过python脚本完全自动化的,只需要run一下即可,省去了繁琐的重复劳动。

一、python依赖包的离线安装包准备

本次需要使用两个python包:mysql-connector-python、openpyxl

找一个能访问互联网的电脑,通过www.python.org安装最新版本的python(3.0以上版本即可), 然后点击左下角windows按钮,输入cmd进入控制台,执行下面命令:

pip install mysql-connector-python openpyxl

系统中完成两个python包以及依赖包的安装,如下图所示:


一般工作环境不能访问互联网,所以这里介绍了离线安装包的制作和使用方法,如果您的环境能直接访问互联网,则无需制作离线安装包。可以略过第一部分下面内容以及第二部分。

如果没有安装wheel需要先安装一下,命令如下:

pip install wheel

接下来制作离线安装包,如下图所示,划出来的是本地目录名称,一个离线包建一个目录,

pip wheel --wheel-dir=mysql-connector-python mysql-connector-python

pip wheel --wheel-dir=openpyxl openpyxl

运行完以后得到两个目录mysql-connector-python和openpyxl, 打包后传到目标环境,准备安装

二、python离线包的安装

确保目标环境安装了python3, 并且将第一部分的离线包传到本地目录,执行下面命令:

C:\Users\qiuzeming>pip install --no-index openpyxl --find-links="离线包目录"

C:\Users\qiuzeming>pip install --no-index mysql-connector-python --find-links="离线包目录"

三、脚本编写

代码如下, 也很简单,修改一下数据库连接信息、表名、文件名,修改完贴到记事本保存为后缀为.py的文件,比如test.py。

脚本实测可用,并且第一行为列名。

import mysql.connector as mariadb
from openpyxl import Workbook # python的openpyxl库用于处理xlsx格式
from openpyxl.utils import get_column_letter
# 数据库配置信息
config = {
'user': '待补充', # 数据库用户名
'password': '待补充', # 数据库密码
'host': '待补充', # 数据库所在服务器的IP地址或域名
'port': 待补充, # 端口号,这里使用了MySQL默认的3306端口
'database': '待补充', # 要连接到的数据库名称
}

# Step1: 安装必要的包
# 确保已经通过 pip install mysql-connector-python、pip install openpyxl 进行了相关包的安装
# Step2: 建立与 MySQL 数据库的连接
cnx = mariadb.connect(**config)
cursor = cnx.cursor()
# Step3: 获取需要导出的数据和表头(列名)
query = "SELECT * FROM 表名"
cursor.execute(query)
column_names = [desc[0] for desc in cursor.description] # Get column names
data = cursor.fetchall()
# Step4: 创建一个新的 Excel 工作簿并写入数据及表头
workbook = Workbook()
sheet = workbook.active
for col, column_name in enumerate(column_names): # Write header / column names
sheet[get_column_letter(col+1) + '1'] = column_name
for row, record in enumerate(data): # Write data to Excel file
for col, value in enumerate(record):
sheet[get_column_letter(col+1) + str(row+2)] = value
workbook.save('文件名.xlsx') # Save the workbook as 'output.xlsx'
# 关闭数据库连接
cursor.close()
cnx.close()


四、脚本运行

输入cmd进入命令行,运行python test.py即可看到生成: 文件名.xlsx , 可以打开后验证结果

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8