def openWorkbook(filename):
dbPath = settings.BASE_DIR+"/db.sqlite3"
print(dbPath)
con = sqlite3.connect(dbPath)
cur = con.cursor()
#读取excel表的数据
workbook = xlrd.open_workbook(filename)
#选取需要读取数据的那一页
sheet = workbook.sheet_by_index(0)
#获得行数和列数
rows =sheet.nrows
cols =sheet.ncols
dataList = []
for i in range(0,rows):
dataValue = []
for j in range(0,cols):
if sheet.cell(i,j).value == "":
dataValue.append("")
else:
dataValue.append(sheet.cell(i,j).value)
dataList.append(dataValue)
if len(dataList) >= 10000:
for data in dataList:
try:
cur.execute("insert into food_maps_data(IntervieweeIDString,name,mealDay,IsWeekend,seqnum,mealtime,foodname,mealplace,foodcategory,foodingredient,amount,amountUnit,type,provinces,age_ragnge,age,urban_rural,gender,income,vocation,education,mealatwork_breakfast,mealAtwork_Lunch,mealAtwork_dinner,mealOut_breakfast,mealOut_lunch,mealOut_dinner,meituan,other_family_meals,partners,partner_name,marital) values('{}','{}',{},{},{},{},'{}',{},'{}','{}',{},'{}','{}','{}',{},{},'{}','{}','{}','{}','{}',{},{},{},{},{},{},{},{},{},'{}','{}');".format(data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8],data[9],data[10],data[11],data[12],data[13],data[14],data[15],data[16],data[17],data[18],data[19],data[20],data[21],data[22],data[23],data[24],data[25],data[26],data[27],data[28],data[29],data[30],data[31]))
except sqlite3.Error as e:
with open('ExcelerrorLog.txt','w',encoding='utf-8') as fp:
fp.write(e.args[0])
con.commit()
dataValue = []
for data in dataList:
try:
cur.execute("insert into food_maps_data(IntervieweeIDString,name,mealDay,IsWeekend,seqnum,mealtime,foodname,mealplace,foodcategory,foodingredient,amount,amountUnit,type,provinces,age_ragnge,age,urban_rural,gender,income,vocation,education,mealatwork_breakfast,mealAtwork_Lunch,mealAtwork_dinner,mealOut_breakfast,mealOut_lunch,mealOut_dinner,meituan,other_family_meals,partners,partner_name,marital) values('{}','{}',{},{},{},{},'{}',{},'{}','{}',{},'{}','{}','{}',{},{},'{}','{}','{}','{}','{}',{},{},{},{},{},{},{},{},{},'{}','{}');".format(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], data[9], data[10],data[11], data[12], data[13], data[14], data[15], data[16], data[17], data[18], data[19], data[20],data[21], data[22], data[23], data[24], data[25], data[26], data[27], data[28], data[29], data[30],data[31]))
except sqlite3.Error as e:
with open('{}/{}-ExcelerrorLog.txt'.format(settings.MEDIA_ROOT,datetime.date.today()),'a') as fp:
fp.write(e.args[0]+'\n')
con.commit()
cur.close()
con.close()
来源:CSDN
作者:Whynotre
链接:https://blog.csdn.net/Whynotre/article/details/89175694