使用Python将Excel表格写入SQLite数据库

文章讲述了如何通过Python的xlrd库读取Excel文件,然后将数据写入SQLite单文件数据库,避免了复杂库带来的转移成本。作者还提到使用SQLiteStudio进行数据库管理和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在工作中,为了方便检索分析,将合同信息保存在了SQLite数据库中,因为SQLite是单文件数据库,相对来说方便转移和备份,不需要安装平台软件。

然后针对每一份合同设计了一张Excel表格作为录入表单,也可以认为就是一个入库单,一个表记录了一个合同的信息。

通过Python的xlrd库读取Excel表格,再通过sqlite3库写入数据库。为什么用xlrd这么原始的库呢?也试过openpyxl和xlwings,越是功能完善,依赖的上游库越多,比如我用xlwings就遇到了依赖pywin32库,无法解决。影响的是py脚本的转移成本。

接下来写实现:

一、Excel 示例表 (文件名:Test.xlsx 工作表名:ReadExcel)

序号名称数值
115
216
317

二、sqlite3数据库(数据库文件名:Test.db 表名:ReadExcel)

推荐使用SQLiteStudio工具提前创建好对应格式的数据库和数据表,图形化的方式相对来说比较简单。

三、python代码(代码py文件和数据库和Excel文件放在同一个目录下)

因为涉及到中文,所以在代码开头要声明使用utf-8编码

#-*- coding:utf-8-*-

import xlrd
import sqlite3
#使用xlrd库来只读打开Test.xlsx文件,打开ReadExcel工作表
wb=xlrd.open_workbook('Test.xlsx')
ws=wb.sheet_by_name('ReadExcel')
#使用sqlite3库打开Test.db数据库,cur是数据库游标,相当于一个操作点(机械臂)
conn=sqlite3.connect('Test.db')
cur=conn.cursor()
#python中的计数是从0开始的,对Excel单元格的计数也是从0开始的,要对应调整好
for i in range(3):
    序号=ws.cell_value(i+1,0)
    名称=ws.cell_value(i+1,1)
    数值=ws.cell_value(i+1,2)
#读取一行单元格信息,一并写入数据库,等到写完了再一起提交
    cur.execute("INSERT INTO ReadExcel (序号,名称,数值) values(?,?,?)",(序号,名称,数值))
#提交对数据库的操作
conn.commit()
#最后别忘了关数据库,如果忘了关闭数据库,会出现数据库文件一直在被锁定状态,无法修改删除等。
conn.close()

导入数据库完成后,可以用SQLiteStudio工具查看一下数据库表的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RockyCoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值