OpenPyXL - 如果cell.value为None,如何跳过行

时间:2017-09-25 11:17:52

标签: python excel row openpyxl skip

我在这里读到了很多关于空行的答案,但不知何故,我尝试将这些解决方案改编为我的脚本失败了。

我正在使用OpenPyXL读取excel文件中的工作表并加载要处理到DataFrame的部分(首先将每行读取到列表列表然后将其转换为DataFrame)。问题是,如果第一个单元格的cell.value为None,我正在寻找跳过行的优雅解决方案

我使用以下代码迭代行:

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]) 

2 个答案:

答案 0 :(得分:1)

谢谢你, 解决方案很简单,我甚至惭愧地问:)

这里工作得很好:

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

答案 1 :(得分:0)

以下可能是您想要的:

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))