Seite 1 von 1
Frei Excel Zelle finden
Verfasst: Dienstag 24. Juni 2008, 12:19
von Korea-2003
Hi,
wie finde ich raus, welches die nächste freie Zelle in Excel ist?
Das heißt ich habe beispielsweise A1-A5 gefüllt und mein Python Programm soll abfragen, welche die nächste freie ist. Rauskommen
müsste somit A6.
Wie lautet der Befehl dafür?
MfG
Verfasst: Dienstag 24. Juni 2008, 15:57
von mkesper
Code: Alles auswählen
import xlrd
def main(name):
book = xlrd.open_workbook(name)
for sheet in book.sheets():
print sheet.name
for row in xrange(sheet.nrows):
row_content = sheet.row_values(row)
print row_content
for col_index, cell in enumerate(row_content):
print cell, col_index
if cell == "":
print "Leere Zelle: %s%i" % (chr(ord("A") + row), col_index + 1)
break
else:
print "Leere Zelle: %s%i" % (chr(ord("A") + row), col_index + 1)
if __name__ == '__main__':
main("Mappe.xls")
Meine Debug-Prints sind noch drin.
Info zu xlrd.
Verfasst: Donnerstag 26. Juni 2008, 15:46
von Korea-2003
Geht das auch irgendwie ohne zusätzliches xlrd Modul?
Genauso würde ich gerne von oben nach unten den Zeilenindex zählen, natürlich nur bis zur letzten befüllten Zeile.
MfG
Verfasst: Donnerstag 26. Juni 2008, 15:52
von mkesper
Mit Modulen aus der Standardlib kannst du nur csv-Dateien lesen.
Was meinst du mit Zeilenindex zählen?
Die letzte befüllte Zeile wird durch sheet.nrows angegeben, wie in dem Snippet.
Verfasst: Freitag 27. Juni 2008, 10:06
von Korea-2003
Hi,
ich habe es nun mit Hilfe des xlrd Moduls gemacht. Bekomme aber leider immer eine Fehlermeldung, da im Excel Sheet Umlaute enthalten sind.
Code: Alles auswählen
workbook = xlrd.open_workbook(self.txtFile.GetValue(), encoding_override="cp1252")
for worksheet in workbook.sheets():
if worksheet.name == "NewVersion":
for row in xrange(worksheet.nrows):
if row > 0:
row_content = worksheet.row_values(row)
for index, cell in enumerate(row_content):
print cell, index
So sieht der Code dazu aus. Ich habe zwar eine Codierung drin, aber entweder ist sie falsch oder ich habe noch etwas vergessen?
MfG
Verfasst: Freitag 27. Juni 2008, 14:55
von BlackJack
Wo kommt denn die Fehlermeldung und wie lautet sie genau? Insbesondere wenn die Kodierung nicht von Dir vorgegeben wird. Ich habe den Verdacht, dass sie dann beim ``print`` kommt!? Das hätte dann nichts mit der Kodierung in der Excel-Datei zu tun, sondern dass Du explizit angeben müsstest wie die Daten bei der Ausgabe per ``print`` kodiert werden sollen.