下面给你详细讲解Python获取数据库数据并保存在excel表格中的方法的完整实例教程。
1. 环境准备
首先,我们需要保证环境中已经安装好了Python和相关数据库的驱动包。
以MySQL为例,我们需要安装MySQL-Python或者PyMySQL这两个库。你可以在命令行中通过以下命令进行安装:
pip install MySQL-python
pip install PyMySQL
然后,我们还需要安装openpyxl库,它是Python操作Excel表格的一个常用库。
pip install openpyxl
2. 获取数据库数据并保存到Excel
下面进入正题,我们将演示如何通过Python连接数据库,获取数据,并将数据保存到Excel表格中。
首先,我们需要导入需要的库:
import pymysql
import openpyxl
接着,我们需要和数据库建立连接,获取数据库中的数据。这里以MySQL为例:
# 连接数据库
conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
db='test_db',
charset='utf8')
# 获取游标
cur = conn.cursor()
# 查询数据
sql = "SELECT * FROM my_table"
cur.execute(sql)
# 获取查询结果
results = cur.fetchall()
# 关闭连接
cur.close()
conn.close()
上面的代码中,我们首先使用pymysql
库连接了MySQL数据库,指定了主机名、用户名、密码、数据库名称和字符集。然后,使用conn.cursor()
方法获取数据库操作的游标对象,使用游标对象执行查询语句sql
,并使用cur.fetchall()
方法获取所有结果集。
接下来,我们需要将数据保存到Excel表格中。我们可以使用openpyxl库操作Excel文件,方便灵活。
# 创建Excel文件和工作表
wb = openpyxl.Workbook()
ws = wb.active
# 写入表头
ws.cell(row=1, column=1, value='id')
ws.cell(row=1, column=2, value='name')
ws.cell(row=1, column=3, value='age')
# 写入数据
for i, row in enumerate(results):
ws.cell(row=i+2, column=1, value=row[0])
ws.cell(row=i+2, column=2, value=row[1])
ws.cell(row=i+2, column=3, value=row[2])
# 保存文件
wb.save('data.xlsx')
上面的代码中,我们首先使用openpyxl创建Excel工作簿和工作表,然后写入表头和查询结果。最后使用wb.save()
方法保存Excel文件到本地磁盘。
3. 完整示例
完整示例代码如下:
import pymysql
import openpyxl
# 连接数据库
conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
db='test_db',
charset='utf8')
# 获取游标
cur = conn.cursor()
# 查询数据
sql = "SELECT * FROM my_table"
cur.execute(sql)
# 获取查询结果
results = cur.fetchall()
# 关闭连接
cur.close()
conn.close()
# 创建Excel文件和工作表
wb = openpyxl.Workbook()
ws = wb.active
# 写入表头
ws.cell(row=1, column=1, value='id')
ws.cell(row=1, column=2, value='name')
ws.cell(row=1, column=3, value='age')
# 写入数据
for i, row in enumerate(results):
ws.cell(row=i+2, column=1, value=row[0])
ws.cell(row=i+2, column=2, value=row[1])
ws.cell(row=i+2, column=3, value=row[2])
# 保存文件
wb.save('data.xlsx')
4. 示例说明
在上述示例中,我们以查询MySQL数据库中my_table表中的数据为例,使用Python连接MySQL数据库,并将查询结果保存到Excel表格中。你可以根据示例代码修改连接的数据库类型、地址、用户名、密码等信息,获取数据并保存到Excel表格中。
另外,你还可以根据需要修改Excel表格的名称、表头和数据写入的列数和行数等信息,实现更灵活的操作。