Gestor tablas

Generando tablas HTML con WXTABLE

Imagen. Creando una tabla con WXTABLE

El Gestor de tablas WXTABLE tiene por objetivo principal crear tablas HTML. La idea partió de la necesidad de incorporar una muestra visual de una tabla en el tema redondeo de números. Hice la tabla en una aplicación de hoja de cálculo y capture la imagen para ponerla en ese tema. A partir de ahí pensé en crear una aplicación que pudiera generar y gestionar tablas HTML. En la Imagen puede ver una captura de la aplicación donde acabo de replicar aquella tabla.

La facilidad para ejecutarla se basa en el uso de botones como para combinar celdas. Y otros como para aplicar funciones suma, multiplicación, etc. Si has intentado hacer tablas tan simples como esta "a mano" directamente en HTML, habrás comprobado que es engorroso y no libre de errores.

Imagen. Exportando tabla a HTML

Una vez finalizada la edición de la tabla, podemos exportarla a HTML usando el botón como se observa en la Imagen. El estilo CSS se ubica en línea con el elemento (atributo style). O bien usando la opción Ubicar CSS arriba se insertará en un elemento STYLE para ubicar en el HEAD de la página.

Tendremos un CSS con el estilo general para todas las tablas WXTABLE de la página, insertándose en un elemento con id="css-wxtable". Ese estilo irá situado en primer lugar. Y a continuación otro CSS para el estilo particular de esa tabla. Así podemos disponer de más de una tabla WXTABLE en la misma página. El texto CSS y HTML puede descargarse en un archivo de texto, archivo que para este ejemplo ocupa 7.25 KB.

1234
1UdsPrecioImportes
2Sin redondeoCon redondeo
31711.015173,565173,57
41631.005163,815163,82
5Base imponible337,38337,39
6Impuesto0.0258,43458,43
7Total Factura345,8145345,82

Insertamos ese CSS y HTML en esta página produciendo el resultado adjunto, copia fiel del original editado en la aplicación.

Aparte de HTML, las tablas pueden exportarse en otros formatos como TSV (tab separated values), CSV (comma separated values), JSON y formato de texto txt. Con estos formatos sólo se exportan los valores. El formato wxtable nos permite descargarlas también como JSON, guardando además configuración, estilos, formatos, fórmulas, controles e imágenes con objeto de poder importarla (botón ) en un momento posterior y editarla nuevamente si fuera el caso.

En la mejora llevada a cabo el 05/09/2021 se incluye la exportación a XLSX. En la serie de temas que se inicia en Exportando a XLSX expongo los detalles para exportar desde WXTABLE a XLSX. Y dado que WXTABLE no es otra cosa que HTMLT+CSS, esos temas también servirán para adquirir conocimiento para exportar desde HTML+CSS a XLSX.

La herramienta Exportador XLSX nos permite trazar el proceso de ejecución del módulo xlsx.js, JavaScript que se encarga de exportar a XLSX contenidos creados en HTML+CSS en formato WXTABLE.

Información general de tablas WXTABLE

Puede ver esta ayuda también en Información WXTABLE.

Imagen. Menús contextuales y barra botones de WXTABLE

Versión de la aplicación: 14/11/2021

Esto es un resumen para el acceso de toda la ayuda disponible. Como se observa en la Imagen, en esta ayuda se trata de explicar la mayor parte de las acciones que podemos ejecutar con las entradas del menú contextual, acciones que también están accesibles en las barras de botones.

En la aplicación podrá acceder a distintas partes de esta ayuda con el botón . Aquí se expone toda la ayuda disponible.

Recursos vinculados con esta aplicación:

La licencia del uso del módulo de esta aplicación wxtables.js está limitada a mi autorización expresa, no aplicando lo que expone el apartado sobre licencias de la página Aviso legal, no pudiendo usar wxtables.js en parte ni en su totalidad sin antes solicitar una licencia, para lo cual puede usar la página de contacto o enviando un email a la dirección que aparece en esa página. Para el resto de módulos se aplicará la licencia que se expone en Aviso legal si no hubiera otra advertencia expresa en el código del módulo.

La siguiente lista de vínculos ayudará a buscar la información:

Configuración: "Versión"

Imagen. Configuración

En la configuración establecemos características generales de la aplicación. La primera configuración es el identificador de la versión de la aplicación con la que se creó la tabla. La versión actual de la aplicación es 14/11/2021. Este valor no se puede modificar, pero al exportar nuevamente la tabla se actualizará a la nueva versión.

Configuración: "Identificador tabla"

Fecha de creación de la tabla en formato numérico que se traduce como Sun Nov 14 2021 13:19:29 GMT+0000 (hora estándar de Europa occidental). Este valor no se puede modificar.

Configuración: "Nombre inicial hoja"

Nombre inicial hoja para el caso de reiniciar la hoja actual.

Configuración: "Nº inicial filas"

Número de filas iniciales para el caso de reiniciar la hoja actual.

Configuración: "Nº inicial columnas"

Número de columnas iniciales para el caso de reiniciar la hoja actual.

Configuración: "Color fondo selectores"

Color de fondo en selectores de fila, columna y en el texto del título de la tabla.

Configuración: "Color texto selectores"

Color de texto en selectores de fila, columna y en el texto del título de la tabla.

Configuración: "Salto de línea"

Saltos de línea a usar en salidas de texto, como en copiar o exportar tabla. Cuando exportamos en formato TXT sobre Windows, pudiera ser preferible un salto \r\n con objeto de que se presente adecuadamente en los archivos de texto en ese sistema operativo.

Configuración: "Alto máximo tabla en edición"

Con valor none no se limita la altura de la tabla. En otro caso se puede incluir una altura como 400px o 30em. Esta altura se limita solo cuando estamos en edición en pantalla, puesto que al imprimir o exportar HTML no se limita la altura.

Configuración: "Con barra de botones"

Activar o desactivar la barra de botones. Si la desactiva puede acceder a la configuración con el menú contextual sobre el título de la celda superior izquierda, donde aparece el menú para la tabla. Si el menú contextual también estuviera desactivado, no habría forma de volver a abrir la configuración para activar nuevamente la barra de botones.

Configuración: "Con área de texto"

Si selecciona esta opción, un área de texto para editar una celda se ubicará en la parte superior de la tabla.

Configuración: "Con menú contextual"

Permite activar o desactivar menú contextual sobre las filas, columnas y celdas de la tabla. Si la barra de botones también estuviera desactivada, no habría forma de volver a presentar la configuración.

Configuración: "Tamaño botones barra"

Número para dotar de ancho y alto a cada botón de la barra de botones.

Configuración: "Exportar selectores"

Los selectores de columna (títulos de columnas) y los selectores de filas pueden extraerse u ocultarse al exportar o imprimir.

Configuración: "Exportar iconos SVG"

Si utiliza los Iconos SVG de la aplicación, debe activar esta opción para exportar en HTML y al imprimir la colección de iconos que esté usando.

Configuración: "Ocultar rejilla al exportar"

Ocultar rejilla base al exportar HTML o imprimir.

Configuración: "Filas por página"

Imagen. Navegador de filas y páginas

Limita un número de filas por cada página. Puede ver un ejemplo en la muestra Varias páginas, donde se establece 12 filas por página. En este caso se activan los botones con doble flecha o en la barra de navegación (como se observa en la Imagen), donde la flecha sencilla o navega por filas y la doble navega por páginas.

Configuración: "Acciones máximas a deshacer"

El número máximo de acciones a deshacer y rehacer. Un número muy alto ocupará un exceso de memoria.

Configuración: "Presentar mensajes error cortos"

Imagen. Mensajes de error

Si intentamos calcular la expresión =a+1 en la primera celda, obtendríamos el siguiente mensaje de error #Error en ejecutarMetodo(): #Error en calcular(): #Error en obtenerRpn(): La expresión a+1 contiene caracteres no permitidos, como se observa en la Imagen. El mensaje contiene información de la cadena de funciones donde se genera el error. Si activa los mensajes de error cortos sólo aparecerá La expresión a+1 contiene caracteres no permitidos describiendo el error.

Configuración: "Avisar al cerrar"

Si activamos esta opción, cuando cerremos el navegador o la pestaña nos aparecerá un mensaje advirtiendo que se va a cerrar la página. El objetivo es que nos avise por si tuviéramos que hacer una copia antes de cerrar de la tabla en el formato wxtable por ejemplo. En una nueva tabla por defecto no se advierte al cerrar, por lo que si inadvertidamente se recarga la página, se perderá todo lo que se hubiese modificado.

Entrada datos: "Contenido celda"

Editar el contenido de una celda

Imagen. Editar contenido celda

Supongamos que tenemos que sumar dos celdas como las de la Imagen con los valores 123 y 456 y poner el resultado en la celda inferior. Podemos utilizar el área de texto para editar el contenido de la celda. O bien escribir dentro de la propia celda. En este caso ponemos la fórmula =[r-2c0]+[r-1c0] que suma los valores de las dos celdas anteriores.

Insertar una fórmula con el menú contextual

Imagen. Edición celda con menú contextual

Supongamos otra vez que tenemos que sumar dos celdas como las de la Imagen con los valores 123 y 456 y poner el resultado en la celda inferior. Para ello seleccionamos las tres celdas quedándonos en la tercera donde abrimos el menú contextual para buscar la entrada Formular y ahí la subentrada Suma. La acción rellenará la celda [R4C1] con la fórmula =[r-2c0]+[r-1c0] ejecutándose y poniendo el valor 579 como resultado. Si utiliza la entrada Operar, en lugar de usar la fórmula se limita a calcular el resultado y ponerlo en la celda [R4C1].

Formulario emergente para editar el contenido de la celda

Otra forma de insertar una fórmula y, en general, editar el contenido, es usando el formulario de edición de contenido de celda. Accedemos a ese formulario con el botón de la barra de botones. O con la entrada Editar del menú contextual.

Imagen. Edición celda con formulario emergente

En la Imagen puede ver que hay dos celdas con los valores 32 y 45 y una fórmula sumar([r-2c0], [r-1c0]) que suma esos dos valores devolviendo 77. Podemos escribir un valor o una expresión en el área de texto. Si seleccionamos la palabra "sumar", luego con el botón nos aparecerá, si existe, en el desplegable de Fórmulas. Con el botón podemos acceder a la ayuda de esa fórmula. La fórmula es sum, siendo add, sumar y suma otros alias que podemos usar para la misma fórmula. El botón nos permitirá copiar el texto y el botón borrarlo.

Imagen. Edición celda con selección de rangos

Los siguientes tres botones tienen relación con un rango de celdas seleccionadas. Una selección de celdas se muestra con un color de fondo, como las celdas con los valores 1 al 5 de la Imagen anterior, mientras que la celda activa es la seleccionada en la segunda columna desde donde hemos abierto el formulario de edición. Veáse que la celda activa es la intersección entre la fila y la columna resaltadas. Con el botón recuperamos la lista de valores =1,2,3,4,5 separados por coma. Con el botón recuperamos la expresión del rango absoluto =[R2C1]:[R6C1]. Con el botón recuperamos la expresión del rango relativo =[r0c-1]:[rc-1], relativo con respecto a la celda activa R2C2. Con el botón descubrimos la selección de celdas que interviene en una expresión.

