下面是如何使用Python将SQLite数据库导出成Excel(xls)表的实例教程:
1. 准备工作
在开始之前,我们需要先检查计算机内是否已经安装以下依赖项:
- Python 3
- pandas
- sqlite3
- xlwt
如果没有安装以上依赖项,可以通过pip来安装:
pip install pandas
pip install xlwt
2. 导出SQLite数据库
首先,我们需要连接到SQLite数据库并选择要导出的表格。在本例中,我们选择sample.db数据库中的users表。
import sqlite3
import pandas as pd
# 连接到SQLite数据库
con = sqlite3.connect('sample.db')
# 选择要导出的表格
query = "SELECT * from users"
# 将数据导入到pandas DataFrame中
df = pd.read_sql_query(query, con)
# 关闭连接
con.close()
3. 将数据保存为Excel表格
现在,我们已经成功地将数据导入到DataFrame中了。下一步,我们需要使用xlwt库将数据保存为Excel表格。
import xlwt
# 创建Excel工作簿
book = xlwt.Workbook(encoding="utf-8")
# 添加一个Worksheet
sheet1 = book.add_sheet("Sheet 1")
# 获取DataFrame的列标题
columns = df.columns
# 将列标题写入Excel中
for i, col in enumerate(columns):
sheet1.write(0, i, col)
# 将DataFrame的每行数据写入Excel中
for i, row in df.iterrows():
for j, col in enumerate(columns):
sheet1.write(i+1, j, str(row[col]))
# 将Excel表格保存到磁盘中
book.save("users.xls")
现在,我们已经成功地将SQLite数据库中的数据导出成了Excel表格(users.xls)。
示例说明
示例1
假设我们要导出一个名为employees的SQLite数据库中的salary表,该表中包含了每个员工的薪资数据。我们可以按照以下步骤进行:
- 连接到SQLite数据库并选择要导出的表。
“`python
import sqlite3
import pandas as pd
# 连接到SQLite数据库
con = sqlite3.connect(’employees.db’)
# 选择要导出的表格
query = “SELECT * from salary”
# 将数据导入到pandas DataFrame中
df = pd.read_sql_query(query, con)
# 关闭连接
con.close()
“`
- 将数据保存为Excel表格。
“`python
import xlwt
# 创建Excel工作簿
book = xlwt.Workbook(encoding=”utf-8″)
# 添加一个Worksheet
sheet1 = book.add_sheet(“Sheet 1”)
# 获取DataFrame的列标题
columns = df.columns
# 将列标题写入Excel中
for i, col in enumerate(columns):
sheet1.write(0, i, col)
# 将DataFrame的每行数据写入Excel中
for i, row in df.iterrows():
for j, col in enumerate(columns):
sheet1.write(i+1, j, str(row[col]))
# 将Excel表格保存到磁盘中
book.save(“salary.xls”)
“`
这样就可以将SQLite数据库中的salary表格导出为Excel表格了。
示例2
假设我们要从一个名为customers的SQLite数据库中导出两个表格:orders和products。我们可以按照以下步骤进行:
- 连接到SQLite数据库并选择要导出的表格。
“`python
import sqlite3
import pandas as pd
# 连接到SQLite数据库
con = sqlite3.connect(‘customers.db’)
# 选择要导出的表格
query1 = “SELECT * from orders”
query2 = “SELECT * from products”
# 将数据导入到pandas DataFrame中
df1 = pd.read_sql_query(query1, con)
df2 = pd.read_sql_query(query2, con)
# 关闭连接
con.close()
“`
- 将数据保存为Excel表格。
“`python
import xlwt
# 创建Excel工作簿
book = xlwt.Workbook(encoding=”utf-8″)
# 添加第一个Worksheet
sheet1 = book.add_sheet(“Sheet 1”)
# 获取第一个DataFrame的列标题
columns1 = df1.columns
# 将第一个DataFrame的列标题写入Excel中
for i, col in enumerate(columns1):
sheet1.write(0, i, col)
# 将第一个DataFrame的每行数据写入Excel中
for i, row in df1.iterrows():
for j, col in enumerate(columns1):
sheet1.write(i+1, j, str(row[col]))
# 添加第二个Worksheet
sheet2 = book.add_sheet(“Sheet 2”)
# 获取第二个DataFrame的列标题
columns2 = df2.columns
# 将第二个DataFrame的列标题写入Excel中
for i, col in enumerate(columns2):
sheet2.write(0, i, col)
# 将第二个DataFrame的每行数据写入Excel中
for i, row in df2.iterrows():
for j, col in enumerate(columns2):
sheet2.write(i+1, j, str(row[col]))
# 将Excel表格保存到磁盘中
book.save(“orders_and_products.xls”)
“`
这样就可以将SQLite数据库中的orders和products表格导出为Excel表格了。