Estructura de un documento SpreadsheetML

La estructura de documento de un documento SpreadsheetML consta del elemento workbook>< que contiene <hojas> y < elementos de hoja> que hacen referencia a las hojas de cálculo del libro. Se crea un archivo XML independiente para cada hoja de cálculo. Estos elementos son los elementos mínimos necesarios para un documento de hoja de cálculo válido. Además, un documento de hoja de cálculo puede contener <tabla>, <hoja de gráficos>, <tabla dinámicaDefinition> u otros elementos relacionados con la hoja de cálculo.

Nota:

¿Le interesa el desarrollo de soluciones que amplían la experiencia de Office en varias plataformas? Vea el nuevo modelo de complementos de Office. Los complementos de Office tienen una huella pequeña en comparación con los complementos y soluciones de VSTO, y se pueden construir utilizando casi cualquier tecnología de programación web, como HTML5, JavaScript, CSS3 y XML.


Partes importantes de la hoja de cálculo

Con el SDK de Open XML para Office, puede crear la estructura de documentos y el contenido que usa clases fuertemente tipadas que corresponden a elementos SpreadsheetML . Puede encontrar estas clases en el espacio de nombres DocumentFormat.OpenXML.Spreadsheet. En la tabla siguiente se enumeran los nombres de las clases que corresponden a algunos de los elementos más importantes de la hoja de cálculo.

Parte del paquete Elemento de SpreadsheetML de nivel superior Open XML SDK (clase) Descripción
Libro de trabajo libro de trabajo Workbook El elemento raíz de la parte de documento principal.
Worksheet hoja de cálculo Worksheet Un tipo de hoja que representa una cuadrícula de celdas que contiene texto, números, fechas o fórmulas. Para obtener más información, vea Trabajar con hojas.
Hoja de gráfico hoja de gráficos Hoja de gráficos Una hoja que representa un gráfico almacenado como su propia hoja. Para obtener más información, vea Trabajar con hojas.
Tabla table Table Una construcción lógica que especifica que un rango de datos pertenece a un solo conjunto de datos. Para obtener más información, consulte Trabajar con tablas SpreadsheetML.
Tabla dinámica pivotTableDefinition PivotTableDefinition Una construcción lógica que muestra la vista agregada de los datos en un diseño comprensible. Para obtener más información, vea Working with PivotTables.
Memoria caché de tabla dinámica pivotCacheDefinition PivotCacheDefinition Una construcción que define el origen de los datos de la tabla dinámica. Para obtener más información, vea Working with PivotTables.
Registros de memoria caché de tabla dinámica pivotCacheRecords PivotCacheRecords Una memoria caché de los datos de origen de la tabla dinámica. Para obtener más información, vea Working with PivotTables.
Cadena de cálculo calcChain CalculationChain Una construcción que especifica el orden en el que se calcularon las celdas del libro por última vez. Para obtener más información, vea Trabajar con la cadena de cálculo.
Tabla de cadenas compartidas Sst SharedStringTable Una construcción que contiene una repetición de cada cadena única que se produce en todas las hojas de cálculo de un libro. Para obtener más información, vea Trabajar con la tabla de cadenas compartidas.
Formato condicional conditionalFormatting ConditionalFormatting Una construcción que define un formato aplicado a una celda o a una serie de celdas. Para obtener más información, vea Trabajar con formato condicional.
Fórmulas f CellFormula Una construcción que define el texto de fórmula de una celda que contiene una fórmula. Para obtener más información, vea Trabajar con fórmulas.

Escenario de libro mínimo

El siguiente texto del estándar ECMA-376 presenta el escenario de libro mínimo.

El libro (en blanco) más pequeño posible debe contener lo siguiente:

Una sola hoja

Un identificador de hoja

Un identificador de relación que apunte a la ubicación de la definición de hoja

© Ecma International: diciembre de 2006.

Ejemplo de código de Open XML SDK 2.0

En este ejemplo de código se usan las clases del SDK de Open XML para crear un libro mínimo en blanco.

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;

CreateSpreadsheetWorkbook(args[0]);

static void CreateSpreadsheetWorkbook(string filepath)
{
    // Create a spreadsheet document by supplying the filepath.
    // By default, AutoSave = true, Editable = true, and Type = xlsx.
    SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);

    // Add a WorkbookPart to the document.
    WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
    workbookPart.Workbook = new Workbook();

    // Add a WorksheetPart to the WorkbookPart.
    WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
    worksheetPart.Worksheet = new Worksheet(new SheetData());

    // Add Sheets to the Workbook.
    Sheets sheets = workbookPart.Workbook.AppendChild(new Sheets());

    // Append a new worksheet and associate it with the workbook.
    Sheet sheet = new Sheet() { Id = workbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
    sheets.Append(sheet);

    workbookPart.Workbook.Save();

    // Dispose the document.
    spreadsheetDocument.Dispose();
}

Escenario de libro típico

Un libro típico no es un libro mínimo en blanco. Un libro típico puede incluir números, texto, gráficos, tablas y tablas dinámicas. Cada una de estas partes adicionales se incluye en el paquete .zip del documento de hoja de cálculo.

En la siguiente figura se muestra la mayoría de los elementos que pueden encontrarse en una hoja de cálculo típica.

Figura 2. Elementos de hoja de cálculo típicos

Estructura de un documento SpreadsheetML