Dieses Skript wandelt Textwerte (z.B. Produkt-IDs, Seriennummern) in Barcode-Bilder im Code-128-Format um und speichert sie als Bilder in SeaTable. Das Skript durchläuft alle Zeilen und überspringt solche, die bereits einen Barcode haben. Es eignet sich für die manuelle Ausführung oder als Automation.

Barcode Generator in SeaTable

Die Tabelle benötigt mindestens zwei Spalten:

  • Eine Text-Spalte mit dem Wert, der als Barcode kodiert werden soll (z.B. “Product ID”)
  • Eine Bild-Spalte, in die der erzeugte Barcode gespeichert wird (z.B. “Barcode”)

Passen Sie die drei Variablen am Anfang an Ihre Tabellenstruktur an. Das Erscheinungsbild des Barcodes können Sie über die options anpassen (Breite, Höhe, Schriftgröße, etc.).

from seatable_api import Base, context
import barcode
from barcode.writer import ImageWriter
from io import BytesIO

base = Base(context.api_token, context.server_url)
base.auth()

TABLE_NAME = "Table1"
TEXT_COLUMN = "Product ID"
IMAGE_COLUMN = "Barcode"

rows = base.list_rows(TABLE_NAME)
for row in rows:
    text = row.get(TEXT_COLUMN)
    existing = row.get(IMAGE_COLUMN)
    if not text or existing:
        continue

    code128 = barcode.get_barcode_class('code128')
    rv = code128(str(text), writer=ImageWriter())

    buf = BytesIO()
    rv.write(buf, options={"module_width": 0.4, "module_height": 10, "quiet_zone": 1, "font_size": 10, "text_distance": 2})
    buf.seek(0)

    info = base.upload_bytes_file(str(text) + '.png', buf.read(), file_type='image')
    base.update_row(TABLE_NAME, row['_id'], {IMAGE_COLUMN: [info.get('url')]})

print("Barcodes generated.")

Das Skript kann auf drei Arten gestartet werden:

  • Manuell im Python-Editor der Base
  • Per Automation (z.B. zeitgesteuert oder bei neuen Zeilen)
  • Per Schaltfläche — dafür müsste das Skript so angepasst werden, dass es nur die aktuelle Zeile verarbeitet

Mehr dazu erfahren Sie hier .

Die vollständige Funktionsreferenz finden Sie im SeaTable Developer Manual .