¿Qué es ODS?
ODS son las siglas de OpenDocument Spreadsheet (Hoja de Cálculo de Documento Abierto), el formato de hoja de cálculo definido por el estándar OASIS Open Document Format for Office Applications (OpenDocument), formalmente ISO/IEC 26300. Es el formato nativo de LibreOffice Calc, Apache OpenOffice Calc y otras suites ofimáticas de código abierto, y un formato de exportación opcional en Google Sheets, Apple Numbers e incluso Microsoft Excel 2007 y versiones posteriores.
Al igual que XLSX, un archivo ODS es un archivo ZIP que contiene ficheros XML. A diferencia de XLSX, diseñado principalmente por Microsoft y estandarizado posteriormente, ODS fue diseñado desde el principio por un consorcio de la industria con un mandato de neutralidad de proveedor, convirtiéndolo en el formato preferido para instituciones gubernamentales y organizaciones comprometidas con los estándares abiertos.
Estructura del Contenedor ZIP
Al descomprimir un archivo ODS se obtiene:
mimetype — Debe ser el primero; sin comprimir; declara application/vnd.oasis.opendocument.spreadsheet
META-INF/
manifest.xml — Lista todos los archivos del archivo con tipos MIME
content.xml — Todos los datos de celdas, fórmulas, estilos, hojas (documento principal)
styles.xml — Estilos de página, encabezados/pies de página, páginas maestras
meta.xml — Autor, fecha de creación, contador de revisiones
settings.xml — Configuración de vista (zoom, hoja activa, filas fijadas)
Thumbnails/
thumbnail.png — Imagen de vista previa (128×128 px)
Pictures/ — Imágenes incrustadas (si las hay)
El archivo mimetype tiene un requisito único: debe ser la primera entrada del archivo ZIP, almacenada sin compresión (método STORE). Esto permite que las utilidades de detección de tipos de archivo identifiquen el tipo ODS leyendo los primeros bytes del archivo sin descomprimir nada.
content.xml: El Documento Principal
Toda la hoja de cálculo vive en content.xml. Utiliza una estructura jerárquica de espacios de nombres:
<office:spreadsheet>
<table:table table:name="Hoja1">
<table:table-row>
<table:table-cell office:value-type="string">
<text:p>¡Hola, mundo!</text:p>
</table:table-cell>
<table:table-cell office:value-type="float" office:value="42.75">
<text:p>42.75</text:p>
</table:table-cell>
<table:table-cell table:formula="of:=SUM([.A1:.B1])" office:value-type="float" office:value="487">
<text:p>487</text:p>
</table:table-cell>
</table:table-row>
</table:table>
</office:spreadsheet>
Observaciones clave:
- office:value almacena el valor numérico bruto mientras que
<text:p>almacena el texto de visualización - Las fórmulas usan la sintaxis OpenFormula (prefijo
of:) — ligeramente diferente al lenguaje de fórmulas de Excel - Las celdas vacías repetidas se colapsan con
table:number-columns-repeatedpara evitar XML verboso
OpenFormula: El Lenguaje de Fórmulas de ODS
Las fórmulas ODS están definidas por la especificación ODF Formula (OpenFormula), un estándar complementario a ODS. La mayoría de los nombres de función son idénticos a los de Excel (SUM, IF, VLOOKUP, INDEX, MATCH), pero hay diferencias sintácticas:
| Característica | Excel | ODF OpenFormula |
|---|---|---|
| Prefijo de fórmula | = |
of:= (en atributo XML) |
| Referencia de hoja | Hoja2!A1 |
$Hoja2.$A$1 o Hoja2.A1 |
| Separador de argumentos | , |
; |
| Unión de rangos | , |
; |
En la práctica, LibreOffice gestiona la traducción automáticamente al importar XLSX o exportar a XLSX.
ODS frente a XLSX: Diferencias Clave
| Aspecto | ODS | XLSX |
|---|---|---|
| Órgano rector | OASIS / ISO | ECMA / ISO (liderado por Microsoft) |
| Aplicaciones principales | LibreOffice, OpenOffice | Microsoft Excel |
| Lenguaje de macros | LibreOffice Basic / Python / JavaScript | VBA |
| Tablas dinámicas | Soporte limitado | Soporte completo |
| Especificación de fórmulas | OpenFormula (OASIS) | Lenguaje de fórmulas de Excel |
| Preferencia gubernamental | Alta (mandato de código abierto) | Moderada |
Soporte de Macros en ODS
ODS admite macros escritas en múltiples lenguajes a través del marco de scripting de LibreOffice:
- LibreOffice Basic — el análogo más cercano a VBA de Excel
- Python (a través del puente BASIC) — disponible en LibreOffice 6.4+
- JavaScript — experimental
- BeanShell — scripting similar a Java
Las macros se almacenan en un directorio separado dentro del archivo ZIP. A diferencia de XLSM, no hay una extensión "ODS con macros" separada — las macros coexisten dentro del archivo ODS normal.
Interoperabilidad con Excel
Al convertir entre ODS y XLSX, se esperan estas posibles pérdidas:
- Tablas dinámicas — ODS tiene soporte limitado; las tablas dinámicas complejas de Excel pueden no sobrevivir
- Segmentaciones de datos y escalas de tiempo — no compatibles con ODS
- Power Query / Power Pivot — no compatibles
- Formato condicional avanzado — los conjuntos de iconos y barras de datos generalmente sobreviven; las reglas basadas en fórmulas pueden no sobrevivir
- Gráficos — los tipos básicos de gráficos sobreviven; algunos subtipos específicos de Excel pueden simplificarse
Google Sheets y ODS
Google Sheets puede importar y exportar archivos ODS. La importación maneja correctamente la mayoría de los datos de hoja de cálculo. La exportación desde Google Sheets a ODS preserva:
- Valores y fórmulas de celda
- Formato de número básico
- Gráficos (exportados como imágenes)
- Formato condicional (parcialmente)
Las funciones específicas de Google Sheets como ARRAYFORMULA, QUERY, IMPORTRANGE y GOOGLETRANSLATE no sobreviven a la exportación a ODS, ya que esas funciones no existen en la especificación OpenFormula.
Cuándo Usar ODS
Usa ODS cuando:
- Trabajas principalmente en LibreOffice u OpenOffice
- Envías documentos a agencias gubernamentales o instituciones que requieren estándares abiertos
- Colaboras con usuarios que prefieren software de código abierto
- Archivas datos en un formato que no depende de ningún proveedor comercial
Usa XLSX cuando:
- Colaboras con usuarios de Excel (la mayoría de los entornos corporativos)
- Usas características avanzadas de Excel: Power Query, Power Pivot, macros VBA, minigráficos, segmentaciones
- Se requiere máxima interoperabilidad con aplicaciones que no son LibreOffice
Conversión de Archivos ODS
ODS → XLSX: Abre en LibreOffice Calc y Guardar como → Excel 2007-365 (.xlsx). La mayoría de las características sobreviven; las tablas dinámicas y las macros no. Google Drive también maneja esta conversión.
ODS → CSV: Archivo → Guardar una copia → Texto CSV. Solo se exporta la hoja activa; todo el formato se pierde.
ODS → PDF: Archivo → Exportar como PDF. Proporciona control detallado sobre rangos de páginas, compresión y etiquetas de accesibilidad.
XLSX → ODS: Archivo → Guardar como → ODS en LibreOffice. Las macros VBA, las tablas dinámicas y Power Query no se conservan.
Resumen
ODS es un formato de hoja de cálculo maduro, estandarizado por ISO, construido para la neutralidad de proveedor y la archivabilidad a largo plazo. Aunque carece de algunas de las características analíticas avanzadas de Excel (segmentaciones de tabla dinámica, Power Query, VBA), destaca en la interoperabilidad con cadenas de herramientas de código abierto y el cumplimiento de los mandatos de estándares abiertos. Para las organizaciones comprometidas con la libertad de software o los formatos abiertos exigidos por el gobierno, ODS es la elección natural; para la máxima compatibilidad con el ecosistema de Microsoft, XLSX sigue siendo el estándar práctico.
Conversiones relacionadas
Conversiones frecuentes del catálogo: