habe folgendes Phänomen: Ich greife per "get_sheet" auf eine bereits vorhandene Exceldatei zu:
Code: Alles auswählen
datei_sheet = datei.get_sheet(int(sheet_counter_c))Schließlich Speichere ich dann ab per
Code: Alles auswählen
datei.save('Dateiname.xls')Nun kommt das Seltsame: Nach dieser Speicherung hatte ich ehemals noch Code, der folgendes beinhaltete:
Code: Alles auswählen
x1.Workbooks.Open(mk_path)
x1.ActiveWorkbook.Close(SaveChanges=1) # 1 is True, 0 is False
x1.Quit()Kann mir das jemand erklären?
EDIT - ausführlicher Code:
Code: Alles auswählen
def zahl2_counting(zahl2_quell_sheet):
numRow_zahl2 = zahl2_quell_sheet.nrows
numCol_zahl2 = zahl2_quell_sheet.ncols
numRow_mk = datei_sheet_read.nrows
row_counter_zahl = 1
zahl2_sheet = datei.add_sheet(zahl2_sheet_name)
zahl2_sheet.col(4).width=3900
zahl2_sheet.write(0, 0, 'Name', style2)
zahl2_sheet.write(0, 1, 'Name2', style2)
zahl2_sheet.write(0, 2, 'Name3', style2)
zahl2_sheet.write(0, 3, 'Name4', style2)
zahl2_sheet.write(0, 4, 'Name5', style2)
numRow_datei_final = 0
for row in xrange(numRow_datei):
rowList_datei = datei_sheet_read.row_values(row)
for col, cell in enumerate(rowList_datei[:1]):
if cell == str(zahl2_sheet_name[:-7]):
numRow_datei_final +=1
for row in xrange(numRow_zahl2):
if row >= 1:
# Jede Zeile auslesen und in jeweils eine Liste schreiben
rowList_zahl = zahl2_quell_sheet.row_values(row)
for col, cell in enumerate(rowList_zahl[:5]):
# Die Werte in's neue Sheet schreiben
zahl2_sheet.write(row_counter_zahl, col, cell, style1)
row_counter_zahl +=1
row_counter_zahl1 = 1
for row in xrange(numRow_zahl2):
if row >= 1:
rowList_zahl = zahl2_quell_sheet.row_values(row)
for col, cell in enumerate(rowList_zahl[:5]):
zahl2_sheet.write(row_counter_zahl1, 5, xlwt.Formula('COUNTIF(E1:E65536;E{0})'.format(row_counter_zahl1+1)), style0)
row_counter_zahl1 +=1
row_counter_zahlB = 1
while row_counter_zahlB <= numRow_mk_final:
if zahl2_quell_sheet.cell_value(row, 6) not in ('Name5','Name6'):
if str(zahl2_sheet_name)[:-7] == 'Hans':
datei_sheet.write(row_counter_zahlB, 5, xlwt.Formula("VLOOKUP('{}'".format(1) + '!D{}'.format(row_counter_zahlB+1) + ";'{}'".format(zahl2_sheet_name) + '!E2:F65536;2;FALSE)'), style0)
row_counter_zahlB +=1
sheet_counter_c = 1
for root, dirs, files in os.walk(zahl2_pathQuell):
for xlsfile in files:
if xlsfile.endswith('_zahl 2.xlsx'):
zahl2_quell_path = os.path.join(root,xlsfile)
zahl2_quell = xlrd.open_workbook(zahl2_quell_path)
zahl2_quell_sheet = zahl2_quell.sheet_by_index(0)
zahl2_file_name = str(xlsfile)
zahl2_sheet_name = zahl2_file_name[:-5]
datei_sheet = datei.get_sheet(int(sheet_counter_c))
datei_read = xlrd.open_workbook('datei_' + str(tag) + '.' + str(monat) + '.' + str(jahr) + '.xls')
datei_sheet_read = datei_read.sheet_by_index(int(sheet_counter_c))
zahl2_counting(zahl2_quell_sheet)
sheet_counter_c += 1
datei.save('datei_' + str(tag) + '.' + str(monat) + '.' + str(jahr) + '.xls')
x1.Workbooks.Open(datei_path)
x1.ActiveWorkbook.Close(SaveChanges=1) # 1 is True, 0 is False
x1.Quit()