El botón nos ofrece todos los iconos SVG que podemos usar para insertar como una fórmula =icon("key"). Por último el botón insertará un valor del desplegable de fórmulas en el área de texto.

Identificador de celda

Imagen. Identificador de celda

Generalmente referenciamos la celda como [R2C3] ubicándose en la segunda fila (Row 2) y tercera columna (Column 3). Otra forma de obtener una referencia a una celda es dotarle de un identificador. Es una cadena de letras a-z, A-Z o dígitos numéricos de tal forma que la referencia se pondría como [id=abc] si la estamos referenciando con esa cadena "abc".

Esto es útil cuando referenciamos un rango, como por ejemplo [R2C3]:[R8C3] que es el conjunto en la tercera columna de celdas de las filas segunda a la octava. Las referencias se mantienen hasta que insertemos una fila en medio, en cuyo caso perderemos la celda que antes estaría en la posición última. Si en cambio ponemos referencias con identifcador [id=x]:[id=y], donde "x" identifica R2C3 e "y" identifica R8C3, se mantendrá el rango pase lo que pase con las filas intermedias, es decir, se inserten o eliminen filas intermedias.

Los identificadores de celda tiene un alcance a todas las hojas del libro. Así con =[id=abc] en la hoja Tab1 podemos referenciar una celda identificada en otra hoja. Por lo tanto no pueden repetirse los nombres de los identificadores. Podemos listar todos los identificadores de todas las hojas usando el botón .

HTML y CSS

Puede modificar el contenido en HTML usando los elementos abbr, b, big, br, code, del, div, em, hr, i, mark, pre, small, span, sub, sup, var, font, s, strike, u, circle, ellipse, g, line, path, polygon, polyline, rect, svg, text, textPath. También puede usar el atributo STYLE y las propiedades background-color, border, border-color, border-radius, border-style, border-width, box-shadow, box-sizing, color, display, font, font-family, font-size, font-style, font-variant, font-variant-caps, font-weight, height, line-height, margin, padding, text-align, text-decoration, text-transform, transform, vertical-align, width. Cualquier otro elemento o estilo será ignorado.

Fórmulas

Una fórmula con cadenas de texto o Strings es como ="abc"#"def" que concatena ambas cadenas produciendo abcdef. Si calculamos números debemos ponerlos sin comillas como =1+2, puesto que las cadenas se convertirán en un valor NaN (no es un número), por ejemplo =1+"a" resultára en 1+NaN=NaN.

Las referencias absolutas a una celda son como =[R1C1]#"def", de tal forma que esa fórmula recupera el valor que hay en la celda ubicada en la fila 1 y columna 1 y lo concatena con el valor "def". Si quiere incluir algo como una referencia dentro de una cadena de forma literal deberá usar algún caracter que rompa la estructura de la referencia, como el espacio "‍". Las iniciales ZWJ es de zero width joiner, un caracter de Unicode que sirve como un espacio de ancho cero. Por ejemplo, con la expresión ="[‍R1C1]" que produce [R1C1] de forma literal pues el espacio no separable no es renderizado.

Entrada datos: "Título columna"

Puede modificar el título de esta columna con un texto plano, pues el HTML será ignorado. Si el título es un número entero será sustituido por el número de posición de la columna para evitar confusiones. Si se quiere poner un título numérico debe incluir un caracter no numérico cualquiera, por ejemplo un espacio, un guion, etc.

Aunque modifique el título, la columna seguirá referenciándose por su número de orden.

Entrada datos: "Título tabla"

Puede modificar el título la tabla con un texto. El texto HTML será ignorado.

Estilo

Imagen. Barra de estilos

La barra de estilos (Imagen) se inicia con el botón para acceder al formulario de estilos y otros botones para configurar estilo rápido de medidas, relleno, imagen, ajuste de imagen, fondo, color texto y fuentes.

Imagen. Barra estilo texto

En la barra de estilo del texto (Imagen) encontramos estilo rápido para negrita, itálica, subrayado, tachado, sub-índice, super-índice, versales, convertir minúsculas a mayúsculas de forma alternativa y agrandar o reducir tamaño del texto.

Imagen. Estilos

Con la entrada Estilo del menú contextual o con el botón accedemos al formulario para incorporar estilo a una celda, fila, columna o tabla. En la Imagen puede ver el estilo para Alinear con el grupo desplegado, observándose el estilo para el alineado horizontal y vertical. En algunos estilos disponemos de un segundo formulario que nos muestra las propiedades y una muestra de ese estilo en acción.

Los valores del estilo son los propios de CSS, por lo que se expresan en inglés, como center para texto centrado. El valor de un estilo puede ser inherit que significa que herederá del elemento padre. Así la celda hereda de la fila y ésta de la tabla. La columna hereda de la tabla y aplica su estilo a todas las celdas en esa columna.

Los estilos disponibles para las celdas, filas, columnas y tabla son background-clip, background-color, background-image, background-origin, background-position, background-repeat, background-size, border-bottom, border-left, border-right, border-top, color, font-family, font-size, font-style, font-variant, font-weight, height, padding-bottom, padding-left, padding-right, padding-top, table-layout, text-align, text-decoration-color, text-decoration-line, text-decoration-style, vertical-align, visibility, white-space, width.

