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?
4 Réponses :
É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))
Salut Merci, mais la condition et
semble provoquer une syntaxe invalide @vinjay
@BilalHabib Mon mauvais utilisé et au lieu d'une virgule
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))
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) )
Vous pouvez simplement découper la feuille de calcul comme ceci.
worksheet[2: worksheet.max_row]
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?