下面为大家详细讲解 Python3 实现 MySQL 导出 Excel 的方法。
环境准备
- Python3 环境 (建议使用 Python3.6 及以上版本);
- 第三方库 pymysql、xlwt、xlsxwriter、xlrd(可在命令行通过 pip 工具进行安装);
- MySQL 数据库。(可通过 官网 下载安装)
导出 Excel 实现
- 连接 MySQL
首先,导出数据需要连接到 MySQL 数据库,并获取需要导出的表格。下面是连接数据库的示例代码:
import pymysql
def conn_db():
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='12345678',
db='test_db',
charset='utf8'
)
return conn
- 查询数据
连接的 conn
对象需要通过 cursor()
获取用于查询的游标。然后在游标上执行 SQL 查询操作。
def get_data(query_sql):
conn = conn_db()
cur = conn.cursor()
cur.execute(query_sql)
result = cur.fetchall() # 获取所有数据
cur.close()
conn.close()
return result
- 写入 Excel
获取数据之后,需要将数据导出到 Excel。代码中需要导入 xlwt
、xlsxwriter
和 xlrd
库的相关模块。
import xlwt
from xlsxwriter.workbook import Workbook
import xlrd
def write_to_excel_xls(data, filename):
workbook = xlwt.Workbook(encoding='utf-8')
sheet = workbook.add_sheet('Sheet1')
row_num = len(data)
for i in range(row_num):
row = data[i]
for j in range(len(row)):
sheet.write(i, j, row[j])
workbook.save(filename)
def write_to_excel_xlsx(data, filename):
workbook = Workbook(filename)
worksheet = workbook.add_worksheet()
row_num = len(data)
for i in range(row_num):
row = data[i]
for j in range(len(row)):
worksheet.write(i, j, row[j])
workbook.close()
- 完整示例
下面是一个完整示例:将 MySQL 数据库中的数据导出到 Excel文件中。
query_sql = "SELECT * FROM students;"
result = get_data(query_sql)
filename = "students.xlsx"
写入 excel 文件
write_to_excel_xlsx(result, filename)
写入成功后,程序将在当前目录下生成一个名称为 students.xlsx
的文件,包含从 students
表中获取的数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3实现mysql导出excel的方法 - Python技术站