vereine / app.py
mgokg's picture
Update app.py
a940780 verified
raw
history blame
1.67 kB
import streamlit as st
import pandas as pd
import io # Importieren von io für BytesIO
# JSON-Dateien laden
def load_city_data(city):
file_path = f"{city.lower()}.json"
return pd.read_json(file_path)
# Streamlit-App
def main():
st.title("Stadt-Daten-Ansicht")
# Sidebar mit Buttons
with st.sidebar:
st.header("Wähle eine Stadt")
bamberg = st.button("Bamberg")
coburg = st.button("Coburg")
bad_kissingen = st.button("Kissingen")
# Daten laden und anzeigen basierend auf dem geklickten Button
data = None
if bamberg:
data = load_city_data("Bamberg")
st.subheader("Daten für Bamberg")
if coburg:
data = load_city_data("Coburg")
st.subheader("Daten für Coburg")
if bad_kissingen:
data = load_city_data("Kissingen")
st.subheader("Daten für Bad Kissingen")
if data is not None:
# Tabelle und Download-Button nebeneinander anordnen
col1, col2 = st.columns([3, 1])
with col1:
st.dataframe(data, width=1000)
with col2:
# Excel-Datei generieren
excel_buffer = io.BytesIO() # Erstellen eines BytesIO-Objekts
data.to_excel(excel_buffer, index=False) # Daten in das BytesIO-Objekt schreiben
excel_buffer.seek(0) # Zurücksetzen des Zeigers auf den Anfang des Buffers
st.download_button(
label="Download Excel",
data=excel_buffer,
file_name="data.xlsx",
mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)
if __name__ == "__main__":
main()