将excel数据导入sqlite3

我的梦境 提交于 2019-12-01 07:11:57
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()
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!