Para los contenidos HTML en las celdas los estilos disponibles son background-color, border, border-color, border-radius, border-style, border-width, box-shadow, box-sizing, color, display, font, font-family, font-size, font-style, font-variant, font-variant-caps, font-weight, height, line-height, margin, padding, text-align, text-decoration, text-transform, transform, vertical-align, width. Cualquier otro estilo será ignorado.

Imagen. Estilo interior celda

Observe que, por ejemplo, el estilo border-radius se podría aplicar a un contenido HTML dentro de una celda (Imagen), poniéndo algo como <div style="border: solid red 1px; border-radius: 0.5em; margin: 1em">Texto</div>, con el que insertamos un contenedor en la celda dotándole de borde redondo de color rojo. Este borde sería interior al propio borde de la celda. Observe que agregamos margin al elemento DIV separándolo de los bordes de la celda. Estos estilos border-radius, margin y otros no son aplicables a la tabla, fila, columna o celdas, observándose que no aparece en la lista de estilos disponibles que relacionamos más arriba.

Estilo: "Alinear"

Imagen. Alinear

Alinear texto horizontal (text-align) de una celda con los valores izquierda (left), centro (center), derecha (right) y justificado (justify). Aplica a tabla (valor inicial left), fila (valor inicial inherit), celda (valor inicial inherit), columna (valor inicial inherit).

Alinear texto vertical (vertical-align) de una celda con los valores arriba (top), centro (middle), abajo (bottom). Aplica a tabla (valor inicial top), fila (valor inicial inherit), celda (valor inicial inherit), columna (valor inicial inherit).

En la Imagen puede observar los botones de la barra para alinear contenido.

Estilo: "Bordes"

Imagen. Bordes

Bordes para las celdas. Se almacena siempre el estilo para cada lado, como se observa en la Imagen: arriba (border-top), derecha (border-right), abajo (border-bottom) e izquierda (border-left). El valor por defecto es un cero, con lo que no aplicará borde. El estilo incluye un ancho como 3px, un estilo de borde como dotted para borde punteado y un color como blue, poniéndose separado por espacios como 3px dotted blue.

Los estilos de borde son ninguno (none), sólido (solid), punteado (dotted), rayado (dashed) y doble (double).

El botón nos abrirá un segundo formulario para generar los bordes con una vista previa del resultado antes de aplicarlo.

Imagen. Barra Bordes

En la barra de botones encontramos opciones para configurar de forma rápida los bordes, con una lista de lados, gruesos, estilos y un botón para abrir la paleta de color.

Estilo: "color"

Imagen. Color del texto

El color de texto o de primer plano puede incluirse usando la paleta de color, a la que se accede con el botón . O directamente en la barra de botones con el botón . En la Imagen se observa un color rojo con transparencia. En el formulario Paleta de Color podemos configurar cualquier color, tanto en formatos RGB, HSL, HEX como palabras clave (key), por ejemplo red, así como las palabras clave transparent, currentcolor, inherit, none y empty. Este último valor eliminará el estilo de color.

Imagen. Color de un trozo de texto

En la Imagen aparece una celda combinada con color rojo y un trozo de texto con color azul. Se utiliza el elemento FONT con el atributo color en valor hexadecimal #0000ff (color azul). Este atributo sólo permite valores de color en hexadecimales o bien una clave de color como blue. Cualquier otro formato de color será ignorado y se presentará como negro.

Estilo: "Fondos"

Imagen. Fondos

El estilo para el fondo de una celda se basa en la propiedad CSS background. Como se observa en la Imagen, podemos establecer un color y/o una imagen. Para el color disponemos de los botones de paleta de color. Para la imagen podemos acceder a un formulario con el botón . Las propiedades CSS que podemos establecer son inicio, posición, recorte, repetir y tamaño. Más abajo veremos con más detalle estas propiedades.

Imagen. Fondo con imagen

La Imagen muestra el formulario para incorporar una imagen desde un archivo. A medida que vamos cargando imágenes se van guardando en un índice, por si las descartamos o hemos de usar posteriormente. Se vuelven a incluir las propiedades de estilo anteriores, incluso con una serie de botones para facilitar el ajuste del tamaño o de la repetición.

Imagen. Menú ajuste celda a imagen

La propiedad del tamaño ajusta la imagen al tamaño de la celda. Pero a veces interesa ajustar el tamaño de la celda al tamaño de la imagen. Esto no es posible con propiedades CSS por lo que disponemos del botón en la barra que consigue ajustar el ancho y/o alto de la celda al de la imagen.

Inicio del fondo

Imagen. Inicio del fondo

La propiedad inicio (background-origin en CSS) establece el punto donde se empieza a pintar el fondo. En la Imagen vemos una imagen de fondo en tres celdas con relleno y borde amplio con color semitransparente.

En la primera celda el inicio se fija en la caja del borde (border-box), observándose que la imagen se inicia exactamente en el borde superior izquierdo de la celda. Veáse que el borde semitransparente se pinta por encima de la imagen que se ubica en el fondo. En la segunda celda se ubica la imagen en el inicio de la caja de relleno (padding-box). El relleno es el espacio que separa el borde de la celda del contenido de texto. En la tercera ubicamos la imagen en el inicio de la caja de contenido de texto (content-box).

Posición del fondo

Imagen. Posición del fondo

La propiedad posición (background-position en CSS) sirve para ubicar el fondo como imagen en un lugar específico. Pueden haber todas las combinaciones de posiciones horizontales left, center, right y verticales top, center y bottom. En la Imagen se presentan tres de ellas.

Recorte del fondo

Imagen. Recorte del fondo

La propiedad recorte (background-clip en CSS) limita el color. En la Imagen se observa el recorte hasta la caja de borde, la caja de relleno y la caja de contenido.

