Erstellen einer Tabelle aus der nummerierten Liste mithilfe von ONLYOFFICE-Makros
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.
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.