Erstellen einer Tabelle aus der nummerierten Liste mithilfe von ONLYOFFICE-Makros

12 Februar 2025Von Ksenija

Beim Arbeiten mit Dokumenten müssen wir nummerierte Listen häufig in Tabellen umwandeln, um die Lesbarkeit zu verbessern. Diese Aufgabe manuell auszuführen, kann zeitaufwändig sein. Glücklicherweise können Benutzer mit ONLYOFFICE-Makros sich wiederholende Aufgaben effizient automatisieren. In diesem Blogbeitrag bieten wir eine Schritt-für-Schritt-Anleitung zur Entwicklung eines ONLYOFFICE-Makros, das nummerierte Listen nahtlos in strukturierte Tabellen umwandelt.

How to to create a table from the numbered list using ONLYOFFICE macros

Erstellen des Makros

Abrufen des Dokuments und der nummerierten Absätze

Das Makro greift zunächst auf das aktive Dokument zu und ruft alle Absätze ab, die eine Nummerierung enthalten:

const oDocument = Api.GetDocument();
const paragraphs = oDocument.GetAllNumberedParagraphs();
  • Api.GetDocument() ruft das aktuell geöffnete Dokument ab.
  • oDocument.GetAllNumberedParagraphs() sammelt alle Absätze, die Nummerierungsstile verwenden.

Nummerierte Elemente in Zeilen anordnen

Das Skript durchläuft jeden nummerierten Absatz und sortiert sie in Tabellenzeilen:

let tableData = [];
let currentRow = [];

for (let i = 0; i < paragraphs.length; i++) {
    let level = paragraphs[i].GetNumbering().GetLevelIndex();
    let text = paragraphs[i].GetText().trim();

    if (level === 0) {
        if (currentRow.length > 0) {
            tableData.push(currentRow);
        }
        currentRow = [text];
    } else if (level === 1 && currentRow.length > 0) {
        currentRow.push(text);
    }
}

if (currentRow.length > 0) {
    tableData.push(currentRow);
}
  • Das Skript durchläuft alle Absätze und überprüft deren Nummerierungsebenen.
  • Elemente der Ebene 0 beginnen eine neue Zeile, während Elemente der Ebene 1 als Spalten an die aktuelle Zeile angehängt werden.
  • Nach der Verarbeitung werden alle erfassten Zeilen in tableData gespeichert.

Ermittlung der Dimensionen der Tabelle

Vor dem Erstellen der Tabelle ermittelt das Makro die Anzahl der benötigten Spalten. Das Skript berechnet maxColumns, indem es die längste Zeile in tableData findet. Dadurch wird sichergestellt, dass die Tabelle über genügend Spalten verfügt, um alle Elemente korrekt unterzubringen:

let maxColumns = 0;
for (let j = 0; j < tableData.length; j++) {
    if (tableData[j].length > maxColumns) {
        maxColumns = tableData[j].length;
    }
}

Erstellen und Füllen der Tabelle

Nachdem wir die Daten nun organisiert haben, erstellt das Makro eine Tabelle und fügt den extrahierten Inhalt ein:

let table = Api.CreateTable(maxColumns, tableData.length);
oDocument.Push(table);

for (let row = 0; row < tableData.length; row++) {
    for (let col = 0; col < tableData[row].length; col++) {
        table
            .GetCell(row, col)
            .GetContent()
            .GetElement(0)
            .AddText(tableData[row][col]);
    }
}
  • Api.CreateTable(maxColumns, tableData.length) erstellt eine Tabelle mit den erforderlichen Dimensionen.
  • Das Skript durchläuft tableData und fügt den entsprechenden Text in jede Zelle ein.

Fehlerbehandlung

Um eine reibungslose Ausführung zu gewährleisten, wird ein try…catch-Block verwendet, um Fehler abzufangen und zu protokollieren. Wenn ein Fehler auftritt, wird er in der Konsole protokolliert, was Benutzern beim Debuggen von Problemen hilft:

try {
    // Code execution
} catch (error) {
    console.log("Error: " + error.message);
}

Lassen Sie uns jetzt unser Makro ausführen und sehen, wie es funktioniert!

Wir hoffen, dass dieses Makro eine wertvolle Ergänzung Ihres Toolkits wird und Ihnen hilft, sich wiederholende Aufgaben in Ihrem Workflow zu vereinfachen. ONLYOFFICE-Makros sind darauf ausgelegt, Ihre Arbeit zu rationalisieren und die Effizienz zu steigern. Wir ermutigen Sie, unsere umfangreiche API-Bibliothek zu erkunden und benutzerdefinierte Makros zu erstellen, die auf Ihre Bedürfnisse zugeschnitten sind. Wenn Sie Ideen oder Vorschläge haben, können Sie sich gerne an uns wenden. Wir sind immer offen für neue Ideen und Zusammenarbeit! Viel Glück bei Ihren Erkundungsbemühungen!

Erstellen Sie Ihr kostenloses ONLYOFFICE-Konto

Öffnen und bearbeiten Sie gemeinsam Dokumente, Tabellen, Folien, Formulare und PDF-Dateien online.