2011-10-26 28 views
7

openpyxl sembra essere un ottimo metodo per usare Python per leggere i file di Excel, ma ho incontrato un problema costante. Devo rilevare se una cella è vuota o meno, ma non riesco a confrontare alcuna delle proprietà della cella. Ho provato a lanciare come stringa e usare "" ma non ha funzionato. Il tipo di cella quando è vuoto è None o NoneType ma non riesco a capire come confrontare un oggetto con quello.openpyxl check per cella vuota

Suggerimenti? Capisco che openpyxl sia in fase di sviluppo, ma forse questo è più un problema generale di Python.

+2

Ancora una volta, un po 'più di ricerca ha dato la risposta: usare 'se la cella. valore – MechEngineer

risposta

15

di fare qualcosa quando la cella non è vuota aggiuntivo:

if cell.value: 

che in python è lo stesso che se il valore delle cellule non è None (vale a dire: se non Cell.Value == Nessuno :)

Nota per evitare il controllo celle vuote è possibile utilizzare

worksheet.get_highest_row() 

e

worksheet.get_highest_column() 

Inoltre ho trovato utile (anche se potrebbe non essere una bella soluzione) se si desidera utilizzare il contenuto della cella come una stringa, indipendentemente dal tipo è possibile utilizzare:

unicode(cell.value) 
+9

** Attenzione! ** 'bool (cell.values) == False' se' cell.value = 0' –

+1

Nel nuovissimo openpyxl, che ha rimosso il metodo get_highest_row e get_highest_column. Sono stati sostituiti dalla proprietà max_row e max_column – Shoham

7

Questo ha funzionato per me.

if cell.value is None: 
    print("Blank") 
else: 
    print("Not Blank") 
-2

è possibile modificare la cella o le celle che si desidera convalidare Inoltre è possibile codificare, ad esempio:

import openpyxl 

wb = openpyxl.load_workbook("file.xlsx") 
sheet = wb.get_sheet_by_name('Sheet1') 

if sheet.cell(row = 1, column=7).value == None: 
    print("Blank") 
else: 
    print("No blank") 
Problemi correlati