Openpyxl Grundsuche

Ich versuche, ein Excel-Dokument zu durchsuchen und wenn der Name der mp3-Datei im Excel-Dokument übereinstimmt, druckt er die Zeile aus, in der die Instanz des Namens gefunden wird.

Das ist was ich habe

from mutagen.easyid3 import EasyID3 from openpyxl import load_workbook import glob import re import os for name in glob.glob('*.mp3'): audio = EasyID3(name) wb = load_workbook('xl.xlsx') sh = wb.get_sheet_by_name('Russian') for row in sh: if row.value == name: print row.number 

One Solution collect form web for “Openpyxl Grundsuche”

Zuerst laden Sie die Arbeitsmappe und finden das Blatt für jede .mp3 Datei. Verschieben Sie diesen Code außerhalb der Schleife.

Zweites Problem ist, dass Sie versuchen, über das Arbeitsblatt sh zu iterieren, was nicht iterable ist.

Drittes Problem ist, dass Sie testen Sie row.value zu gleichem Namen, wo Sie wahrscheinlich wollen sh.cell[0].value

Dein Code sollte wohl eher aussehen:

 from mutagen.easyid3 import EasyID3 from openpyxl import load_workbook import glob import re import os wb = load_workbook('xl.xlsx') sh = wb.get_sheet_by_name('Russian') for name in glob.glob('*.mp3'): audio = EasyID3(name) for row_index in range(sh.get_highest_row()): if sh.cell(row=row_index, column=0).value == name: print(row_index) 

Als @Bill Kidd angegeben, in openpyxl 2.4.2 müssen Sie ersetzen .get_highest_row() von .max_row (keine Klammern!).

  • Wie lade / lesen Sie passwortgeschützte xls oder xlsx (Excel) Datei mit python in Linux?
  • Wie man xls in xlsx umwandelt
  • Serving Excel (xlsx) Datei an den Benutzer zum Download in Django (Python)
  • Python ist die beste Programmiersprache der Welt.