Rechnungen aus Google TabellenEntwicklung & Anpassung

Ein Google Apps Script, das Zeilen Ihrer Google Tabelle per Knopfdruck in Rechnungs-PDFs nach Ihrer Vorlage verwandelt

Meist in 15 Minuten fertigÜberarbeitungen inklusiveQualitätsprüfung
Pakete
ZahlungsschutzMehr dazu
  • Überarbeitungen im Rahmen des Pakets sind kostenlos.
  • Reagieren Sie nicht innerhalb von 3 Tagen nach der Lieferung, gilt die Arbeit automatisch als abgenommen.

Das Geld wird bei der Zahlung reserviert und erst freigegeben, wenn Sie die Arbeit abnehmen.

Ein Google Apps Script, das Zeilen Ihrer Google Tabelle per Knopfdruck in Rechnungs-PDFs nach Ihrer Vorlage verwandelt

Beispielergebnis

Beispiel für das Standard-Paket

Monatliche Verkaufsdateien von 9 Läden in einem Excel-Bericht zusammenführen

So wird es gestartet

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Ordner: sales/2026-10, 9 Dateien gefunden
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 Zeilen
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 Zeilen
2026-11-02 09:14:04 WARN  shop-07.csv: 3 Zeilen ohne Preis übersprungen (Zeilen 88, 412, 913)
2026-11-02 09:14:05 INFO  Fertig: 10.412 Zeilen -> report-2026-10.xlsx (Tabellenblätter „Verkäufe“ und „Summen“)

Einstellungen statt Code

Die Spaltennamen jedes Ladens stehen in settings.ini, daher ist ein neuer Laden oder eine umbenannte Spalte nur eine Zeile dort:

[columns]
date = Datum, Verkaufsdatum, Tag
product = Artikel, Produkt, Bezeichnung
quantity = Menge, Anzahl, Stk.
price = Preis, Einzelpreis

Ein Teil des Codes

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Liest die Datei eines Ladens ein und gibt ihr die Spaltennamen des Berichts."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: keine Spalte für '{name}' (gesucht wurde nach {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Dateien: ein ZIP-Archiv mit merge_sales.py (310 Zeilen), settings.ini, requirements.txt und einer README dazu, wie man Python installiert, das Skript startet und was jede Meldung im Protokoll bedeutet. Der Kunde startet es auf seinem eigenen Computer.

Kunde: eine kleine Kette von 9 Schreibwarenläden; jeder Laden schickt seine Monatsverkäufe als CSV- oder Excel-Datei, mit leicht unterschiedlichen Spaltennamen. Aufgabe: ein Skript, das jede Datei in einem Ordner einliest, die Spalten in eine einheitliche Form bringt und einen einzigen Excel-Bericht mit allen Verkäufen und einem Tabellenblatt mit Summen pro Laden schreibt.

Kunde und alle Angaben sind erfunden.

Über diese Leistung

Wenn Sie Bestellungen oder Arbeitsstunden in einer Google Tabelle führen, bedeutet jede Rechnung von Hand, Kunde, Positionen und Summen in ein Dokument zu kopieren und ein PDF zu speichern. Dieses Google Apps Script ergänzt Ihre Tabelle um eine Schaltfläche: Es füllt Ihre eigene Rechnungsvorlage in Google Docs oder Google Tabellen mit den Daten der Zeile, speichert ein PDF mit dem gewünschten Namen in einem Drive-Ordner und trägt den Link wieder in die Zeile ein. Ab Standard kommt es mit mehreren Positionszeilen und der Nummerierung zurecht; Premium kann jedes PDF aus Ihrem Gmail an Ihren Kunden senden. Summen, Steuern und Formulierungen kommen aus Ihrer Tabelle und Vorlage: Das Skript rechnet so, wie Sie es beschreiben, und gibt keine Steuer- oder Buchhaltungsberatung, prüfen Sie also die ersten Rechnungen. Sie installieren und starten es in Ihrem Google-Konto.

Was enthalten ist

  • Das erhalten SieEin ZIP-Archiv mit dem Apps-Script-Code und einer README, die zeigt, wie Sie ihn zu Ihrer Tabelle und Vorlage hinzufügen; der Code wird auch auf der Bestellseite angezeigt.
  • Ihre eigene VorlageIhr Layout, Ihr Logo und Ihre Formulierungen in Google Docs oder Google Tabellen
  • PDF in DriveBenannt nach Nummer, Kunde und Datum, im festgelegten Ordner
  • Link in der ZeileSie sehen, welche Zeilen schon eine Rechnung haben
  • NummerierungAb Standard die nächste Nummer aus Ihrer Tabelle
  • Lesbarer CodeMit Kommentaren, ein Feld lässt sich später leicht ändern

