File size: 1,673 Bytes
a42f7fa a940780 a42f7fa a940780 a42f7fa 1b0eb72 a42f7fa 4b8e8e2 a42f7fa 1b0eb72 a42f7fa 4b8e8e2 a42f7fa 4b8e8e2 a42f7fa a940780 a42f7fa a940780 a42f7fa a940780 4b8e8e2 a42f7fa 4b8e8e2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
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()
|