Excel File mit Pandas lesen und beschreiben
Verfasst: Mittwoch 25. Oktober 2023, 22:14
Guten Abend, ich bin noch recht drisch mit Python.
Ich wollte mir ein Script schreiben mit dem ich meine Finanzen regelmäßig in eine Excel Tabelle eintrage.
Im Moment bin ich erst am Header. Hier würde ich gerne eine "def" schreiben mit der ich in die vorhandene Tabelle eine weitere Spalte oder Zelle am ende der letzten Zelle einfügen kann.
Ich hab schon sehr viel versucht aber es klappt nicht, Das einzige was ich geschafft habe ist, das die Zeile neu erstellt wird. Dann ist aber die Formatierung aus "def __init__" weg.
Hat jemand eine Idee und eventuell einen Tipp was ich besser machen könnte?
Ich finde für die wenigen Funktionen habe ich leider bisher viel Code erzeugt, das geht sicher viel einfacher oder?
Danke
"""
Overview about my Bank account's
"""
__author__ =""
__version__ ="0.0.1"
__copyright__ ="Copyright 10/2023
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import xlsxwriter
class make_header():
# Header erstellen
def __init__(self, filename: str, mysheet_name: str):
self.filename = filename
self.mysheet_name = mysheet_name
self.columns=["Date", "Total amount", "Bank1", "Bank2", "Bank3", "Bank4", "Bank5", "Bank6", "Bank7", "Bank8", "Bank9"]
df = pd.DataFrame(columns=self.columns)
writer = pd.ExcelWriter(filename+".xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name= mysheet_name, header=False, index=False)
worksheet = writer.sheets[mysheet_name]
workbook = writer.book
header_format = workbook.add_format(
{
"bold":True,
"text_wrap":True,
"valign": "top",
"fg_color": "#D7E4BC",
"border": 1,
}
)
# Write the column headers with the defined format.
for col_num, value in enumerate(df.columns.values):
worksheet.set_column('B:L', 10)
worksheet.write(0, col_num + 1, value, header_format)
writer.close()
def __str__(self):
return "Values"+ self.filename + self.mysheet_name
def add_header(self, new_header:str):
#self.columns.append(new_header)
new_df = pd.read_excel(self.filename+".xlsx",sheet_name = self.mysheet_name, header=0)
new_df.head()
new_df.insert(loc=len(self.columns)+1, column=new_header, value=0)
print(new_df)
writer= pd.ExcelWriter(self.filename+".xlsx", engine='xlsxwriter')
new_df.to_excel(writer, sheet_name= self.mysheet_name)
writer.close()
test=make_header("myBanking", "Total amount")
test.add_header(new_header="Test")
Ich wollte mir ein Script schreiben mit dem ich meine Finanzen regelmäßig in eine Excel Tabelle eintrage.
Im Moment bin ich erst am Header. Hier würde ich gerne eine "def" schreiben mit der ich in die vorhandene Tabelle eine weitere Spalte oder Zelle am ende der letzten Zelle einfügen kann.
Ich hab schon sehr viel versucht aber es klappt nicht, Das einzige was ich geschafft habe ist, das die Zeile neu erstellt wird. Dann ist aber die Formatierung aus "def __init__" weg.
Hat jemand eine Idee und eventuell einen Tipp was ich besser machen könnte?
Ich finde für die wenigen Funktionen habe ich leider bisher viel Code erzeugt, das geht sicher viel einfacher oder?
Danke
"""
Overview about my Bank account's
"""
__author__ =""
__version__ ="0.0.1"
__copyright__ ="Copyright 10/2023
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import xlsxwriter
class make_header():
# Header erstellen
def __init__(self, filename: str, mysheet_name: str):
self.filename = filename
self.mysheet_name = mysheet_name
self.columns=["Date", "Total amount", "Bank1", "Bank2", "Bank3", "Bank4", "Bank5", "Bank6", "Bank7", "Bank8", "Bank9"]
df = pd.DataFrame(columns=self.columns)
writer = pd.ExcelWriter(filename+".xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name= mysheet_name, header=False, index=False)
worksheet = writer.sheets[mysheet_name]
workbook = writer.book
header_format = workbook.add_format(
{
"bold":True,
"text_wrap":True,
"valign": "top",
"fg_color": "#D7E4BC",
"border": 1,
}
)
# Write the column headers with the defined format.
for col_num, value in enumerate(df.columns.values):
worksheet.set_column('B:L', 10)
worksheet.write(0, col_num + 1, value, header_format)
writer.close()
def __str__(self):
return "Values"+ self.filename + self.mysheet_name
def add_header(self, new_header:str):
#self.columns.append(new_header)
new_df = pd.read_excel(self.filename+".xlsx",sheet_name = self.mysheet_name, header=0)
new_df.head()
new_df.insert(loc=len(self.columns)+1, column=new_header, value=0)
print(new_df)
writer= pd.ExcelWriter(self.filename+".xlsx", engine='xlsxwriter')
new_df.to_excel(writer, sheet_name= self.mysheet_name)
writer.close()
test=make_header("myBanking", "Total amount")
test.add_header(new_header="Test")