So funktioniert es

  1. 1
    VorlageSie schicken die Spalten der Tabelle und Ihre Rechnungsvorlage
  2. 2
    CodeWir schreiben das Skript und die Installationsanleitung
  3. 3
    AusprobierenSie erstellen Testrechnungen in einer Kopie der Tabelle und prüfen die Summen
  4. 4
    ÜberarbeitungenSie wünschen Überarbeitungen im Rahmen Ihres Pakets und schicken etwaige Fehlermeldungen

Was wir von Ihnen brauchen

Die Spaltennamen Ihrer Tabelle mit zwei oder drei Zeilen erfundener Daten, Ihre Rechnungsvorlage (ein Google-Dokument oder eine Google Tabelle oder ein PDF einer Rechnung, die Sie derzeit verschicken) mit den Stellen, an die jeder Wert kommt, und wie Summen berechnet werden: Steuersatz, Rabatte, Währung und Rundung, wie Ihr Steuerberater es vorgibt. Wie Rechnungen nummeriert und benannt werden, der Drive-Ordner für die PDFs und für Premium der E-Mail-Text an den Kunden.

Wir fragen Sie:

  • Wofür stellen Sie Rechnungen?
  • Welche Spalten hat die Tabelle?
  • Wie sieht Ihre Rechnung aus?
  • Wie werden Summen berechnet?

Pakete vergleichen

PaketeBasisEine Rechnung nach der anderen15 €StandardRechnungen mit Einstellungen30 €PremiumRechnungstool60 €
Lieferzeit1 Tag2 Tage3 Tage
Überarbeitungen123
Codebis zu 150 Zeilenbis zu 400 Zeilenbis zu 1.000 Zeilen
Code-Dateien1bis zu 3bis zu 8
EinstellungsdateiNeinJaJa
Verständliche Fehlermeldungen und ein ProtokollNeinJaJa
Startoptionen und eine Anleitung für den zeitgesteuerten StartNeinNeinJa
Anleitung zu Installation und Start (README)JaJaJa
SpracheGoogle Apps ScriptGoogle Apps ScriptGoogle Apps Script
Bestellen BasisBestellen StandardBestellen Premium

Zahlungsschutz

Sie bezahlen bei der Bestellung, aber das Geld wird nur für abgenommene Arbeit freigegeben.

  • FestpreisDer Paketpreis ändert sich nach der Zahlung nicht mehr.
  • Das Geld wird reserviertBei der Zahlung wird der Betrag nur reserviert. Freigegeben wird er erst, wenn Sie die Arbeit abnehmen.
  • Vor der Lieferung geprüftJedes Ergebnis durchläuft eine Qualitätsprüfung, bevor es Sie erreicht, und Sie sehen es auf der Bestellseite, bevor Sie es abnehmen.
  • Kostenlose ÜberarbeitungenFordern Sie Überarbeitungen im Rahmen Ihres Briefings so oft an, wie das Paket es erlaubt.
  • Abnahme nach 3 TagenWenn Sie die Arbeit innerhalb von 3 Tagen nach der Lieferung weder abnehmen noch eine Überarbeitung anfordern, gilt sie automatisch als abgenommen. Schreiben Sie nach der Lieferung im Bestell-Chat, wartet die Bestellung; sobald wir antworten, können wir die 3 Tage neu starten und teilen das im Chat mit.
  • Neuanfertigung oder volle RückerstattungWenn das Ergebnis nicht Ihrem Briefing entspricht und die Überarbeitungen das nicht behoben haben oder die Arbeit mehr als doppelt so lange dauert wie die Frist, schreiben Sie im Bestell-Chat: Wir erstellen die Arbeit neu oder erstatten die Zahlung vollständig.
So funktioniert es →

Fragen und Antworten

Sind die Rechnungen rechtlich korrekt?

Das Skript füllt aus, was Ihre Vorlage und Tabelle enthalten, und rechnet so, wie Sie es beschreiben. Was eine Rechnung in Ihrem Land enthalten muss, entscheiden Sie oder Ihr Steuerberater; wir geben keine Steuer- oder Rechtsberatung.

Kann es die Rechnungen per E-Mail senden?

Im Premium-Paket ja: aus Ihrem eigenen Gmail an die Adresse in der Zeile, innerhalb des täglichen Versandlimits, das Google für Ihr Konto festlegt. Sie können den Versand abschalten und nur PDFs speichern.

Kann es Zahlungen annehmen oder mit meinem Buchhaltungsprogramm verbunden werden?

Nein, es erstellt PDFs. Einen Zahlungslink, den Sie bereits haben, kann es als Text aus Ihrer Tabelle auf die Rechnung drucken.

Bekommen Sie Zugriff auf mein Drive?

Nein. Sie fügen den Code selbst zu Ihrer Tabelle hinzu und erlauben ihm den Zugriff. Wir melden uns nie in Ihrem Google-Konto an.

Keine Antwort gefunden?

Pakete