Ejemplo de paquete XLSX

Un paquete XLSX, denominado SpreadsheetML, contiene 2 items principales, package-relationship item y content-type item.

El package-relationship item se encuentra físicamente en el archivo /_rels/.rels

El content-type item se encuentra físicamente en el archivo [Content_Types].xml

El package-relationship item contiene las relaciones implícitas con los siguientes destinos:

    • Parte workbook
    • Parte properties (Application-Defined File Properties, Core File Properties, and Custom File Properties)

Veamos el mínimo exigido para conformar un paquete SpreadsheetML tal como lo define ECMA-376.

Primero, debemos definir los tipos de contenido (content types) para la parte con las relaciones (relationship parts), la parte con el libro de trabajo (workbook part) y al menos una parte con la hoja de trabajo (sheet part). Físicamente localizado en el archivo /[Content_Types].xml del paquete:

/[Content_Types].xml

<Types xmlns="…">

<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />

<Override PartName="/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" />

<Override PartName="/sheet1.xml" ContentType="application/vnd.openxmlformatsofficedocument.spreadsheetml.worksheet+xml" />

</Types>


A continuación, debemos definir la relación a nivel de paquete con el libro de trabajo workbook, físicamente localizado en el archivo /_rels/.rels del paquete:

/_rels/.rels

<Relationships xmlns="…">

<Relationship Id="rId1" Type=http://purl.oclc.org/ooxml/officeDocument/relationships/officeDocument" Target="workbook.xml" />

</Relationships>


El mínimo contenido para un libro de trabajo workbook, localizado físicamente en el archivo /workbook.xml del paquete, es el siguiente:

/workbook.xml

<workbook xmlns="…" xmlns:r="…">

<sheets>

<sheet name="1" sheetId="1" r:id="rId1" />

</sheets>

</workbook>


Definimos a nivel de libro de trabajo la relación con la hoja de trabajo sheet, localizada físicamente en el archivo /_rels/workbook.xml.rels del paquete:

/_rels/workbook.xml.rels

<Relationships xmlns="…">

<Relationship Id="rId1" Type="http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet" Target="sheet1.xml" />

</Relationships>


Finalmente, incluímos el mínimo contenido para una hoja de trabajo sheet, localizado físicamente en el archivo /sheet1.xml del paquete:

/sheet1.xml

<worksheet xmlns="…" xmlns:r="…">

<sheetData />

</worksheet>


Ejemplo de documento SpreadsheetML

Consideremos un documento SpreadsheetML que contiene un libro de trabajo workbook con tres hojas de trabajo sheets.

A continuación tenemos la estructura jerárquica de la carpeta que tendremos que comprimir en un archivo ZIP y cambiar a la extensión xlsx.

/_rels/.rels                                                         Package-relationship item

/[Content_Types].xml                                         Content-type item

/docProps/app.xml                                                 Application-Defined File Properties part

/docProps/core.xml                                         Core File Properties part

/xl/workbook.xml                                                 Workbook part

/xl/_rels/workbook.xml.rels                 Part-relationship item

/xl/calcChain.xml                                                 Calculation Chain part

/xl/sharedStrings.xml                                 Shared String Table part

/xl/styles.xml                                                 Styles part

/xl/volatileDependencies.xml                 Volatile Dependencies part

/xl/theme/theme1.xml                         Theme part

/xl/worksheets/sheet1.xml         Worksheet parts

/xl/worksheets/sheet2.xml

/xl/worksheets/sheet3.xml


Observad que la parte de libro de trabajo workbook (guardada en /xl/workbook.xml) contiene su propio item de relaciones Part-relationship item (/xl/_rels/workbook.xml.rels)

El item con las relaciones a nivel de paquete package-relationship item (guardado en /_rels/.rels) contiene lo siguiente:

<Relationships xmlns="…">

<Relationship Id="rId3" Type="http://…/extended-properties" Target="docProps/app.xml"/>

<Relationship Id="rId2" Type="http://…/core-properties" Target="docProps/core.xml"/>

<Relationship Id="rId1" Type="http://…/officeDocument" Target="xl/workbook.xml"/>

</Relationships>


Creado con el Personal Edition de HelpNDoc: Ventajas de las herramientas de creación de documentación de ayuda