如何使用Python将SQLite数据表导出并展示到Excel文件中
Python 导出SQLite数据表到Excel文件
方法一:使用Pandas(推荐,简洁高效)
Pandas能快速完成数据库查询到Excel导出的流程,搭配内置的sqlite3和Excel处理库openpyxl即可实现。
步骤:
- 安装依赖库(如果未安装):
pip install pandas openpyxl
- 完整代码示例:
import sqlite3 import pandas as pd # 1. 连接SQLite数据库 conn = sqlite3.connect('your_database.db') # 替换为你的数据库路径 # 2. 查询数据表内容 # 替换为你要导出的表名,比如 'users' query = "SELECT * FROM your_table_name;" df = pd.read_sql_query(query, conn) # 3. 将数据写入Excel文件 # index=False 表示不写入DataFrame的索引列 df.to_excel('output.xlsx', sheet_name='Sheet1', index=False, engine='openpyxl') # 4. 关闭数据库连接 conn.close() print("数据已成功导出到output.xlsx")
代码解释:
sqlite3.connect():建立与SQLite数据库的连接,传入数据库文件路径(如果是内存数据库用:memory:)。pd.read_sql_query():直接执行SQL查询并将结果转换为Pandas DataFrame,省去手动处理游标和结果集的麻烦。df.to_excel():将DataFrame写入Excel文件,sheet_name指定工作表名称,engine='openpyxl'支持.xlsx格式(如果导出.xls可以用xlwt,但xlwt仅支持旧格式)。
方法二:使用sqlite3 + openpyxl(手动控制,适合定制需求)
如果需要更精细地控制Excel格式(比如设置单元格样式、合并单元格等),可以直接用openpyxl手动构建工作表。
代码示例:
import sqlite3 from openpyxl import Workbook # 1. 连接数据库并查询数据 conn = sqlite3.connect('your_database.db') cursor = conn.cursor() cursor.execute("SELECT * FROM your_table_name;") # 获取表头和数据 columns = [desc[0] for desc in cursor.description] data = cursor.fetchall() # 2. 创建Excel工作簿和工作表 wb = Workbook() ws = wb.active ws.title = 'Sheet1' # 写入表头 ws.append(columns) # 写入数据行 for row in data: ws.append(row) # 3. 保存Excel文件 wb.save('output_manual.xlsx') # 4. 关闭连接 cursor.close() conn.close() print("数据已成功导出到output_manual.xlsx")
代码解释:
cursor.description:获取查询结果的列名,用于生成Excel表头。cursor.fetchall():获取所有查询结果行。ws.append():向工作表逐行添加数据,表头和数据行都可以用这个方法。
注意事项
- 替换代码中的
your_database.db为实际的SQLite数据库文件路径,your_table_name为要导出的数据表名称。 - 如果数据库中有特殊数据类型(如二进制数据),可能需要额外处理后再写入Excel,避免导出异常。
- 操作完成后务必关闭数据库连接,防止资源泄漏。
内容的提问来源于stack exchange,提问作者Yogendran Prakash
相关产品推荐
相关产品推荐

