Python实现将sqlite数据库导出转成Excel(xls)表的方法

  • Post category:Python

下面是如何使用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表,该表中包含了每个员工的薪资数据。我们可以按照以下步骤进行:

  1. 连接到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()
“`

  1. 将数据保存为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。我们可以按照以下步骤进行:

  1. 连接到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()
“`

  1. 将数据保存为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表格了。