Entfernen Sie zusätzliche Leerzeichen mit dem ONLYOFFICE-Makro

10 Oktober 2023By Vlad

Im Bereich der Textbearbeitung ist ein effizientes Makro, das unnötige Leerzeichen entfernt, unerlässlich. Es steigert die Produktivität und strafft den Arbeitsablauf. In diesem Blogbeitrag führen wir Sie durch die Erstellung eines ONLYOFFICE-Makros, mit dem Sie überflüssige Leerzeichen aus ausgewähltem Text entfernen können.

Remove extra spaces with ONLYOFFICE macro

Erstellung des Makros

Wir beginnen mit dem Zugriff auf das aktive Dokument und erfassen den ausgewählten Inhalt:

const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const rawText = oRange.GetText();

Dann löschen wir den markierten Text. Später wird er durch den formatierten Text ohne zusätzliche Leerzeichen ersetzt:

oRange.Delete();

Wir teilen rawText in ein Array von Absätzen auf der Grundlage von Zeilenumbrüchen auf. Jedes Element des Arrays paragraphs steht für einen Absatz des ursprünglichen Textes:

// Split the original word into an array of paragraphs based on newline characters
const paragraphs = rawText.split('\n');

Dann durchläuft die Schleife jeden Absatz im paragraphs-Array und bereinigt ihn, indem aufeinanderfolgende Leerzeichen durch ein einzelnes Leerzeichen ersetzt werden. Die bereinigten Absätze werden in dem Array cleanedParagraphs gespeichert:

const cleanedParagraphs = [];
// Clean each paragraph and store it in the cleanedParagraphs array
for (const paragraph of paragraphs) {
    // Use a regular expression to replace consecutive whitespaces with a single space
    const cleanedParagraph = paragraph.replace(/\s+/g, ' ');
    cleanedParagraphs.push(cleanedParagraph);
}

Nach dem Bereinigen der einzelnen Absätze verwenden wir die Methode join(‘\n’), um die bereinigten Absätze wieder zu einer einzigen Zeichenkette zusammenzufügen, wobei jeder bereinigte Absatz durch einen Zeilenumbruch (\n) getrennt wird. Dieser Schritt ist von entscheidender Bedeutung, da wir beim Einfügen von Text in ein Dokument eine einzige Zeichenfolge mit entsprechenden Absatzumbrüchen bereitstellen müssen:

// Join the cleaned paragraphs back together with newline characters
const cleanedText = cleanedParagraphs.join('\n');

Schließlich erstellen wir einen neuen Absatz (oParagraph) und fügen cleanedText in das Dokument ein. Dieser cleanedText enthält alle bereinigten Absätze in einer einzigen Zeichenkette mit Zeilenumbrüchen, damit die ursprüngliche Absatzstruktur erhalten bleibt:

// Insert the cleanedText with original paragraph structure
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(cleanedText);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });

Der gesamte Makrocode lautet wie folgt:

(function()
{
 const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const rawText = oRange.GetText();
oRange.Delete();

// Split the original word into an array of paragraphs based on newline characters
const paragraphs = rawText.split('\n');

// Create an array to store cleaned paragraphs
const cleanedParagraphs = [];

// Clean each paragraph and store it in the cleanedParagraphs array
for (const paragraph of paragraphs) {
    // Use a regular expression to replace consecutive whitespaces with a single space
    const cleanedParagraph = paragraph.replace(/\s+/g, ' ');
    cleanedParagraphs.push(cleanedParagraph);
}

// Join the cleaned paragraphs back together with newline characters
const cleanedText = cleanedParagraphs.join('\n');

// Insert the cleanedText with original paragraph structure
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(cleanedText);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });   
})();

Führen wir unser Makro aus und sehen wir, wie es funktioniert!

Wir hoffen, dass dieses Makro ein wertvoller Bestandteil Ihres Werkzeugkastens sein wird und Ihre Produktivität auf ein neues Niveau hebt. Mit ONLYOFFICE-Makros erschließen Sie sich das Potenzial für eine höhere Produktivität und erhalten Zugang zu effizienten und automatisierten Lösungen.

Wenn Sie sich an die Erstellung von Makros wagen, sollten Sie die Möglichkeiten der ONLYOFFICE-API nicht übersehen. Sollten Sie jemals Fragen oder innovative Gedanken haben, zögern Sie nicht, diese mit uns zu teilen, entweder über Kommentare oder indem Sie sich an uns wenden. Wir schätzen Ihren Input und freuen uns über das Potenzial der Zusammenarbeit! Wir wünschen Ihnen viel Erfolg bei Ihren Versuchen!