'''自主创建一个Excel文档(默认为Cust.xlsx),利用SQLite模块和xlrd模块完成以下任务
(1)设计程序把Excel文档中的数据导入到SQLite数据库Custcsv.db的Cust表中
(2)把Custcsv.db中Cust表中的数据写入文本文件Cust.txt'''
import xlrd
import sqlite3
xlsx
=xlrd
.open_workbook
('Cust.xlsx')
table
=xlsx
.sheets
()[0]
cn
=sqlite3
.connect
('Custcsv.db')
cur
=cn
.cursor
()
sqls
='create table if not exists Custcsv(StuNo text(10),Name text(5),Gender text(3),Phone text(10),WeChat text(10),Score text(10))'
cur
.execute
(sqls
)
sql
='insert into Custcsv values(?,?,?,?,?,?)'
dataList
=[]
data
=()
for rn
in range(table
.nrows
):
for c
in range(table
.ncols
):
cell
=table
.cell
(rn
,c
)
dataList
.append
(cell
.value
)
print(dataList
)
cur
.execute
(sql
,tuple(dataList
))
dataList
=[]
cn
.commit
()
cur
.close
()
cn
.close
()
cn
=sqlite3
.connect
('Custcsv.db')
cur
=cn
.cursor
()
txtf
=open('Cust.txt','w')
sql
='select * from Custcsv'
cur
.execute
(sql
)
alldata
=cur
.fetchall
()
for data
in alldata
:
print(data
,file=txtf
)
txtf
.close
()
cur
.close
()
cn
.close
()
#此处需注意,从Excel直接按行导出的数据,有浮点型数据,有文本型数据,有类型描述 #最好使用单元格直接取值(如cell.value) 直接按行导出数据的部分截图,数据前方有类型,number、text等,如果字段有输入宽度限制的话,会导致error,最好按单元格直接取值处理!
转载请注明原文地址:https://blackberry.8miu.com/read-3695.html