So drucken Sie Etiketten automatisch aus Google Sheets
Ihre Etikettendaten liegen bereits in Google Sheets. Die Zeilen sind da, die Spalten sind konsistent, und trotzdem exportiert jede Woche jemand eine CSV-Datei, lädt sie irgendwo hoch und klickt auf Drucken. In dieser Anleitung geht es darum, diese Person aus dem Ablauf zu entfernen.
Am Ende haben Sie eine wiederholbare Pipeline: ein Sheet, das als Datenquelle dient, ein Etikettendesign in RSJ LPSNG, das auf Ihre Spalten abgebildet wird, und einen Trigger, der Druckaufträge übermittelt – an einen Drucker, ein PDF oder ein PNG –, sobald sich Ihre Daten ändern. RSJ LPSNG (lpsng.rsj.de) ist die verwaltete Plattform für Etikettendesign und -druck, die beide Seiten verbindet: Sie bietet ein Google Sheets Add-on für die interaktive Nutzung und eine Web-Service-API für die Automatisierung, sodass Sie den Druckpfad nie wieder manuell anfassen müssen.
Dies ist für Entwickler und Power-User von Tabellenkalkulationen geschrieben, die wiederkehrende Etiketten benötigen – Produktetikiketten, Versandetiketten, auftragsspezifische Beschriftung –, nicht einen einmaligen Drucklauf.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Google-Konto mit Zugriff auf Google Sheets und der Berechtigung, Add-ons zu installieren.
- Ein RSJ LPSNG-Konto (Cloud- oder Embedded-Edition) mit Zugriff auf das Etikettendesign-Studio und das Google Sheets Add-on.
- Grundlegende Vertrautheit mit Google Sheets-Funktionen. Kenntnisse in Google Apps Script sind optional, aber für die vollständige Automatisierung erforderlich.
- Etikettendaten, die in einem Sheet organisiert sind: eine Zeile pro Etikett, mit Spalten für die Felder, die Ihr Etikett benötigt.
- Für API-gesteuerte Automatisierung: OAuth2-Anmeldedaten für den LPSNG-Web-Service. Siehe die OAuth2-Dokumentation für den vereinfachten Registrierungsablauf.
Schritt 1: Bereiten Sie Ihr Google Sheet als Datenquelle vor
Beginnen Sie mit den Daten, nicht mit dem Design. Ein vorhersehbares Sheet ist das, was alles Nachgelagerte langweilig macht – im guten Sinne.
Strukturieren Sie es mit einer einzelnen Kopfzeile und einer Zeile pro Etikett:
| SKU | ProductName | Price | Barcode |
|---|---|---|---|
| RSJ-1001 | Espresso Beans 250 g | 8.90 | 4006381333931 |
| RSJ-1002 | Filter Papers 100 pcs | 4.50 | 4006381333948 |
Ein paar Regeln, die später Zeit sparen:
- Eine Zeile = ein Etikett. Führen Sie keine Zellen zusammen; zusammengeführte Zellen brechen Bereichslesevorgänge in Apps Script.
- Konsistente Spaltentypen. Wenn
Priceeine Zahl ist, halten Sie sie als Zahl. Gemischte Typen führen zu unvorhersehbarer Formatierung auf dem Etikett. - Kopfzeilennamen sind Ihre Feldnamen. Sie werden Etikettenfelder an diese Kopfzeilen binden, daher ist
ProductNamebesser alsName(mit einem nachgestellten Leerzeichen). - Halten Sie Nachschlagdaten getrennt. Wenn ein Produktstamm oder eine Preisliste in einem anderen Tab oder Bereich liegt, lassen Sie sie dort und verknüpfen Sie sie beim Lesen. Die Excel-Schnittstelle von LPSNG unterstützt Nachschlagdateien für tabellenkalkulationsgesteuertes Drucken, und dieselbe Trennung der Zuständigkeiten gilt für Sheets.
- Verwenden Sie benannte Bereiche für den Datenblock (z. B.
LabelData), wenn Sie ihn skripten möchten. Er übersteht Zeileneinfügungen besser alsA2:E500.
Schritt 2: Entwerfen Sie Ihr Etikett in LPSNG
Öffnen Sie das LPSNG-Etikettendesign-Studio und erstellen Sie ein neues Layout – oder beginnen Sie mit einer vorhandenen Vorlage, wenn eine zu Ihrem Etikettenmaterial passt.
Binden Sie dann die Felder:
- Ziehen Sie ein Textelement auf die Arbeitsfläche und binden Sie es an die Spalte
ProductName. - Fügen Sie ein weiteres für
Pricehinzu und formatieren Sie es so, wie es auf dem physischen Etikett erscheinen soll. - Fügen Sie ein Barcode- oder QR-Element hinzu und binden Sie es an
Barcode. RSJ LPSNG unterstützt sowohl 1D- als auch 2D-Barcodeformate – die vollständige Liste finden Sie in der Dokumentation zu Barcodeformaten. - Speichern Sie das Design und notieren Sie die Etiketten-ID oder den Namen. Dies ist der Handle, den Sie an das Add-on und an die API übergeben.
Optional, aber nützlich: Die Field Script API ermöglicht es Ihnen, einen Python-Skriptblock an ein Feld anzuhängen, sodass Werte vor dem Druck transformiert werden – Leerzeichen entfernen, eine SKU in Großbuchstaben umwandeln oder einen Namen und eine Variante verketten. Die genauen Objektnamen und Methoden sind in der Python-API dokumentiert; die Form eines Feldskripts sieht ungefähr so aus:
# Illustrative only — see the Field Script API docs for the real object names.
value = field.value.strip()
field.value = value.upper()
Formatierungslogik im Etikettendesign zu belassen bedeutet, dass Ihr Sheet saubere Daten bleibt und Ihre Druckausgabe konsistent bleibt.
Schritt 3: Verbinden Sie Google Sheets mit LPSNG über das Add-on
Dieser Schritt beweist, dass der gesamte Pfad funktioniert, bevor Sie ihn automatisieren.
- Installieren Sie das RSJ LPSNG Google Sheets Add-on aus dem Google Workspace Marketplace.
- Öffnen Sie Ihr Daten-Sheet und starten Sie das Add-on über das Menü Erweiterungen.
- Authentifizieren Sie sich bei Aufforderung gegenüber Ihrem LPSNG-Konto. Dies läuft über den OAuth2-Ablauf – dasselbe vereinfachte Registrierungsprotokoll, das in der OAuth2-Dokumentation beschrieben ist.
- Wählen Sie das Etikettendesign aus, das Sie in Schritt 2 gespeichert haben.
- Ordnen Sie Ihre Sheet-Spalten den Etikettenfeldern zu. Wenn Ihre Kopfzeilen mit Ihren Feldbindungen übereinstimmen, ist dies größtenteils ein Bestätigungsschritt.
- Drucken oder exportieren Sie Etiketten für eine Handvoll ausgewählter Zeilen.
Wenn dies korrekte Etiketten erzeugt, ist die Zuordnung richtig. Alles in den nächsten beiden Schritten ruft lediglich dieselbe Operation ohne anwesende Person auf.
Der mühsame Weg: das Sheet manuell nach CSV exportieren, es in eine Druckwarteschlange hochladen, bei jeder Änderung wiederholen. LPSNG ersetzt das durch eine einzige Add-on-Aktion – oder einen einzigen API-Aufruf.
Schritt 4: Automatisieren Sie den Druck mit Triggern oder der Web-Service-API
Für geplantes oder ereignisgesteuertes Drucken wechseln Sie aus Google Apps Script zur LPSNG-Web-Service-API. Die API übermittelt Druckaufträge, rendert einzelne Etiketten als PDF oder PNG und kann Aufträge direkt an einen Drucker senden.
Bestätigen Sie zunächst, wie Sie ein Token erhalten. Das OAuth2-Modell von LPSNG verwendet ein vereinfachtes Registrierungsprotokoll, das darauf ausgelegt ist, externe Systeme mit einer einzigen URL zu verbinden – prüfen Sie die OAuth2-Dokumentation für die genaue Token-Anfrage, die Ihr Konto verwendet.
Umschließen Sie dann die Übermittlung mit einer Funktion. Der Endpunktpfad und das Payload-Schema sind in der Dokumentation zur Webservice-Schnittstelle definiert; die folgende Struktur zeigt die Form des Aufrufs.
// Constants — replace with the values from the Webservice Interface docs
const LPSNG_API_BASE = 'https://<your-lpsng-instance>';
const PRINT_ENDPOINT = '<path from the Webservice Interface docs>';
const LABEL_ID = 'product-label-a4';
function getAccessToken() {
// OAuth2 token acquisition — see the OAuth2 documentation.
// Cache the token; do not request a new one per label.
return PropertiesService.getScriptProperties().getProperty('LPSNG_ACCESS_TOKEN');
}
function submitLabels(rows) {
const payload = {
label: LABEL_ID,
// One entry per label to print
data: rows.map(r => ({
ProductName: r.ProductName,
Price: r.Price,
Barcode: r.Barcode
})),
output: 'pdf' // render to PDF/PNG, or send straight to a printer
};
const res = UrlFetchApp.fetch(LPSNG_API_BASE + PRINT_ENDPOINT, {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + getAccessToken() },
payload: JSON.stringify(payload),
muteHttpExceptions: true
});
return JSON.parse(res.getContentText());
}
Wenn Sie den Druckschritt lieber lokal und skriptfähig halten möchten, ist der LPSNG Player eine eigenständige Kommandozeilen-Druckmaschine: Paket plus Daten hinein, PDF/PNG/JSON/Druck/ESL heraus. Es ist dasselbe Etikettenpaket, angetrieben von einer Shell statt von einem HTTP-Aufruf.
# LPSNG Player — package + data in, output out
lpsng-player --package product-label.lps --data rows.json --output labels.pdf
Schritt 5: Richten Sie wiederkehrende Automatisierung ein (zeitgesteuert oder bei Bearbeitung)
Hängen Sie nun den Trigger an. Zwei Muster decken die meisten Fälle ab.
Zeitgesteuert – prüfen Sie stündlich auf neue Zeilen. Gut für batchorientierte Workflows, bei denen eine Verzögerung von ein paar Minuten in Ordnung ist.
function installHourlyTrigger() {
ScriptApp.newTrigger('printNewRows')
.timeBased()
.everyHours(1)
.create();
}
Bei Bearbeitung – drucken Sie in dem Moment, in dem eine Zeile hinzugefügt oder geändert wird. Gut für auftragsspezifische Beschriftung, bei der jemand auf die Ausgabe wartet.
function onEditHandler(e) {
const sheet = e.range.getSheet();
if (sheet.getName() !== 'Labels') return;
if (e.range.getRow() === 1) return; // ignore the header row
printNewRows();
}
Beide rufen denselben Worker auf, wo Sie die Idempotenz handhaben. Der einfachste zuverlässige Mechanismus ist eine Statusspalte:
const SHEET_NAME = 'Labels';
const STATUS_COL = 5; // column E: blank or "pending" / "printed"
function printNewRows() {
const sheet = SpreadsheetApp.getActive().getSheetByName(SHEET_NAME);
const values = sheet.getDataRange().getValues();
const header = values.shift();
const pending = [];
values.forEach((row, i) => {
const status = row[STATUS_COL - 1];
if (!status || status === 'pending') {
pending.push({
rowNumber: i + 2,
data: Object.fromEntries(header.map((h, c) => [h, row[c]]))
});
}
});
if (!pending.length) return;
const result = submitLabels(pending.map(p => p.data));
// Adjust this check to the response fields your API version returns.
if (result && result.error) {
MailApp.sendEmail('ops@example.com', 'LPSNG print job failed',
JSON.stringify(result));
return;
}
pending.forEach(p => sheet.getRange(p.rowNumber, STATUS_COL).setValue('printed'));
}
Bei höheren Volumen bündeln Sie Zeilen in einem einzigen API-Aufruf, anstatt eine Anfrage pro Zeile zu schleifen, und lassen Sie die LPSNG-Jobwarteschlange die resultierenden Druckaufträge verwalten und überwachen.
Schritt 6: Überprüfen und überwachen Sie Ihren automatisierten Druck
Automatisierung, die Sie nicht beobachten, ist Automatisierung, der Sie nicht vertrauen. Vier Prüfungen halten sie ehrlich:
- Jobwarteschlange. Sehen Sie sich die LPSNG-Jobwarteschlange an, um erfolgreiche Übermittlung und Abschluss jedes Auftrags zu prüfen.
- Ausgabeprüfung. Öffnen Sie das generierte PDF oder PNG und vergleichen Sie es mit den Quellzeilen – insbesondere Barcodewerte und Preisformatierung.
- Statusspalte. Zeilen, die mit
printedmarkiert sind, sind verarbeitet; Zeilen, die leer oderpendingsind, sind es nicht. Dies ist sowohl Ihr Fortschrittsindikator als auch Ihr Duplikatschutz. - Fehlerbenachrichtigungen. Umschließen Sie API-Aufrufe mit Fehlerbehandlung und senden Sie sich bei einem Fehler eine E-Mail.
MailAppvon Apps Script reicht für kleine Volumen; prüfen Sie das Ausführungsprotokoll unter Ausführungen im Apps Script-Editor, wenn etwas stillschweigend stoppt.
Fehlerbehebung bei häufigen Problemen
Authentifizierungsfehler. Token laufen ab. Stellen Sie sicher, dass Ihr Skript sie aktualisiert, anstatt einen veralteten Wert wiederzuverwenden, bestätigen Sie, dass die Scopes mit dem übereinstimmen, was der Web-Service erfordert, und authentifizieren Sie das Add-on erneut, wenn Sie das Konto gewechselt haben.
Probleme bei der Datenzuordnung. Spaltenkopfzeilen müssen mit den Feldbindungen in Ihrem Etikettendesign übereinstimmen. Eine umbenannte Kopfzeile ist die häufigste Ursache für leere Felder. Prüfen Sie auch auf leere oder fehlerhafte Werte – eine leere Barcodezelle erzeugt ein unlesbares Symbol.
Fehlgeschlagene Druckaufträge. Bestätigen Sie, dass der Drucker erreichbar ist und dass der richtige Drucker in LPSNG ausgewählt ist. Für Cloud-Druckszenarien überprüfen Sie, dass die in der Cloud-Druck-Dokumentation beschriebene Problemumgehung für Thermodrucker konfiguriert ist.
Doppelte Etiketten. Beschränken Sie Übermittlungen immer auf eine Statusspalte oder eine eindeutige Job-ID pro Zeile. On-Edit-Trigger plus Wiederholungsversuche ohne Schutz drucken gerne dasselbe Etikett zweimal.
Leistung. Bündeln Sie Anfragen, vermeiden Sie viele Aufträge in einem kurzen Zeitfenster und nutzen Sie die Jobwarteschlange, um Spitzen abzufedern, anstatt die API zu überlasten.
FAQ
Muss ich Entwickler sein, um den automatischen Etikettendruck aus Google Sheets einzurichten? Nicht unbedingt. Das RSJ LPSNG Google Sheets Add-on bietet eine No-Code-Möglichkeit, Etiketten aus Ihrem Sheet zu drucken. Für die vollständige Automatisierung – geplantes oder ereignisgesteuertes Drucken – ist jedoch etwas Skripting mit Google Apps Script und der LPSNG-Web-Service-API erforderlich. Die API verwendet OAuth2 und JSON, daher helfen grundlegende Entwicklungsfähigkeiten.
Kann ich direkt aus Google Sheets auf einen physischen Drucker drucken? Ja, über RSJ LPSNG. Die Plattform kann Druckaufträge direkt an Drucker senden, einschließlich Thermodrucker. Für Cloud-Druckszenarien bietet LPSNG eine Problemumgehung für die Verwendung von Thermodruckern mit Google Cloud Print. Sie können Etiketten auch als PDF oder PNG für den manuellen Druck rendern.
Welche Etikettenformate und Barcodearten werden unterstützt? RSJ LPSNG unterstützt eine breite Palette von 1D- und 2D-Barcodeformaten. Sie können Etiketten mit Text, Barcodes und anderen Elementen im Etikettendesign-Studio gestalten. Die genaue Liste der unterstützten Barcodeformate finden Sie in der LPSNG-Dokumentation unter Barcodeformate.
Gibt es ein Limit für die Anzahl der Etiketten, die ich automatisch drucken kann? Die Limits hängen von Ihrer LPSNG-Edition und Bereitstellung ab. Die Cloud-Lösung ist mandantenfähig und skalierbar, während die Embedded-Edition auf einem Einplatinencomputer läuft. Für die Automatisierung mit hohem Volumen hilft die Jobwarteschlange, Druckaufträge zu verwalten. Prüfen Sie die Details der jeweiligen Edition auf etwaige Einschränkungen.
Fazit: Optimieren Sie Ihren Etikettendruck-Workflow
Die vollständige Pipeline besteht aus sechs Schritten: das Sheet strukturieren, das Etikett gestalten, mit dem Add-on verbinden, die Übermittlung automatisieren, einen Trigger anhängen, die Ausgabe überprüfen. Sobald sie eingerichtet ist, wird aus einer neuen Tabellenzeile ein gedrucktes Etikett ohne Exportschritt und ohne Copy-Paste – und eine Statusspalte sagt Ihnen genau, was mit jeder Zeile passiert ist.
RSJ LPSNG ist genau für diese Art wiederkehrender Arbeit gebaut. Da es ein verwalteter Dienst ist, wird der Druckpfad – Rendering, Jobwarteschlange, Drucker-Dispatch – für Sie abgewickelt, und dasselbe Etikettendesign funktioniert über Cloud-, Embedded- und Enterprise-Editionen hinweg, je nachdem, wo Sie es ausführen müssen.
Beginnen Sie mit dem Google Sheets Add-on, um Ihre Zuordnung an einer Handvoll Zeilen zu beweisen, und wechseln Sie dann zur Web-Service-API, wenn Sie bereit sind, den manuellen Trigger zu entfernen. Beide sind von der Produktseite aus dokumentiert.
Verwandte Beiträge
- How to Create QR Code Labels in Bulk Efficiently
- Label Printing for Small Business Owners: A Complete Guide
- Barcode Label Software vs Online Label Maker: Which Is Right for You?