Repetición del fondo

Imagen. Repetir fondo

La propiedad repetir (background-repeat en CSS) hará que la imagen de fondo se repita en ambas direcciones o sólo horizontal o vertical. Con el valor space ubicamos un número entero de imágenes, insertando un espacio entre ellas al efecto. El valor round ajustará o, mejor dicho, escalará las imágenes para que ocupen un número entero de ellas.

Tamaño del fondo

Imagen. Tamaño fondo

La propiedad tamaño (background-size en CSS) ajusta el tamaño de la imagen al tamaño del contenedor, la celda en este caso. Con auto no hay ajuste. El valor contain ajustará para que quepa completa en la celda. Con cover cubrirá la mayor medida, la horizontal en la imagen. Con porcentajes 100% 100% se ajustará en ambas direcciones, aunque la imagen no conserva la proporción original. Otras posibilidades son 100% auto que ajusta la horizontal (igual que cover) y auto 100% que ajusta la vertical (igual que contain).

Estilo: "Fuentes"

Imagen. Fuentes

Las propiedades relacionadas con la fuente de texto son la familia, itálica, negrita, tamaño y versales. Con el botón accedemos al formulario para configurar la fuente.

Imagen. Formulario fuentes

El formulario de fuentes nos permite ver una vista previa a medida que buscamos la configuración adecuada.

Imagen. Menú fuentes

En la barra de botones también tenemos la posibilidad de elegir una fuente de una lista.

Estilo: "Alto (height)"

Imagen. Alto y ancho

Las medidas de la celda pueden ser auto o bien dar un valor en píxeles o cualquier otra medida.

Imagen. Menú medidas

En la barra de botones tenemos algunos que nos incrementan o disminuyen la medida actual.

Estilo: "Rellenos"

Imagen. Rellenos

El relleno (padding) es el espacio que hay entre el borde y el texto. Se guarda cada lado independientemente. El valor son medidas como px o em.

Imagen. Formulario rellenos

El botón nos abre un formulario con una vista previa de ese relleno.

Estilo: "Subrayados"

Imagen. Rellenos

En los subrayados podemos configurar el color de la línea, el estilo subrayado, tachado o sobrerayado y el tipo de lína sólida, punteada, rayada, doble u ondulada. El botón nos abre un formulario con una vista previa de una muestra.

Estilo: "Ancho (width)"

En la propiedad height se expone información para el ancho y alto de una celda, fila o columna.

Estilo: "Espacio blanco (white-space)"

Imagen. Espacios

Se basa en la propiedad CSS white-space. Los espacios blancos son el espacio simple, saltos de línea y tabulaciones. El valor normal no preserva espacios, convirtiendo uno o más espacios blancos en un único espacio simple. Este es el comportamiento por defecto del texto en HTML. Preservar espacios los mantiene tal como se escriben. Preservan líneas preserva sólo los saltos de líneas. Con preservar envolver no se preservan espacios, pero se evita que las líneas superen el contenedor. Con no envolver no se preservan espacios y las líneas pueden superar el ancho del contenedor.

Formatos: "General (general)"

Imagen. Formatos

Podemos dar tres tipos de formatos al contenido de una celda: general, número y fecha. Podemos además condicionar ese formato con algunas características. Para formatear números y fechas necesitamos establecer el idioma, que por defecto será ES para español.

El formato general es el que por defecto tienen los contenidos. Realmente no establece ningún formato específico, no aplicándose el idioma especificado. Los números se presentan tal como JavaScript los devuelve, por ejemplo 123456.789, separando decimales con un punto y no agrupando miles. Las fechas se presenta con el formato Europeo d/m/aaaa, por ejemplo 2/6/2020 (2 de junio de 2020). Las fechas con hora se presentan como 2/6/2020 20:13:05.

Formatos: "Número (number)"

Imagen. Formatos de números

Al seleccionar el formato de número se nos abre el conjunto de controles que se observa en la Imagen. Los tipos de formatos que podemos establecer es decimal como 3.456,79, moneda como 12,05 €, porcentaje como 10,33 % y exponencial como 1.23e+5.

Con mínimo dígitos fracción forzamos a que siempre tenga al menos ese número de decimales. Si el valor es 1, el número 123 se formatea a 123,0. Por otro lado el máximo dígitos fracción establece a partir de cual se produce el redondeo. Con 123,7892 forzado a 3 dígitos máximo resulta 123,789 pero si forzamos a 2 resulta 123,79.

La opción de separar miles con el valor 123456.78 e idioma ES producirá 123.456,78 usando el punto como separador de miles y la coma como separador decimal. Pero si usamos idioma EN producirá 123,456.78 donde ahora el punto separa decimales y la coma los miles.

Separar miles sólo empieza a funcionar cuando hay más de 4 dígitos enteros. Por ejemplo 91234.56 formatea a 91.234,56. Mientras que 1234.56 formatea a 1234,56 aunque se haya usado la opción de separar miles. Si además activamos la opción forzar miles con 4 dígitos entonces si produce 1.234,56.

Con formatear nulos una celda vacía produce 0,00.

Con Unicode producimos números con estos estilos: 123.456,00 (latn); 123.456,00 (fullwide); 𝟏𝟐𝟑.𝟒𝟓𝟔,𝟎𝟎 (mathbold); 𝟙𝟚𝟛.𝟜𝟝𝟞,𝟘𝟘 (mathdbl); 𝟷𝟸𝟹.𝟺𝟻𝟼,𝟶𝟶 (mathmono); 𝟭𝟮𝟯.𝟰𝟱𝟲,𝟬𝟬 (mathsanb); 𝟣𝟤𝟥.𝟦𝟧𝟨,𝟢𝟢 (mathsans).

