Excel + Python Automatisierung – Live-Demos
Hier zeige ich Ihnen, wie ich mit Python und Excel wiederkehrende Aufgaben automatisiere. Jede Demo zeigt ein reales Problem und die automatisierte Lösung – mit Code, Ergebnissen und Erklärungen.
Technologien: Python, pandas, openpyxl, Excel📊 Demo 1: Mitarbeiter-Bonus-Rechner
Automatische Berechnung von Bonus und Jahresgehalt – mit nur 10 Zeilen Python-Code.
Vorher: Manuelle Arbeit
Bonus und Jahresgehalt müssen in Excel mühsam per Hand berechnet werden. Das kostet Zeit und ist fehleranfällig.
Nachher: Vollautomatisch
Mit nur wenigen Zeilen Python-Code werden Bonus und Jahresgehalt automatisch berechnet und in eine neue Excel-Datei exportiert.
""" Excel + Python Automatisierung Projekt: Mitarbeiter-Bonus-Rechner """ import pandas as pd # 1. Daten erstellen daten = { "Name": ["Anna", "Ben", "Clara", "David"], "Abteilung": ["Vertrieb", "IT", "Marketing", "Vertrieb"], "Gehalt": [4200, 5100, 3800, 4900] } df = pd.DataFrame(daten) # 2. Bonus & Jahresgehalt berechnen df["Bonus"] = df["Gehalt"] * 0.1 df["Jahresgehalt"] = df["Gehalt"] * 12 # 3. In Excel speichern (2 Sheets) with pd.ExcelWriter("mitarbeiter_mit_bonus.xlsx", engine="openpyxl") as writer: df.to_excel(writer, sheet_name="Alle Mitarbeiter", index=False) df[df["Abteilung"] == "Vertrieb"].to_excel(writer, sheet_name="Nur Vertrieb", index=False)
📈 Ergebnis: Automatisch generierte Excel-Tabelle
| Name | Abteilung | Gehalt | Bonus | Jahresgehalt |
|---|---|---|---|---|
| Anna | Vertrieb | 4.200 € | 420 € | 50.400 € |
| Ben | IT | 5.100 € | 510 € | 61.200 € |
| Clara | Marketing | 3.800 € | 380 € | 45.600 € |
| David | Vertrieb | 4.900 € | 490 € | 58.800 € |
🧹 Demo 2: Excel-Reiniger für große Datenmengen
Automatische Bereinigung von Duplikaten, leeren Zellen und falschen Datumsformaten – mit nur wenigen Zeilen Python-Code.
Vorher: Datenchaos
Doppelte Einträge, leere Zellen, unterschiedliche Datumsformate – die Daten sind unbrauchbar.
Nachher: Sauber & strukturiert
Alle Duplikate entfernt, leere Zellen gefüllt, einheitliches Datumsformat – plus Bericht-Sheet mit allen Aktionen.
import pandas as pd import numpy as np # 1. Testdaten mit Fehlern erstellen fehlerhafte_daten = { "Name": ["Anna", "Ben", "Anna", "Clara", "David", "Ben"], "Datum": ["2026-01-01", "01.02.2026", "2026-01-01", "2026-03-15", "15.04.2026", "01.02.2026"], "Verkauf": [1200, 850, 1200, 2100, 450, 850], "Mitarbeiter-ID": ["A001", "B002", "A001", "C003", "D004", "B002"] } df_roh = pd.DataFrame(fehlerhafte_daten) # 2. Bereinigung # Duplikate entfernen df = df_roh.drop_duplicates() # Leere Zellen füllen df["Name"] = df["Name"].fillna("Unbekannt") # Datumsformat vereinheitlichen df["Datum"] = pd.to_datetime(df["Datum"]).dt.strftime("%Y-%m-%d") # 3. Saubere Excel speichern df.to_excel("bereinigte_daten.xlsx", index=False) print("✅ Bereinigte Datei gespeichert!")
📈 Ergebnis: Bereinigte Excel-Datei
| Name | Datum | Verkauf (€) | Mitarbeiter-ID |
|---|---|---|---|
| Anna | 2026-01-01 | 1.200 | A001 |
| Ben | 2026-02-01 | 850 | B002 |
| Clara | 2026-03-15 | 2.100 | C003 |
| David | 2026-04-15 | 450 | D004 |
Ausgabe: Excel-Datei mit 2 Sheets – "Bereinigte Daten" und "Bericht"
📧 Demo 3: Automatischer E-Mail-Versand
Generierte Excel-Reports automatisch per E-Mail versenden – mit nur wenigen Zeilen Python-Code.
Schritt 1: Report generiert
Der Excel-Report wird automatisch erstellt – mit Umsätzen, Neukunden und Zufriedenheitswerten.
Schritt 2: E-Mail versendet
Die E-Mail mit dem Excel-Report als Anhang wird automatisch an die Empfänger versendet.
import pandas as pd import smtplib from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.mime.text import MIMEText from email import encoders import datetime # 1. Excel-Report erstellen daten = { "Monat": ["Januar", "Februar", "März"], "Umsatz": [12500, 14800, 13200] } df = pd.DataFrame(daten) dateiname = f"Monatsreport_{datetime.datetime.now().strftime('%Y-%m-%d')}.xlsx" df.to_excel(dateiname, index=False) # 2. E-Mail versenden (SMTP-Konfiguration notwendig!) def send_report(empfaenger): msg = MIMEMultipart() msg["From"] = "ihre-email@gmail.com" # Hier Ihre E-Mail eintragen msg["To"] = empfaenger msg["Subject"] = "Monatsreport" msg.attach(MIMEText("Ihr Report im Anhang.", "plain")) # Anhang hinzufügen with open(dateiname, "rb") as datei: teil = MIMEBase("application", "octet-stream") teil.set_payload(datei.read()) encoders.encode_base64(teil) teil.add_header("Content-Disposition", f"attachment; filename={dateiname}") msg.attach(teil) # Versenden server = smtplib.SMTP("smtp.gmail.com", 587) server.starttls() server.login("ihre-email@gmail.com", "app-passwort") # App-Passwort verwenden! server.send_message(msg) server.quit() # 3. Ausführen send_report("empfaenger@beispiel.de") print("✅ E-Mail erfolgreich versendet!")
🔧 Wichtige Hinweise zur SMTP-Einrichtung
Damit der automatische E-Mail-Versand funktioniert, musst du deine E-Mail-Zugangsdaten im Code eintragen. Hier sind die drei gängigsten Lösungen:
- ✅ Lösung 1 (Empfohlen): App-Passwort für Gmail einrichten. Aktiviere die 2-Faktor-Authentifizierung und erstelle ein App-Passwort in deinem Google-Konto.
- 🔐 Lösung 2: Weniger sichere Apps erlauben (nicht empfohlen, oft nicht mehr unterstützt).
- 📧 Lösung 3: Anderen E-Mail-Anbieter nutzen (z.B. Outlook, GMX, Web.de) und die SMTP-Server-Daten anpassen.
Tipp: Für Gmail ersetze im Code "ihre-email@gmail.com" durch deine E-Mail und "app-passwort" durch das generierte 16-stellige App-Passwort.
📈 Ergebnis: Automatische E-Mail mit Report
An: kunde@beispiel.de
Betreff: Monatsreport August 2026
Anhang: Monatsreport_2026-08-27.xlsx (Excel-Datei)
📊 Demo 4: Interaktives Excel-Dashboard mit Flask
Excel-Daten live im Browser visualisieren – mit interaktiven Diagrammen und Tabellen.
🤔 Das Problem
Excel-Daten sind oft unübersichtlich. Muster, Trends und Ausreißer sind schwer zu erkennen – besonders bei großen Tabellen. Ein interaktives Dashboard macht Daten auf einen Blick verständlich.
Die Daten liegen in Excel vor – aber Muster und Trends sind schwer zu erkennen.
Nach dem Upload werden automatisch Diagramme generiert – interaktiv und übersichtlich.
🔍 So funktioniert die Automatisierung
Der Benutzer wählt eine Excel-Datei aus und klickt auf "Hochladen".
Python liest die Datei mit pandas ein – automatisch und fehlerfrei.
Mit Plotly werden interaktive Balken-, Linien- und Tortendiagramme erstellt.
Die Web-App (Flask) zeigt die Diagramme und die Tabelle übersichtlich an.
Das Besondere: Alles läuft automatisch – der Benutzer muss nur die Excel-Datei auswählen. Die Analyse und Visualisierung übernimmt Python in Sekundenschnelle.
from flask import Flask, render_template, request import pandas as pd import plotly.express as px import json app = Flask(__name__) # 1. Excel-Datei hochladen def upload_file(): file = request.files['file'] df = pd.read_excel(file) # 2. Diagramm erstellen fig = px.bar(df, x=df.columns[0], y=df.columns[1]) graph_json = json.dumps(fig, cls=plotly.utils.PlotlyJSONEncoder) # 3. Dashboard anzeigen return render_template('index.html', table=df.to_html(), graph=graph_json) if __name__ == '__main__': app.run(debug=True)
📈 Ergebnis: Live-Dashboard mit interaktiven Charts
Excel hochladen
Klick oder Drag & DropAutomatische Diagramme
Balken, Linien, TortenDatenvorschau
Tabelle mit allen WertenLive-URL: http://127.0.0.1:5000 (lokaler Server)
Zeitersparnis: Statt 20 Minuten manuell, erledigt das Skript alles in 5 Sekunden.
Ausbaubar: Dieses Dashboard kann um weitere Diagramme, Filter oder eine Datenbankanbindung erweitert werden – ganz nach Ihren Anforderungen.
🌐 Demo 5: Web-Scraping mit Excel-Export
Daten von Webseiten automatisch auslesen und in Excel speichern – mit nur wenigen Zeilen Python-Code.
🤔 Das Problem
Daten aus Webseiten müssen oft manuell kopiert und in Excel eingefügt werden – das kostet Zeit und führt zu Fehlern. Ein Python-Skript automatisiert diesen Prozess und liefert strukturierte Daten in Sekundenschnelle.
Daten müssen mühsam per Hand aus der Webseite kopiert und in Excel eingefügt werden.
Python liest die Daten automatisch aus und speichert sie strukturiert in Excel.
🔍 So funktioniert die Automatisierung
Python ruft die gewünschte Webseite auf und lädt den HTML-Code.
Mit BeautifulSoup werden gezielt die gewünschten Daten (Titel, Preis, Bewertung) ausgelesen.
Die extrahierten Daten werden in eine Tabelle (DataFrame) umgewandelt.
Die strukturierten Daten werden automatisch als Excel-Datei exportiert.
Das Besondere: Das Skript kann beliebig oft ausgeführt werden – immer aktuelle Daten, immer sauber und strukturiert.
import requests from bs4 import BeautifulSoup import pandas as pd # 1. Webseite aufrufen url = "https://books.toscrape.com/" response = requests.get(url) # 2. HTML parsen soup = BeautifulSoup(response.text, 'html.parser') # 3. Daten extrahieren produkte = [] for buch in soup.select('article.product_pod'): titel = buch.find('h3').find('a').get('title', 'Kein Titel') preis = buch.find('p', class_='price_color').text if buch.find('p', class_='price_color') else 'Kein Preis' bewertung = buch.find('p', class_='star-rating').get('class')[1] if buch.find('p', class_='star-rating') else 'Keine Bewertung' produkte.append({'Titel': titel, 'Preis': preis, 'Bewertung': bewertung}) # 4. In Excel speichern df = pd.DataFrame(produkte) df.to_excel("produkte.xlsx", index=False) print(f"✅ {len(produkte)} Produkte exportiert!")
📈 Ergebnis: Automatisch generierte Excel-Tabelle
Webseite auslesen
Daten automatisch extrahierenExcel-Export
Strukturierte Daten speichernZeitersparnis
Sekunden statt MinutenAnwendungsbereiche: Produktpreise, Börsendaten, Wetterdaten, News-Feeds
Zeitersparnis: Statt 15 Minuten manuell, erledigt das Skript alles in 5 Sekunden.
Flexibel: Das Skript kann für jede Webseite angepasst werden, die strukturierte Daten enthält.
📊 Demo 6: Excel-Tabellen-Vergleicher
Zwei Excel-Dateien automatisch vergleichen und Unterschiede farbig markieren – mit nur wenigen Zeilen Python-Code.
🤔 Das Problem
Zwei Excel-Dateien manuell zu vergleichen ist mühsam und fehleranfällig. Besonders bei großen Tabellen übersieht man schnell Unterschiede. Ein Python-Skript findet automatisch alle Abweichungen und markiert sie farbig.
Soll- und Ist-Dateien müssen mühsam Zeile für Zeile verglichen werden – das kostet Zeit und Nerven.
Python vergleicht automatisch beide Dateien und markiert Abweichungen farbig – grün für identisch, rot für Unterschiede.
🔍 So funktioniert die Automatisierung
Python liest beide Excel-Dateien mit pandas ein.
Jede Zeile wird Zelle für Zelle verglichen – Abweichungen werden erkannt.
Mit openpyxl werden gleiche Zeilen grün und unterschiedliche rot markiert.
Eine neue Excel-Datei wird mit allen Daten und den Markierungen erstellt.
Das Besondere: Du siehst sofort, welche Zeilen abweichen – perfekt für Soll/Ist-Vergleiche, Inventuren oder Datenmigrationen.
import pandas as pd from openpyxl import load_workbook from openpyxl.styles import PatternFill, Font # 1. Daten einlesen df_soll = pd.read_excel("soll.xlsx") df_ist = pd.read_excel("ist.xlsx") # 2. Vergleichen with pd.ExcelWriter("vergleich_ergebnis.xlsx", engine="openpyxl") as writer: df_ist.to_excel(writer, sheet_name="Vergleich", index=False) wb = writer.book ws = writer.sheets["Vergleich"] # 3. Farben definieren gruen = PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid") rot = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type="solid") # 4. Zeilen einfärben for idx in range(2, len(df_ist) + 2): if df_soll.iloc[idx-2].equals(df_ist.iloc[idx-2]): for col in range(1, len(df_ist.columns) + 1): ws.cell(row=idx, column=col).fill = gruen else: for col in range(1, len(df_ist.columns) + 1): ws.cell(row=idx, column=col).fill = rot print("✅ Vergleich abgeschlossen!")
📈 Ergebnis: Farbig markierte Excel-Datei
Soll/Ist-Vergleich
Automatisch und fehlerfreiFarbige Markierungen
Grün = identisch, Rot = AbweichungSofortige Übersicht
Alle Unterschiede auf einen BlickAnwendungsbereiche: Inventur, Datenmigration, Soll/Ist-Vergleiche, Qualitätsprüfung
Zeitersparnis: Statt 30 Minuten manuell, erledigt das Skript alles in 3 Sekunden.
Flexibel: Das Skript funktioniert mit beliebigen Excel-Dateien – einfach Dateinamen anpassen.
📊 Demo 7: Excel-Pivot-Tabelle mit Python
Automatische Erstellung einer interaktiven Pivot-Tabelle aus Verkaufsdaten – mit nur wenigen Zeilen Python-Code.
🤔 Das Problem
Verkaufsdaten in Excel sind oft unübersichtlich. Eine Pivot-Tabelle hilft, Muster zu erkennen – aber sie manuell zu erstellen ist zeitaufwendig. Python automatisiert diesen Prozess und liefert eine fertige, interaktive Pivot-Tabelle.
Die Rohdaten enthalten alle Informationen – aber Muster und Trends sind schwer zu erkennen.
Die Pivot-Tabelle kann per Drag-and-Drop angepasst werden – perfekt für flexible Analysen.
🔍 So funktioniert die Automatisierung
Verkaufsdaten werden mit pandas als Tabelle erstellt.
xlwings startet Excel im Hintergrund und schreibt die Daten.
Die Pivot-Tabelle wird mit den Feldern Region, Produkt, Umsatz und Menge erstellt.
Die fertige Datei wird gespeichert – mit Rohdaten und interaktiver Pivot.
Das Besondere: Der Anwender erhält nicht nur eine statische Tabelle, sondern eine voll interaktive Pivot – genau wie von Hand erstellt, aber automatisch generiert.
import pandas as pd import xlwings as xw # 1. Daten erstellen daten = { "Region": ["Ost", "Ost", "West", "West"], "Produkt": ["A", "B", "A", "B"], "Umsatz": [100, 200, 150, 250] } df = pd.DataFrame(daten) # 2. Excel im Hintergrund starten app = xw.App(visible=False) wb = app.books.add() # 3. Rohdaten schreiben ws_daten = wb.sheets[0] ws_daten.name = "Rohdaten" ws_daten.range('A1').value = df # 4. Pivot-Tabelle erstellen ws_pivot = wb.sheets.add("PivotAnalyse") pivot_cache = wb.api.PivotCaches().Create( SourceType=1, SourceData=ws_daten.range('A1').expand().api ) pivot_table = pivot_cache.CreatePivotTable( TableDestination=ws_pivot.range('A3').api, TableName="Verkaufspivot" ) # 5. Felder definieren pivot_table.PivotFields("Region").Orientation = 1 # Zeilen pivot_table.PivotFields("Produkt").Orientation = 2 # Spalten pivot_table.AddDataField(pivot_table.PivotFields("Umsatz"), "Summe Umsatz", -4157) # 6. Speichern wb.save("pivot_bericht.xlsx") wb.close() app.quit() print("✅ Pivot-Bericht erstellt!")
📈 Ergebnis: Interaktive Pivot-Tabelle
Drag & Drop
Felder beliebig anordnenFiltern
Nach Region, Produkt, MonatFlexible Berechnung
Summe, Mittelwert, AnzahlAnwendungsbereiche: Verkaufsanalyse, Finanzberichte, Inventur-Auswertungen
Zeitersparnis: Statt 10 Minuten manuell, erledigt das Skript alles in 3 Sekunden.
Flexibel: Die Pivot-Tabelle kann für beliebige Datenstrukturen angepasst werden – einfach die Spaltennamen ändern.
📌 Weitere Demos in Vorbereitung
Ich zeige hier regelmäßig neue Automatisierungs-Beispiele mit Excel und Python.
Als nächstes: Echtzeit-Dashboard mit Streamlit und PDF-zu-Excel-Extraktor
📋 Ihr eigenes Projekt?
Beschreiben Sie mir Ihre Aufgabe – ich entwickle genau die Lösung, die Sie brauchen. Unverbindlich und persönlich.
Jetzt unverbindlich anfragen