使用 openpyxl PYTHON 3.5 对列中第一个空单元格进行更快的搜索方法

Faster search method on the first empty cell in a column using openpyxl PYTHON 3.5

我在搜索特定列中的第一个空单元格时遇到问题 在 40k 行的 .xlsx 文件上。随着搜索的深入,它变得越来越慢。是否有 faster/instant 搜索方法来搜索列上的第一个空单元格?

    wb = load_workbook(filename = dest_filename,read_only=True)
    sheet_ranges1 = wb[name]
    i = 1 
    x = 0
    sam = 0
    cc = 0
    brgyst =Street+Brgy
    entrylist = [TotalNoConfig,TotalNoChannel,Rsl,Mode,RslNo,Year,IssuedDate,Carrier,CaseNo,Site,brgyst,Municipality,Province,Region,Longitude1,Longitude2,Longitude3,Latitude1,Latitude2,Latitude3,ConvertedLong,ConvertedLat,License,Cos,NoS,CallSign,PTSVC,PTSVCCS,Tx,Rx] #The values to be inputted in the entire row after searching the last empty cell in column J
    listX1 = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N', 'O','P','Q','T','U','V','R','X','Y','Z','AA','AB','AM','AN','AP','FL'] #The columns in the file
    eter = 0      
    while(x != 1):
        cellS = 'J'+str(i) #until there is no empty cell
        if(sheet_ranges1[cellS].value is None): #if found empty cell, insert the values
            x=1
            book = load_workbook(filename = dest_filename)
            sheet = book[name]
            rangeof = int(len(entrylist))
            while(cc<rangeof):
                cells = listX1[cc]+str(i)
                sheet[cells]= entrylist[cc]    
                cc=cc+1                               
        else:
            x=0
        sam = sam+1   
        i=i+1
    wb.save(dest_filename)
    wb.close()

在只读模式下,每个单元格查找都会导致工作表再次解析,因此您应该始终使用 ws.iter_rows() 进行工作。