Если в листе Excel определенное значение не найдено, добавьте ноль к использованию openpyxl

#python #openpyxl

Вопрос:

 files = glob.glob (r'C:testPhase 1A*.xlsm')
for file in files:
    print(file)

    wb = openpyxl.load_workbook(filename=file,data_only=True)
    ws = wb.active
    for row in ws.iter_rows():
        for cell in row:
            if cell.value == "Vessel Volume":#search for Volume
                idxr=cell.row #where idxr is the index of the row
                idxc=cell.column #where idxc is the index of the column
                a=ws.cell(idxr,idxc 1).value
            elif cell.value == "Phase":#search for Phase
                idxr=cell.row
                idxc=cell.column
                b=ws.cell(idxr,idxc 1).value    
            elif cell.value == "Test#":#search for Test#
                idxr=cell.row
                idxc=cell.column
                c=ws.cell(idxr,idxc 1).value    
            elif cell.value == "Concentration":#search for Concentration
                idxr=cell.row
                idxc=cell.column
                d=ws.cell(idxr,idxc 1).value
            elif cell.value == "Time Delay":#search for Time Delay
                idxr=cell.row
                idxc=cell.column
                e=ws.cell(idxr,idxc 1).value
            elif cell.value == "PstatnEffective":#search for Pred by locating Pstat Effective
                idxr=cell.row
                idxc=cell.column
                f=ws.cell(idxr 1,idxc 4).value
            elif cell.value == "NON Existent":
                idxr=cell.row
                idxc=cell.column
                g=ws.cell(idxr,idxc).value
                g1.append(g)
    a1.append(a)
    b1.append(b)
    c1.append(c)
    d1.append(d)
    e1.append(e)
    f1.append(f)
 

Здравствуйте, я новичок в python и openpyxl.

Я хотел бы создать массивы одинакового размера(или списки) a1,b1,c1,d1,e1,f1 и g1.В своем коде я ищу определенные выражения в ячейках списка файлов Excel и добавляю их в массивы.

У меня проблема только с переменной g. Строка «НЕ существует» существует только для некоторых файлов xlsm. Я хочу каждый раз, когда во всем файле Excel нет такой строки, получать время g=0 или «N/A» в мой массив и добавлять его.

Большое спасибо за любую помощь, которую вы можете оказать!

Ответ №1:

Самый простой способ-проверить длину g1 в конце. Если он равен нулю, то вы знаете, что на листе не было «НЕСУЩЕСТВУЮЩИХ» значений.

 # After your other appends...    
e1.append(e)
f1.append(f)
if len(g1)==0:
        # Do whatever here...
 

Есть более элегантные способы, но это красиво и просто.

Примечание. Предположение g1 определено где-то в другом месте кода, не показанном здесь, потому что вы не можете добавить что-то, что еще не определено.