SpreadsheetML - XLSX

Sobre SpreadsheetML

SpreadsheetML es el nombre de una familia de formatos basados en XML para documentos de hojas de cálculo. Hay varias versiones de SpreadsheetML:

  1. La versión SpreadsheetML 2003 se introdujo en Microsoft Word 2003. SpreadsheetML fue un paso importante de Microsoft para hacer que el formato del documento fuera abierto.
  2. XML abierto de Office (OOXML) es el nuevo formato basado en XML introducido en las aplicaciones Microsoft de Office 2007. Office Open XML es un formato contenedor para varios lenguajes de marcado basados en XML especializados. SpreadsheetML versión 2007 es el lenguaje de marcado utilizado por Microsoft Office Excel 2007 para almacenar sus documentos.
  3. Microsoft Excel 2010 almacena documentos en la versión SpreadsheetML 2010 como se define en el estándar OOXML actualizado.

SpreadsheetML en Aspose.Cells

Hay tres “versiones” de SpreadsheetML disponibles:

SpreadsheetML “Versión” Estándar/Especificación aplicable Apoyado en Aspose.Cells for .NET
Microsoft excel 2003 Microsoft Excel 2003 XML
Microsoft excel 2007 OOXML ECMA-376
Microsoft excel 2010 OOXML ISO/IEC DIS 29500
Microsoft excel 2013 OOXML ISO/IEC DIS 29500
Los documentos OOXML SpreadsheetML suelen venir como archivos XLSX, que son paquetes ZIP. Además de XLSX. Aspose.Cells proporciona un amplio soporte para cargar, guardar y convertir documentos SpreadsheetML. Esta implementación integral es posible porque Aspose.Cells se diseñó teniendo en cuenta la estructura de los documentos de Excel Microsoft (y se sabe que SpreadsheetML imita la representación interna de los documentos de Excel Microsoft).

OOXML está abierto, ¿por qué usar Aspose.Cells?

Es cierto que la tecnología Office Open XML hace posible crear aplicaciones de procesamiento y generación de documentos usando solo las clases XML sin depender de bibliotecas de terceros como Aspose.Cells. Sin embargo, creemos firmemente que aún es muy beneficioso usar Aspose.Cells cuando tiene para manejar documentos OOXML, en lugar de trabajar a través de XML u otras bibliotecas.

La especificación OOXML tiene varios miles de páginas. Ser abierto y estándar no significa ser simple. Para procesar o generar correctamente documentos OOXML se debe invertir en aprender bien el formato.

Además de simplificar el procesamiento correcto y la generación de documentos válidos, Aspose.Cells proporciona las siguientes características importantes que no tendría al trabajar con archivos OOXML directamente a través de XML u otras bibliotecas de terceros:

  • Conversiones de calidad entre muchos formatos populares de Excel, incluida la conversión a PDF, HTML, TIFF e impresión.
  • Capacidad para crear documentos a partir de fragmentos, de uno o varios documentos, mientras se fusionan automáticamente los datos mediante formato estilístico, tablas y gráficos.
  • Funciones de alto nivel, como importar datos de diferentes fuentes de datos, incluidos Array, ArrayList, DataTable, DataColumn, DataGrid, DataView y DataReader, o exportar datos para completar un DataTable o un Array con solo una línea de código.
  • Robusto motor de cálculo de fórmulas que admite casi todas las funciones estándar y avanzadas de Excel Microsoft.

Considere el siguiente ejemplo. Algunas celdas contienen el texto “Hello World” en negrita. Ahora imagine que necesita escribir un programa que busque todas las frases “Hello World” en la hoja de trabajo y las reemplace con “Adiós Tierra”.

Un fragmento de un documento XML abierto de Office

XML

 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

\- <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">

  <dimension ref="A1:M184" />

\- <sheetViews>

\- <sheetView tabSelected="1" workbookViewId="0">

  <selection activeCell="H27" sqref="H27" />

  </sheetView>

  </sheetViews>

  <sheetFormatPr defaultRowHeight="15" />

\- <sheetData>

\- <row r="1" spans="1:7">

\- <c r="A1" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="11" spans="1:7">

\- <c r="D11" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="15" spans="1:7">

\- <c r="G15" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="21" spans="2:7">

\- <c r="G21" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="25" spans="2:7">

\- <c r="F25" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="31" spans="2:7">

\- <c r="B31" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="34" spans="6:13">

\- <c r="M34" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="38" spans="6:13">

\- <c r="F38" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="117" spans="8:8">

\- <c r="H117" s="1" t="s">

  <v>0</v>

  </c>

  </row>

\- <row r="184" spans="8:8">

\- <c r="H184" s="1" t="s">

  <v>0</v>

  </c>

  </row>

  </sheetData>

  <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />

</worksheet>

Es difícil implementar incluso una simple operación de buscar y reemplazar en un documento Office Open XML. Nuestro consejo: recuerda que abierto y estándar no significa simple, y utiliza el Aspose.Cells.