Python:批量从excel文件导入数据到SQLite
程序员文章站
2022-06-11 10:44:12
...
尽管SQLite应用广泛,但是网上可参考资料却不太多,现有的菜鸟教程(www.runoob.com)、SQLite官网和Python的SQLite子站信息略嫌粗糙而且比较基础,故此分享一些跳出坑的经验供大家参考。
以下代码基于Python 3.7.1
使用了openpyxl模块、sqlite3模块,应用了迭代器来逐行读取excel数据,可以较好地控制内存开销(对较大的excel文件才有实际价值)。
import sqlite3
import openpyxl
lists=sqlite3.connect('onlyu.db')
c=lists.cursor()
listinsheet=openpyxl.load_workbook(r'C:\Users\VC\OneDrive\python2019\database\edit_42479_2019-01-14T152133.xlsx')
datainlist=listinsheet.active
lawnum=datainlist.max_row-1 #总行数减1去掉了表头占据的一行即为中数据总行数
data_truck='''INSERT INTO mylist(list_id,list_node_id,doc_signature,doc_title,doc_category,doc_definition,doc_heading,doc_index,doc_col1,doc_col2,doc_col3,doc_col4,doc_col5,
doc_col6,doc_col7,doc_col8,doc_code) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'''
for row in datainlist.iter_rows(min_row=2,max_col=17,max_row=datainlist.max_row):
#使excel各行数据成为迭代器
cargo=[cell.value for cell in row] #使每行中单元格成为迭代器
c.execute(data_truck,cargo) #写入一行数据到数据库中表mylist
lists.commit()
lists.close()
上一篇: 十天学会php之第五天_PHP
下一篇: 去除文件BOM头工具