Para el formato moneda podemos elegirla entre EUR, GBP y USD. Si necesitamos todas las monedas posibles podemos actualizar ese campo, apareciendo todas las monedas disponibles en el documento ISO 4217, versión local del publicado el 29 de agosto de 2018.

La etiqueta de moneda puede ser un símbolo 123,45 €, un código 123,45 EUR o un nombre 123,45 euros.

Formatos: "Fecha (date)"

Imagen. Formatos de fechas

Una fecha sin formato puede ser como 26/6/2020 20:46:7. Podría presentarse como viernes, 26 de jun. de 20 08:46:07 p. m. WEST si aplicamos el siguiente formato:

  • AM/PM activado (valores true, false)
  • Día semana largo (valores none, narrow, short, long)
  • Año con dos dígitos (valores numeric, 2-digit)
  • Mes corto (valores numeric, 2-digit, narrow, short, long)
  • Día dos dígitos (valores numeric, 2-digit)
  • Hora dos dígitos (valores none, numeric, 2-digit)
  • Minuto dos dígitos (valores none, numeric, 2-digit)
  • Segundo dos dígitos (valores none, numeric, 2-digit)
  • Zona corto (valores none, short, long)

Los valores por defecto son los que se observan en la Imagen.

Formatos: "Condicional (conditional)"

Imagen. Formato condicional

El formato condicional se aplica después de llevar a cabo alguno de los formatos general, número o fecha. Se trata de aplicar una condición, que si se cumple se formateará con una o más características. Las condiciones posibles pueden ser alguna de las siguientes, donde la condición siempre se ejecutará en cualquier caso y ninguno nunca:

  • Ninguno (none)
  • = Igual (eq)
  • ≠ Distinto (ne)
  • > Mayor (gt)
  • ≥ Mayor o igual (ge)
  • < Menor (lt)
  • ≤ Menor o igual (le)
  • Empieza (starts)
  • Finaliza (ends)
  • Contiene (contains)
  • Vacío (empty)
  • Número (number)
  • Siempre (always)

Con negado podemos negar la condición anterior. La condición se compara con el valor, que puede también ser una fórmula que nos devuelva un valor. En caso de cumplirse se aplicará el estilo color texto, color de fondo, itálica, negrita o subrayado que se defina. Por ejemplo, con el número -123 obtenemos -123 aplicando el formato condicional < 0, color de texto rojo y color de fondo amarillo.

Aparte de modificar el estilo también podemos actuar sobre el contenido. Por ejemplo, el formato para capitalizar una palabra se basa en poner la condición siempre (always) (en cuyo caso el valor es indiferente) y en texto con la fórmula =caps("[value]"). Así convertimos algo como abc en Abc. La referencia [value] extrae el valor actual de la celda, mientras que la función caps() convierte a mayúsculas la primera letra.

Supongamos que tenemos un formato de número de tal forma que si es negativo como -123 se presente como (123) sin signo. Para ello usamos la condición < 0, en texto antes ponemos el paréntesis de apertura "(" y en texto después el de cierre ")", mientras que en texto recuperamos el valor negándolo =-[value], lo que hará que se presente sin signo.

Con rellenar antes o rellenar después agregamos caracteres. Por ejemplo, para completar un número con ceros a la izquierda hasta 5 dígitos, de tal forma que 123 se presente como 00123, usaríamos texto antes igual 0 y rellenar antes igual a 5.

Controles

Imagen. Barra de controles

En la barra de controles encontramos el primer botón para acceder al formulario de controles y a continuación unos botones que configuran de forma rápida controles específicos: verificación, radio, lista desplegable, acciones de comandos y apariencias de comandos.

En la Imagen puede observar un control de verificación.

Imagen. Controles

Podemos insertar los controles que se observan en la Imagen: verificación, radio, lista desplegable y comandos, tanto de tipo texto, como vínculo, botones o un icono. Los controles que no son comandos disponen de un valor. En el caso de la verificación el valor sera 1 cuando está activado y 0 cuando está desactivado. En el caso de los botones de radio, podemos formar un grupo con varios botones. En la Imagen hay un grupo de tres, de tal forma que al activar uno se desactivan el resto del grupo. En este caso podemos fijar el valor cuando esté seleccionado, pero cuando no lo éste el valor será una cadena vacía. Con la lista desplegable fijamos una lista de términos. O incluso hacer referencia a un rango de celdas desde donde obtener esa lista.

Los comandos pueden ejecutar acciones como borrar, imprimir, ordenar, etc. En la Imagen puede var varios comandos que ejecutan Imprimir. El primero tiene apariencia de texto. Al final hay uno con apariencia de botón, otro que además incorpora un icono de impresora y el último un icono de impresora. Otra apariencia es la de vínculo. En este caso la acción es ejecutar un vínculo a una página web. Por motivos de seguridad sólo se pueden vincular páginas de este sitio https://www.wextensible.com o del sitio de pruebas https://example.com. Este dominio no transferible pertenece a IANA, la autoridad que asigna nombres de dominios y se suele usar para pruebas.

Las acciones de comandos disponibles son:

  • Ninguno
  • Abrir calculadora
  • Abrir calendario
  • Borrar rango
  • Vaciar rango
  • Abrir ayuda
  • Vínculo
  • Imprimir
  • Recalcular
  • Buscar
  • Seleccionar
  • Abrir hoja
  • Ordenar AZ
  • Ordenar ZA

