Files
Gestion_sondes/Inventaires-Excel.py
2025-04-14 10:51:50 +02:00

62 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import streamlit as st
import pandas as pd
import mysql.connector
from datetime import datetime
from dotenv import load_dotenv
import os
# Charger les variables d'environnement (.env)
load_dotenv()
def get_connection(database_name):
return mysql.connector.connect(
host=os.getenv("54.36.188.119"),
user=os.getenv("michel"),
password=os.getenv("#SO2&1nf%mZ@jfh"),
database=database_name
)
# --- Interface utilisateur ---
st.title("📦 Tableau de bord - Inventaires multi-sites")
# Sélecteur de base (site)
sites = ["Roissy", "Meudon", "Saclay"] # tu peux en ajouter ici
site_selectionne = st.selectbox("Sélectionnez le site :", sites)
try:
conn = get_connection(site_selectionne)
cursor = conn.cursor(dictionary=True)
# Récupérer les mois disponibles
cursor.execute("SELECT DISTINCT DATE_FORMAT(Date, '%Y-%m') AS Mois FROM Inventaires ORDER BY Mois DESC")
mois_dispos = [row['Mois'] for row in cursor.fetchall()]
if not mois_dispos:
st.warning("Aucun inventaire trouvé pour ce site.")
else:
mois_choisi = st.selectbox("Choisissez un mois :", mois_dispos)
# Charger les données du mois
query = """
SELECT Id_Article, Quantité, Prix, Date
FROM Inventaires
WHERE DATE_FORMAT(Date, '%%Y-%%m') = %s
ORDER BY Id_Article
"""
cursor.execute(query, (mois_choisi,))
data = cursor.fetchall()
df = pd.DataFrame(data)
st.success(f"{len(df)} lignes trouvées pour {site_selectionne} - {mois_choisi}")
st.dataframe(df)
# Export CSV
csv = df.to_csv(index=False).encode('utf-8')
st.download_button("📥 Télécharger CSV", csv, f"Inventaire_{site_selectionne}_{mois_choisi}.csv", "text/csv")
cursor.close()
conn.close()
except Exception as e:
st.error(f"Erreur : {e}")