2017-09-25 139 views
-1

我已經閱讀了大量關於空行的答案,但不知何故,我嘗試將這些解決方案適用於我的腳本失敗了。OpenPyXL - 如何在cell.value爲無時跳過行

我正在使用OpenPyXL讀取excel文件中的圖紙並將其加載到要處理的部分DataFrame(首先將每行讀取到列表並將其轉換爲DataFrame)。事情是,我正在尋找優雅的解決方案,以跳過行,如果第一小區的cell.value是無

我通過與下面的代碼行迭代:

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

該代碼不完整。 –

+0

其餘的代碼是不相關的,因爲這部分是負責讀取單元格中的每一行,並將它放在列表data_rows中。它工作得很好,除非我想讓它跳過第一個單元格行[0]的位置,我猜它會是空的。 – Uzzy

+0

你不一定處於決定相關與否的最佳位置。傳入的所有參數應該總是在某處定義或解釋。 –

回答

0

謝謝 該解決方案是如此簡單我很慚愧我甚至問:)

這是工作nicel y:

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