Inicio
» Cómo
»
Limpiar el texto de una hoja de cálculo con una macro reutilizable de ONLYOFFICE.
Limpiar el texto de una hoja de cálculo con una macro reutilizable de ONLYOFFICE.
Para limpiar hojas de cálculo de forma repetible, cree una pequeña macro de JavaScript en el Editor de hojas de cálculo, seleccione solo el rango de texto que desea modificar y pruébela primero en una copia del libro de trabajo. El siguiente ejemplo elimina los caracteres no imprimibles y recorta los espacios en blanco adicionales de una columna de correo electrónico, manteniendo todas las filas en su lugar.
Las macros de ONLYOFFICE se ejecutan dentro del editor y utilizan su API de JavaScript de Office. La documentación oficial aún describe el flujo de trabajo como abrir Vista > Macros , escribir o pegar el código y ejecutarlo en el editor; ningún cambio reciente identificado en la documentación actual altera este proceso básico. La macro en sí es un script ilustrativo y reutilizable, no un informe de una prueba de software. Consulte la guía de inicio rápido de macros de ONLYOFFICE y la referencia de la pestaña Vista del editor de hojas de cálculo .
Prepare una copia segura y defina la limpieza.
Supongamos que un libro de trabajo contiene una lista de contactos con un encabezado en la fila 1 y direcciones de correo electrónico en la columna B, desde B2 hasta B500. Algunos valores importados pueden contener saltos de línea, tabulaciones o espacios iniciales y finales. Este ejemplo limpia únicamente esa columna de texto. Ajuste el rango para que coincida con su hoja de cálculo antes de ejecutar el código.
Guarda una copia aparte del libro de trabajo o duplica la hoja de cálculo. Mantén el original intacto hasta que hayas comprobado el resultado.
Confirme que el rango seleccionado contiene texto sin formato, no fórmulas, identificadores que dependan de espacios o datos que deban conservar un espaciado exacto.
Mantenga la fila de encabezado fuera del rango. La macro no detecta los encabezados ni decide qué columnas se pueden modificar sin riesgo.
Utilice un rango específico para una columna, como B2:B500, en lugar de todo el rango utilizado. Borrar todas las celdas indiscriminadamente puede modificar nombres, direcciones, códigos o resultados de fórmulas de forma no deseada.
En esta vista ilustrativa del editor, la pestaña Vista y el comando Macros aparecen encima de la hoja de cálculo. Ábrala después de crear una copia de trabajo y confirmar qué columna contiene el texto que desea limpiar.
Abra el editor de macros y agregue el script.
Abra el libro de trabajo en el editor de hojas de cálculo de ONLYOFFICE. Seleccione Ver > Macros para abrir el editor de macros y, a continuación, cree una macro o reemplace el código inicial en el editor. Las macros de ONLYOFFICE utilizan la sintaxis de JavaScript y la API de Office; no son macros de VBA. El flujo de trabajo de las macros del editor y los métodos de API compatibles se describen en la guía oficial de introducción a las macros .
Pegue este ejemplo y luego cámbielo B2:B500por su rango de texto real:
(function () {
var sheet = Api.GetActiveSheet();
var range = sheet.GetRange("B2:B500");
var rows = range.GetValue();
var functions = Api.WorksheetFunction;
for (var i = 0; i < rows.length; i++) {
var value = rows[i][0];
if (typeof value === "string") {
value = functions.CLEAN(value);
rows[i][0] = value.replace(/^\s+|\s+$/g, "")
.replace(/\s{2,}/g, " ");
}
}
range.SetValue(rows);
})();
La macro lee el rango en una matriz bidimensional, procesa las celdas de cadena y vuelve a escribir la matriz en ese mismo rango. CLEANElimina los caracteres no imprimibles; las dos sustituciones de expresiones regulares eliminan los espacios en blanco en los bordes y reducen los espacios en blanco repetidos dentro de una cadena a un solo espacio. La referencia de la API confirma GetValueque puede devolver una matriz bidimensional para un rango y que SetValueacepta matrices; las referencias de GetValue , SetValue y CLEAN documentan estas llamadas.
Dado que el script sobrescribe valores, no lo dirija a celdas que contengan fórmulas: estas celdas podrían ser reemplazadas por sus valores calculados actuales. Tampoco elimina registros duplicados, no estandariza el uso de mayúsculas, no valida si una dirección es válida ni cambia el formato de los números de teléfono. Estas son reglas de limpieza independientes que deben diseñarse y probarse por separado.
En esta vista ilustrativa del editor de macros, el área de código y el control Ejecutar se sitúan encima de la hoja de cálculo activa. El script de limpieza del artículo utiliza los métodos documentados de lectura y escritura de rangos que se muestran aquí como un ejemplo simplificado de la API.
Ejecútalo en un rango controlado.
Verifique nuevamente el rango literal. Si la lista termina en la fila 240, por ejemplo, utilice B2:B240 en lugar de procesar cientos de filas no utilizadas.
Haz clic en Ejecutar en el editor de macros. Si el editor muestra un error de sintaxis, revisa las comillas, los paréntesis y las llaves antes de cambiar el rango o añadir más lógica.
Regresa a la hoja de cálculo e inspecciona varias celdas, incluyendo un valor que necesitaba corrección, un valor que ya estaba en el formato correcto y una celda en blanco.
Comenzar con un rango estrecho facilita la comprensión del efecto. Una vez que el resultado sea correcto, puede reutilizar la macro en otra hoja modificando el rango manualmente. No dé por sentado que una letra de columna o un límite de fila seguirá siendo válido en otro libro de trabajo.
Si falta el comando Macros o el código no se ejecuta, compruebe si las macros están habilitadas en el editor o deshabilitadas por la configuración de la aplicación host. En el editor en línea, un administrador puede controlar la disponibilidad de las macros; la configuración avanzada del Editor de hojas de cálculo del producto describe las opciones de macros visibles para el usuario. Evite habilitar la ejecución automática para archivos de fuentes desconocidas; ejecute solo código que comprenda.
Esta hoja de contactos ilustrativa muestra un tipo de datos práctico para una macro de limpieza de texto, siempre que el rango seleccionado contenga solo el campo de texto deseado y excluya el encabezado.
Verifique el resultado antes de reutilizar la macro.
Compara la columna corregida con la copia original en lugar de juzgar el éxito únicamente por su apariencia. Confirma que cada correo electrónico no vacío se encuentre en la misma fila, que ningún contacto haya desaparecido y que las únicas diferencias sean los caracteres y el espaciado que pretendías normalizar. Revisa una muestra cerca del inicio, el medio y el final del rango seleccionado. Busca un espacio al principio o al final de un valor si tu editor lo permite, e inspecciona los valores importados que contenían saltos de línea o caracteres de control.
Compare también el número de filas y las fórmulas, filtros o búsquedas dependientes que utilicen la columna. Si el resultado de una fórmula cambió inesperadamente, deshaga la edición o restaure la copia de trabajo; la macro debe limitarse a celdas de texto sin formato. Para un libro de trabajo extenso o crítico para el negocio, compare la columna limpia completa con la copia de seguridad o utilice primero una columna de salida independiente para que los cambios puedan revisarse.
Esta hoja ilustrativa coloca las columnas de correo electrónico originales y depuradas una al lado de la otra con el mismo número de filas; compare sus valores reales antes de basarse en la columna depurada.
Mantener la limpieza repetible
Tras la primera ejecución correcta, guarde el libro de trabajo para que la macro permanezca disponible con el documento según el flujo de trabajo de macros del editor. No se debe asumir que una macro almacenada en un libro de trabajo aparecerá automáticamente en cada archivo nuevo. Para importaciones recurrentes, mantenga una plantilla limpia o una copia de origen protegida, documente el rango que espera la macro y actualícelo cuando cambie el diseño de la hoja. Las macros de ONLYOFFICE son útiles para reglas de limpieza deterministas; no pueden determinar si un valor es correcto o si un cambio es apropiado para su conjunto de datos.
El método fiable es sencillo: conservar una copia de la fuente, seleccionar un rango conocido, realizar una transformación definida y comparar el resultado antes de compartir o importar los datos a otro lugar.