OpenPyxl-如果单元格不,则如何跳过行



我在这里阅读了很多关于空排的答案,但是我以某种方式尝试使这些解决方案适应脚本的尝试失败了。

我正在使用OpenPyXl读取Excel文件中的表格,并加载其部分要处理到DataFrame(首先将每一行读取到列表列表,然后将其转换为DataFrame)。事实是,如果第一个单元格的值不在

i通过以下代码迭代行:

for row in ws.iter_rows(min_col=adres[0], min_row=adres[1], max_col=adres[2], max_row=adres[3]):
    data_rows.append([cell.value for cell in row]) 

谢谢,解决方案是如此简单,我羞于我什至要问:)

这里正常工作:

for row in ws.iter_rows(min_col=adres[0], min_row=adres[1], max_col=adres[2], max_row=adres[3]):
    if row[0].value is not None:
        data_rows.append([cell.value for cell in row])
    else: continue

我的贡献,也许可以帮助某人。考虑到我正在处理一个银行对帐单,该银行声明在行中填充了5列,而A列也不是空的。

    from openpyxl import load_workbook, Workbook
    wbook = load_workbook(filename="bank-stat.xlsx")
    sh1 = wbook.active
    #Find the first row empty
    i = 1
    for col in sh1['A']:
        if col.value is not None:
            print(f'Cell A of line {i} is filled' )
            i += 1
    print('First row empty: ',i) 
    wbook.close()

以下可能是您想要的:

def skip_empty_rows(ws):
    for row in ws.values:
        if row[0] is None:
           continue
        yield row
df = pd.DataFrame((skip_empty_rows(ws))

最新更新