第7章 库表与管理——笔记十三

    科技2022-07-12  159

    #第7章 库表与管理 #实验7.3 xlrd访问Excel实验 '''自主创建一个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=() #此处需注意,从Excel直接按行导出的数据,有浮点型数据,有文本型数据,有类型描述 #最好使用单元格直接取值(如cell.value) 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,最好按单元格直接取值处理!

    Processed: 0.015, SQL: 8