Seite 1 von 1

Excel-Datei mit neuen Zeilen erweitern

Verfasst: Dienstag 11. Januar 2022, 18:15
von AmateurPython999
Hallo zusammen,

ich taste mich momentan an Python ran und würde gerne die Eingaben im Python-Programm in Excel ausgeben.
Nach vielen Einführungen zu Pandas und auch Hilfeleistungen in diesem Forum, habe ich bereits etwas mit kleinen Erfolgen programmieren können (siehe Code).
Nach Ende des Programmlaufs speichert Python die Eingaben wie gewünscht in Excel.
Nun hätte ich gerne, dass beim zweiten, dritten, ... Programmlauf die Eingaben in den darauffolgenden Zeilen der Excel-Datei gespeichert werden, was bei meinem derzeitigen Code nicht der Fall ist. Stattdessen werden bei einem zweiten Programmlauf die abgesicherten Eingaben des ersten Programmlaufs überschrieben und dadurch verloren.
Mein Grundgedanke beim derzeitigen Code ist: Python liest die Excel-Datei, erweitert Sie mit den neuen Eingaben und speichert sie ab.

Was stimmt nicht und musst korrigiert werden, sodass die Excel-Datei erweitert statt nur überschrieben wird?

Danke!

Code: Alles auswählen

import pandas

print("Willkommen bei der Berechnung! Bitte geben Sie Ihren Namen an!")
name = str(raw_input())
print("Herzlich Willkommen " + name + "! Bitte geben Sie die Hoehe der Rechnungssumme in Zahlen an!")
rechnungssumme = (float(raw_input()))
print("Bitte geben Sie Ihr Alter in ganzen Zahlen an.")
alter = str(int(raw_input()))
print("Wie viel betraegt die Summe?")
summe = str(raw_input())

pp = pandas.read_excel('pythonass.xls')
df = pandas.DataFrame ({'1_Name': [ name ], '2_Alter': [alter], '3_Rechnungssumme':[rechnungssumme],'4_Summe':[summe]})
writer = pandas.ExcelWriter('pythonass.xls', engine='xlsxwriter')
pp.to_excel(writer, sheet_name='Sheet1', index=False) , df.to_excel(writer, sheet_name='Sheet1', index=False)
writer.save()

Re: Excel-Datei mit neuen Zeilen erweitern

Verfasst: Dienstag 11. Januar 2022, 18:24
von sparrow
Hast du mal in die Dokumentation geschaut? Englisch für "Anhängen" ist "append".

Re: Excel-Datei mit neuen Zeilen erweitern

Verfasst: Dienstag 11. Januar 2022, 18:51
von AmateurPython999
sparrow hat geschrieben: Dienstag 11. Januar 2022, 18:24 Hast du mal in die Dokumentation geschaut? Englisch für "Anhängen" ist "append".
Danke!!! Hat geklappt.

Re: Excel-Datei mit neuen Zeilen erweitern

Verfasst: Mittwoch 12. Januar 2022, 09:58
von Sirius3
@AmateurPython999: Du benutzt raw_input, also Python2. Das wird seit über einem Jahr nicht mehr gepflegt. Steige auf Python3 um.
`input` liefert schon einen String, den nochmal in einen String umzuwandeln ist unnötig.
Strings stückelt man nicht mit + zusammen, sondern benutzt Formatstrings.
Warum sind `alter` und `summe` Strings?
Warum haben die Spaltennamen Nummern?
In der vorletzten Zeile erzeugst Du ein Tuple, das Du nicht weiter verwendest und das auch gar keinen Sinn macht. Da solltest Du kein Tuple erzeugen!
`ExcelWriter` benutzt man mit with.

Code: Alles auswählen

import pandas

def main():
    print("Willkommen bei der Berechnung! Bitte geben Sie Ihren Namen an!")
    name = input()
    print(f"Herzlich Willkommen {name}! Bitte geben Sie die Hoehe der Rechnungssumme in Zahlen an!")
    rechnungssumme = float(input())
    print("Bitte geben Sie Ihr Alter in ganzen Zahlen an.")
    alter = int(input())
    print("Wie viel betraegt die Summe?")
    summe = float(input())

    pp = pandas.read_excel('pythonass.xls')
    df = pandas.DataFrame ({'Name': [ name ], 'Alter': [alter], 'Rechnungssumme':[rechnungssumme],'Summe':[summe]})
    with pandas.ExcelWriter('pythonass.xls', engine='xlsxwriter') as writer:
        pp.to_excel(writer, sheet_name='Sheet1', index=False)
        df.to_excel(writer, sheet_name='Sheet1', index=False)

if __name__ == "__main__":
    main()