Reemplaza palabras en documentos con la macro de ONLYOFFICE

1 noviembre 2023By Sergey

La edición de documentos es un aspecto fundamental de nuestras tareas diarias, y a menudo buscamos herramientas que puedan aliviar la carga de las tareas repetitivas. En esta entrada del blog vamos a crear una macro diseñada para reemplazar palabras en el documento dentro de una selección.

Reemplaza palabras en el documento con la macro de ONLYOFFICE

Creación de la macro

En primer lugar, accedemos al documento actual en el editor de documentos. A continuación, nos dirigimos al texto seleccionado y capturamos los valores. Este rango es donde pretendemos encontrar y reemplazar las palabras:

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

A continuación, borramos el texto seleccionado:

oRange.Delete();

Asignamos la palabra que buscamos a la variable wordToFind, y la palabra por la que queremos sustituirla a replacementWord:

// Define the word to find and the word to replace it with
const wordToFind = "oldWord"; // Replace "oldWord" with the word you want to find
const replacementWord = "newWord"; // Replace "newWord" with the word you want to replace it with

Aplicamos una expresión regular al rawText (el texto dentro de nuestro rango seleccionado) para encontrar todas las instancias de wordToFind y reemplazarlas por replacementWord. La expresión regular con el indicador “g” garantiza que se sustituyan todas las apariciones. El texto modificado se almacena en la variable cleanedText:

// Use regular expression to find and replace the word
const cleanedText = rawText.replace(new RegExp(wordToFind, "g"), replacementWord);

Una vez finalizada la búsqueda y sustitución, creamos un nuevo párrafo dentro del documento utilizando Api.CreateParagraph(). En este párrafo, añadimos el texto con las palabras reemplazadas. Por último, volvemos a insertar el párrafo modificado en el documento:

// Insert the cleanedText with the original paragraph structure
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(cleanedText);
oDocument.InsertContent([oParagraph]);

La macro completa es la siguiente:

(function()
{
const oDocument = Api.GetDocument();
const oRange = oDocument.GetRangeBySelect();
const rawText = oRange.GetText();
oRange.Delete();
// Define the word to find and the word to replace it with
const wordToFind = "oldWord"; // Replace "oldWord" with the word you want to find
const replacementWord = "newWord"; // Replace "newWord" with the word you want to replace it with
// Use regular expression to find and replace the word
const cleanedText = rawText.replace(new RegExp(wordToFind, "g"), replacementWord);
// Insert the cleanedText with the original paragraph structure
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(cleanedText);
oDocument.InsertContent([oParagraph]);
})();

Ahora vamos a ejecutar nuestra macro para ver cómo funciona:

Esperamos que esta macro sea una adición útil a tu arsenal y agilice la edición de tus documentos. Las macros de ONLYOFFICE están diseñadas para elevar tu flujo de trabajo a nuevas alturas.

No te pierdas la oportunidad de aprovechar el poder de la API de ONLYOFFICE. Nuestra amplia biblioteca de métodos API es la llave para transformar tus ideas en realidad. Si tienes alguna pregunta o concepto innovador, te invitamos a compartirlo con nosotros. Tu opinión es muy valiosa, y nos entusiasma la posibilidad de colaborar contigo. Te deseamos mucha suerte en tus esfuerzos exploratorios.