vereine / app.py
mgokg's picture
Update app.py
bcad111 verified
raw
history blame
3.68 kB
import streamlit as st
import pandas as pd
import io # Importieren von io für BytesIO
st.set_page_config(layout="wide")
# 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("")
# Sidebar mit Buttons
with st.sidebar:
st.header("Bereich wählen")
# Container für die Buttons
with st.container():
# Breite der Buttons anpassen
st.markdown(
"""
<style>
.stButton > button {
width: 100%;
padding: 10px;
margin: 5px 0;
text-align: center;
}
</style>
""",
unsafe_allow_html=True
)
# Buttons nebeneinander anordnen
bamberg = st.button("Bamberg")
coburg = st.button("Coburg")
bad_kissingen = st.button("Bad Kissingen")
kronach = st.button("Kronach")
forchheim = st.button("Forchheim")
lichtenfels = st.button("Lichtenfels")
hassberge = st.button("Hassberge")
erlangen = st.button("Erlangen")
# Daten laden und anzeigen basierend auf dem geklickten Button
data = None
if bamberg:
data = load_city_data("Bamberg")
if coburg:
data = load_city_data("Coburg")
if bad_kissingen:
data = load_city_data("Kissingen")
if kronach:
data = load_city_data("Kronach")
if forchheim:
data = load_city_data("Forchheim")
if lichtenfels:
data = load_city_data("Lichtenfels")
if hassberge:
data = load_city_data("Hassberge")
if erlangen:
data = load_city_data("Erlangen")
if data is not None:
# Container für die Überschrift und den Download-Button
header_container = st.container()
with header_container:
# Überschrift und Download-Button nebeneinander
col1, col2 = st.columns([4, 1])
with col1:
if bamberg:
st.subheader("Vereine in Bamberg")
elif coburg:
st.subheader("Vereine in Coburg")
elif bad_kissingen:
st.subheader("Vereine in Bad Kissingen")
elif kronach:
st.subheader("Vereine in Kronach")
elif forchheim:
st.subheader("Vereine in Forchheim")
elif lichtenfels:
st.subheader("Vereine in Lichtenfels")
elif hassberge:
st.subheader("Vereine Hassberge")
elif erlangen:
st.subheader("Vereine in Erlangen")
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"
)
# Tabelle unterhalb der Überschrift
st.dataframe(data, width=1500)
if __name__ == "__main__":
main()