Las apariencias disponibles son:

  • Texto (text)
  • Vínculo (link)
  • Botón (button)
  • Botón+Icono (buttonIcon)
  • Icono (icon)

Importar: "tipos"

Los tipos para importar pueden ser los siguientes:

  • wxtable (libro) importará una tabla completa a partir de un JSON con una estructura que contenga {caption, config, sheets, images}, objeto que contiene el título de la tabla (caption), un objeto con la configuración (config), un objeto con las distintas hojas (sheets) y un array con todas las imágenes del libro (images). Importar un libro supone que se eliminará todo lo que haya en el libro y será reemplazado por los datos importados.
  • wxtable (hojas) para importar una o más hojas. Si la estructura JSON es como la que vimos antes, se ignora caption y config, importándose todas las hojas y las imágenes, agregándose a lo que actualmente exista en el libro. Podría pasarse también el JSON sólo con {sheets, images}, tal como se extrae desde la opción para exportar una única hoja.
  • tsv, csv, json y html para importar tablas de valores. En el caso de HTML se importa la tabla incluyendo los atributos y los estilos en línea con los elementos, es decir, los que aparezcan en los atributos style, incluso el estilo en la cabecera de la página.

Importar HTML

En el siguiente ejemplo se observa una tabla HTML con diversos estilos.

ABC
123abc def ghiJKL
MNOPQRSTU

El código de esta tabla es el siguiente:

<style>
#x_0 {
font-family:Arial;
font-size:12px;
}
.x_1 {
color: blue;
font-style: italic;
font-size: xx-large;
}
#x_2 {
color: magenta;
text-align: right;
}
.x_3 {
text-decoration: underline;
}
#x_0 i {
text-decoration: line-through;
color: green;
}
</style>
<table id="x_0">
<col width="50"
style="background-color:pink">
<col width="150">
<col width="60">
<tr>
<th>A</th>
<th class="x_1">B</th>
<th>C</th>
</tr>
<tr style="font-size:2em">
<th><i>123</i></th>
<td style="border:red double 3px">
abc
<b style="color:blue">def</b>
ghi
</td>
<td class="x_3">JKL</td>
</tr>
<tr>
<td id="x_2">MNO</td>
<td colspan="2">PQRSTU</td>
</tr>
</table>
Imagen. Importando HTML

En la imagen se observa una captura de la ejecución de la importación de ese código en WXTABLE. En el código hay estilo en línea a los elementos y también estilo en reglas que se adjudican con los selectores "#x_0", ".x_1", "#x_2", "#x_0 i" y ".x_3". La tabla también tiene elementos columnas con estilos. Se importaran los estilos siempre que WXTABLE los soporte. En las reglas se importan selectores básicos como esos, de clase como ".x_1", de identificador como "#x_0" y de elemento, o una combinación de ellos separados por espacios como "#x_0 i". Otros combinadores o selectores como pseudoclases no se soportan y serán ignorados.

Importar: "Primera fila son títulos"

Supongamos que vamos a importar una tabla de valores en formato TSV como la siguiente:

 A   B   C
1 2 3
4 5 6
7 8 9
Imagen. Primera fila son títulos

Si no marcamos primera fila títulos se entenderá que la primera fila son valores. Pero en caso de activarlo, esos valores de la primera fila pasarán a ser los títulos de las columnas, como se observa en la Imagen tras realizar la importación. Recordar que aunque una columna tenga un título, la referencia siempre se hará con respecto a su posición. Así que, por ejemplo, la primera celda se referencia con [R1C1] a pesar de que la columna 1 tiene por título la letra "A".

Al importar en HTML si se marca primera fila títulos se eliminarán los elementos TH en cualquier lugar donde se encuentren. En otro caso si no se marca esa opción, los TH serán convertidos en TD sin que se modifiquen los títulos de las columnas.

Exportar: "tipos"

Los tipos para exportar pueden ser los siguientes:

  • wxtable (libro) exportar una tabla completa en un JSON con la estructura {caption, config, sheets, images}, objeto que contiene el título de la tabla (caption), un objeto con la configuración (config), un objeto con las distintas hojas (sheets) y un array con todas las imágenes del libro (images).
  • wxtable (hoja) para exportar una única hoja. La estructura JSON exportada será entonces {sheets, images} exportándose sólo la hoja activa así como las imágenes que contengan. Esto es útil para extraer una hoja y luego importarla en otra tabla.
  • xlsx para exportar el libro a XLSX. Puede ver más sobre esto en el enlace Exportando a XLSX.
  • tsv, csv y json para exportar sólo valores de la hoja activa.
  • txt exporta sólo valores de la hoja activa, tabulándolos en un ancho total y un ancho de tabulación determinados.
  • html exporta la hoja activa completa tal como aparece en la aplicación, incluyendo atributos de elementos y estilos CSS.

Exportar: "ancho"

En el modo de exportar a texto (TXT) se estructura la salida en columnas de texto, especificando este ancho el total de caracteres del ancho del papel. Usualmente con una fuente monoespaciada de tamaño 12, suelen caber unos 80 caracteres en el ancho de un DINA4 vertical con márgenes suficientes. Si el contenido es inferior a ese ancho no causará efecto. En otro caso se reducirá el ancho del contenido para ajustarlo al especificado, ajustando en columnas con anchos uniformemente distribuidos.

Exportar: "Ancho de tabulación"

Se usa con en el tipo TSV de tal forma que el caracter tabulador "\t" en el texto se sustituye por tantos espacios como especifica este control, así que podamos reservar el caracter tabulador para la estructura de separar campos en el TSV.

Exportar: "cssTop"

