1
votes

Ignorer la première ligne dans Openpyxl

Bonjour, j'ai le code suivant

wb_obj = openpyxl.load_workbook(path, data_only=True) 
worksheet = wb_obj.get_sheet_by_name('Sheet1')

for row_cells in worksheet.iter_rows():
    for cell in row_cells:
       print('%s: cell.value=%s' % (cell, cell.value) )

cela fonctionne bien. cependant je n'en ai pas besoin pour afficher les données de la première ligne qui est la ligne d'en-tête. Comment puis-je modifier la requête pour exclure la première ligne?


2 commentaires

Ceci est couvert dans la documentation. Utilisez simplement ws.iter_rows (min_row = 2)


Double possible de En utilisant python openpyxl, comment sauter les premières lignes?


4 Réponses :


-1
votes

Énumérer simplement les lignes à l'aide de la fonction enumerate () , puis obtenir l'index et la valeur de la cellule dans 2 variables différentes comme,

for index, row_cells in enumerate(worksheet.iter_rows()):
    if (index == 0):
       continue
    for cell in row_cells:
       print('%s: cell.value=%s' % (cell, cell.value))


2 commentaires

Salut Merci, mais la condition et semble provoquer une syntaxe invalide @vinjay


@BilalHabib Mon mauvais utilisé et au lieu d'une virgule



1
votes

Comme iter_rows est un générateur, nous ne pouvons malheureusement pas découper la première ligne [1:], c'est donc un moyen piraté mais efficace de sauter la première ligne.

for i, row_cells in enumerate(worksheet.iter_rows()):                              
    if i == 0:                                                                              
        continue                                                            
    for cell in row_cells:                                                  
        print('%s: cell.value=%s' % (cell, cell.value)) 


0 commentaires

9
votes

La documentation suggère d'utiliser iter_rows

for row_cells in worksheet.iter_rows(min_row=2):
    for cell in row_cells:
        print('%s: cell.value=%s' % (cell, cell.value) )


0 commentaires

3
votes

Vous pouvez simplement découper la feuille de calcul comme ceci.

worksheet[2: worksheet.max_row]


0 commentaires