前言
SQLite 是一种嵌入式数据库管理系统,它是一个自包含、零配置的、服务器无关的数据库引擎。它的设计目标是提供一个轻量级的、高效的数据库解决方案,适用于嵌入式系统、移动设备和简单的应用程序。
Python 是一种高级编程语言,其强大的标准库使其成为许多开发人员的首选语言之一。Python 提供了与 SQLite 数据库进行交互的内置模块 sqlite3
,使开发人员能够使用 Python 在应用程序中轻松地操作 SQLite 数据库。
通过 sqlite3
模块,你可以在 Python 中创建、连接、查询和修改 SQLite 数据库。你可以执行 SQL 查询、插入、更新和删除数据,还可以管理数据库表和索引等。
一、环境准备
首先,需要准备以下工具:
- Python 3.x
- pandas 库
- SQLite 数据库
Python可以在官网中直接进行安装,跟安装软件一样方便;pandas 是 Python 中常用的数据处理库,而 SQLite 是一种轻型的数据库系统(Python自带不需要安装),安装Python环境后,安装pandas库:
pip install pandas
二、实现excel写入sqlite的方法
1、读取excel文件
使用pandas进行读取,详细可以查看这篇文章:基础Python教程之pandas使用总结-CSDN博客
import pandas as pd
import numpy as np
df = []
ws = pd.ExcelFile(file)
sheets = ws.sheet_names
print(sheets)
for sheet in sheets:
tem_df = pd.read_excel(file, sheet_name=sheet, dtype='str')
tem_df = tem_df.replace(np.nan, '')
if len(df) == 0:
df = tem_df
else:
df = pd.concat([df, tem_df])
print(df)
2、连接sqlite数据库
接下来,我们需要连接 SQLite 数据库。这可以通过 Python 语言的 sqlite3 模块来实现。
import sqlite3
conn = sqlite3.connect('data.db')
3、将 DataFrame 写入sqlite数据库
现在,我们需要将 DataFrame 中的数据写入到 SQLite 数据库中。在这里,我们可以使用 pandas 库中的 to_sql 函数来实现。
df.to_sql('data', conn, if_exists='replace', index=False)
以上代码中,我们使用 to_sql 函数将名为 data 的 DataFrame,写入到名为 data 的表中。其中,conn 参数是 SQLite 数据库连接对象,if_exists 参数是用于指定表已经存在时的行为,这里我们将其设为 replace,表示替换原有的表。index 参数是表示是否需要将 DataFrame 中的索引写入到数据库中。
三、实现读取sqlite写入excel的方法
1、连接sqlite3数据库
使用Python连接sqlite3数据库,只需要如下几行代码:
import sqlite3
#连接数据库
conn = sqlite3.connect('data.db')
#创建游标
cursor = conn.cursor()
#执行SQL语句
cursor.execute('SELECT * FROM data')
#获取查询结果
result = cursor.fetchall()
#关闭游标和连接
cursor.close()
conn.close()
首先使用sqlite3
库中的connect
方法连接数据库,传入数据库文件名作为参数。然后使用cursor
方法创建游标,通过游标执行SQL语句,最后通过fetchall
方法获取查询结果。最后需要手动关闭游标和连接,以释放相关资源。
2、读取sqlite3中表的列名
跟上面操作差不多,唯一就是sql语句发生了变化。
import sqlite3
#连接数据库
conn = sqlite3.connect('data.db')
#创建游标
cursor = conn.cursor()
#执行SQL语句
cursor.execute('PRAGMA table_info(data)')
#获取查询结果
columns = cursor.fetchall()
column_names = [c[1] for c in columns]
#关闭游标和连接
cursor.close()
conn.close()
3、写入excel文件
df = pd.DataFrame(result, columns=column_names)
# 输出excel
df.to_excel("data.xlsx", index=False)
其中的result和column_names为上面查询出来的值,通过df.to_excel输出数据到excel中。
完毕!!!