写一个Python文件实现将查询到的MYSQL的数据导出成excle格式,导出规则:
1、以单个文件最大60万条数据数据,超过60万部分再次生成新的文件,知道数据导出完成
2、每个导出文件包含表头字段信息
以下是 Python 代码实现要求的功能:
首先,需要安装OpenPyXL和pymysql两个库。
可以使用以下命令进行安装:
pip install openpyxl
pip install pymysql
然后,可以按照以下代码实现数据导出。
import pymysql
from openpyxl import Workbook
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='123456', database='database_name')
# 设置导出文件的最大行数
max_row = 600000
# 查询数据
cursor = conn.cursor()
cursor.execute('select * from table_name')
results = cursor.fetchall()
# 获取查询结果的字段名
fields = cursor.description
field_names = [i[0] for i in fields]
# 计算查询结果的总行数
num_row = len(results)
# 计算需要生成的文件数量
num_file = num_row // max_row + 1 if num_row % max_row != 0 else num_row // max_row
# 分批导出数据
for i in range(num_file):
# 创建工作簿
wb = Workbook()
# 新建工作表
ws = wb.active
# 设置表头
for j in range(len(field_names)):
ws.cell(row=1, column=j+1).value = field_names[j]
# 设置数据
start_row = i * max_row
end_row = (i+1) * max_row if (i+1) * max_row < num_row else num_row
for row in range(start_row, end_row):
for column in range(len(fields)):
ws.cell(row=row-start_row+2, column=column+1).value = results[row][column]
# 保存文件
wb.save('file_{}.xlsx'.format(i))
# 关闭游标和数据库连接
cursor.close()
conn.close()
需根据实际的数据库表名和数据库名进行修改。