Al exportar en formato HTML el estilo CSS se incluye en el atributo style en los elementos de la tabla. Si se activa esta opción se incluirá el CSS en el elemento STYLE particular de la tabla, estilo que debe incorporarse en el HEAD de la página.

Hojas

Imagen. Gestión hojas

Se accede a la gestión de hojas con el botón de la barra de botones. O con la entrada Hojas del menú contextual de la tabla. Como se observa en la Imagen, primero seleccionamos la acción y luego pulsamos el botón Ejecutar. Una tabla en blanco se inicia con una única hoja con nombre Tab1. Ese nombre puede modificarse. E incluso eliminarse esa hoja, pero se creará siempre una primera hoja con ese nombre por defecto Tab1 (o el especificado en la opción de configuración de la tabla Nombre inicial de hoja). Duplicando una hoja se crea un copia de la misma incluyendo todo su contenido. Sin embargo las referencias a la hoja original no se trasladan a la nueva hoja.

Barras de botones

Edición básica

Imagen. Barra botones edición

En esta barra encontramos los usuales botones para copiar, cortar, pegar, deshacer y rehacer. Sólo hay algunos botones especiales que tener en cuenta. El botón que sirve para copiar un rango de forma literal, algo como [R2C2]:[R5C3]. El botón para pegado especial, que tal como se observa en la Imagen, nos permite pegar todo o sólo una característica de lacelda. Con transponer pegamos filas por columnas y viceversa. Los botones y sirven para borrar contenido. El primero vacía el contenido, presentándonos una lista para elegir entre borrar todo o borrar sólo valores, estilos, formatos, fórmulas o controles. El segundo realiza una verdadera eliminación de la celda, fila o columna.

Edición avanzada

Imagen. Edición avanzada

El botón nos abre un formulario para editar el contenido. El botón despliega una lista con funciones básicas, tal como se observa en la Imagen. Con la opción Operar se aplicará la operación directamente. Por ejemplo, si tenemos tres celdas selecionadas en la misma fila, con un 2 en la primera y un 3 en la segunda, si aplicamos la suma con Operar activado nos colocará el resultado 5 en la tecera celda. Si estuviera desactivado nos colocará la fórmula =[r0c-2]+[r0c-1] cuyo resultado produce también el valor 5.

El botón fuerza un recálculo de la tabla. Los botones , y nos abren formularios con la calculadora, el calendario y el editor de gráficas.

El resto de botones , y sirven para repetir y rellenar. Se explicará a continuación.

Repetir

Imagen. Repetir

El botón nos sirve para repetir un rango de celdas. Repetimos el contenido de la primera celda seleccionada en el rango de la Imagen, parte inferior izquierda, produciendo lo que vemos en la parte inferior derecha. La repetición se puede realizar sobre todo o bien sólo valores, estilos, formatos o fórmulas.

Rellenar

Imagen. Rellenar

Con el botón repetimos incrementando. En este caso hay una primera celda con un valor numérico y repetimos incrementando ese valor en las siguientes celdas. Con repetimos decrementando. Si la primera celda es un texto, se incrementa o decrementa en orden alfabético. Si es una fecha también se realiza ese incremento o decremento actuando sobre el año.

Estructurar

Imagen. Estructurar

En la barra para estructurar contenidos encontramos el botón para buscar y ordenar, como se observa en la Imagen. Verá que las dos primeras celdas aparecen combinadas, que se consigue con el botón . Con el botón bloqueamos la celda para evitar modificaciones. Otros botones son uno para insertar filas y/o columnas y otro para mostrar u ocultar celdas, filas o columnas . En la imagen aparecen desactivadas pues la celda está bloqueada.

Imagen. Extender

El botón nos sirve para extender el contenido de texto más alla del límite de la celda. Podemos extender en ancho, alto o ambos. Por otro lado, con recortar hacemos que la celda no se ajuste al contenido, pues el comportamiento por defecto de una tabla es el contrario, ajustar la celda al contenido.

Teclas de método abreviado

Ratón (mouse)

En lo siguiente "BD, BC, BI" son los botones derecho, central e izquierdo respectivamente del ratón. Las teclas de control que se pueden asociar son "Mayús" de mayúsculas, "Ctrl" y "Alt".

  • BD: selecciona celda y abre el menú contextual
  • BI: entra en edición de celda
  • BI + mover: selecciona rango
  • BC: selecciona celda sin abrir el menú contextual
  • BI + Alt: selecciona celda sin entrar en edición
  • BI + Ctrl: entra en edición sin borrar selección celdas anteriores
  • BI + Ctrl + Alt: selecciona celda sin borrar selección celdas anteriores
  • BI + Mayús: entra en edición celda seleccionando rangos rectangulares
  • BI + Mayús + Alt: selecciona rangos rectangulares

Teclado (keyboard)

  • Ctrl+X: cortar
  • Ctrl+C: copiar
  • Ctrl+V: pegar
  • Ctrl+Mayús+V: pegar con tabs o csv
  • Ctrl+B: negrita
  • Ctrl+I: itálica
  • Ctrl+U: subrayado
  • Ctrl+P: imprimir
  • Ctrl+F: buscar
  • Ctrl+Z: deshacer
  • Ctrl+Mayús+Z: rehacer
  • Supr: vacíar texto (no elimina)
  • Ctrl+Supr: eliminar celdas, filas y/o columnas
  • Ctrl+Ins: insertar filas/columnas
  • Esc: entrar o salir de edición de celda
  • F1: abrir ayuda
  • F4: abrir lista en el caso de celdas con control de lista
  • F9: abrir buscar
  • F12: abrir configuración
  • Tecla de menú contextual: presentar menú contextual