Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe la clase SDK Table de Open XML y cómo se relaciona con el esquema SpreadsheetML de formato de archivo Open XML. Para obtener más información sobre la estructura general de las partes y elementos que forman un documento SpreadsheetML, vea Estructura de un documento SpreadsheetML (SDK de Open XML).
Tablas de SpreadsheetML
La siguiente información de la especificación ISO/IEC 29500 presenta el table
elemento (<table/>
).
Una tabla ayuda a organizar y proporcionar la estructura de las listas de información de una hoja de cálculo. Las tablas tienen regiones de columnas, filas y datos claramente etiquetadas. Las tablas permiten que los usuarios ordenen, analicen, den formato, administren, agreguen y eliminen información fácilmente.
Si una región de datos se designa como una tabla, se pueden aplicar comportamientos especiales, para ayudar al usuario a realizar acciones útiles. [Ejemplo: si el usuario escribe datos adicionales en la fila adyacente a la parte inferior de la tabla, la tabla puede expandirse y agregar automáticamente esos datos a su región de datos. De forma similar, agregar una columna es tan fácil como escribir un nuevo encabezado de columna a la derecha o izquierda de los encabezados de columna actuales. Las capacidades de filtrado y ordenación se pueden exponer automáticamente al usuario a través de las flechas desplegables. Se pueden crear columnas calculadas especiales, que resumen o calculan datos de la tabla. Estas columnas tienen la capacidad de expandirse y reducirse de acuerdo con el tamaño de la tabla, así como mantener referencias a fórmulas adecuadas. Fin del ejemplo]
Se pueden crear tablas a partir de datos que ya están presentes en la hoja de cálculo, desde una consulta de datos externos o desde la asignación de una colección de elementos XML de repetición a un rango de hoja de cálculo.
El XML de la hoja almacena los datos numéricos y de texto. El XML de la tabla registra los distintos atributos del objeto de tabla específico.
Una tabla de SpreadsheetML es una construcción lógica que especifica que un rango de datos pertenece a un único conjunto de datos. SpreadsheetML ya usa un modelo similar a una tabla para especificar valores en filas y columnas, pero también puede etiquetar un subconjunto de la hoja como y table
proporcionarle ciertas propiedades que son útiles para el análisis. Una tabla de SpreadsheetML permite analizar datos de formas nuevas; por ejemplo, mediante el filtrado, formato y enlace de datos.
Al igual que otras construcciones de SpreadsheetML, una tabla de una hoja de cálculo se almacena en una parte independiente dentro del paquete. La parte de tabla no contiene ningún dato de tabla. Los datos se mantienen en las celdas de hoja de cálculo. Para obtener más información sobre los datos se almacena en la hoja de cálculo, vea Trabajar con hojas.
En la tabla siguiente se enumeran las clases comunes del SDK de Open XML que se usan al trabajar con la Table
clase .
Elemento de SpreadsheetML | Open XML SDK (clase) |
---|---|
<tableColumn/> |
TableColumn |
<autoFilter/> |
AutoFilter |
Clase de tabla del SDK de Open XML
La clase SDK Table
de Open XML representa el elemento de tabla (<table/>
) definido en el esquema formato de archivo Open XML para documentos SpreadsheetML. Use la Table
clase para manipular elementos individuales <table/>
en un documento SpreadsheetML.
La siguiente información de la especificación ISO/IEC 29500 presenta el table
elemento (<table/>
).
Una instancia de este tipo de parte contiene una descripción de una única tabla y su información de filtro automático. (Los datos de la tabla se almacenan en la parte de hoja de cálculo correspondiente).
El elemento raíz de una parte de este tipo de contenido será la tabla.
La parte de tabla contiene la definición de una única tabla. Cuando hay varias tablas en una hoja de cálculo, hay varias partes de tabla. El elemento raíz de esta parte es la tabla. Como mínimo, la tabla necesita información acerca de las columnas que componen la tabla. Sin embargo, para habilitar el filtrado automático debe definir al menos un filtro automático, que puede estar vacío. Si no define ningún filtro automático, se deshabilitará el filtrado automático cuando se abra el documento en Excel.
El table
elemento tiene varios atributos usados para identificar la tabla y el intervalo de datos que abarca. Los id
atributos y name
deben ser únicos en todas las partes de la tabla. El displayName
atributo debe ser único en todos los elementos de tabla y único en todos los nombres definidos en el libro. El name
modelo de objetos usa el atributo en Excel. Las displayName
referencias usan el atributo en fórmulas. El ref
atributo se usa para identificar el intervalo de celdas que cubre la tabla. Esto no solo incluye los datos de tabla, sino también el encabezado de tabla que contiene los nombres de columna. Para obtener más información sobre los atributos de tabla, vea la especificación ISO/IEC 29500.
Clase TableColumn
Para agregar columnas a la tabla, agregue nuevos tableColumn
elementos a la tableColumns
colección. La colección tiene un atributo count que realiza el seguimiento del número de columnas.
La siguiente información de la especificación ISO/IEC 29500 presenta el TableColumn
elemento (<tableColumn/>
).
Un elemento que representa una única columna de esta tabla.
Clase AutoFilter
La siguiente información de la especificación ISO/IEC 29500 presenta el AutoFilter
elemento (<autoFilter/>
).
El filtro automático oculta temporalmente las filas según criterios de filtro, que se aplican columna por columna a una tabla de datos de la hoja de cálculo. Esta colección expresa los valores del filtro automático.
Ejemplo: en este ejemplo se expresa un filtro que indica que "mostrar solo valores mayores que 0,5". El filtro se aplica al rango B3:E8 y los criterios se aplican a los valores de la columna con colId='1' (numeración de columna de base cero, de izquierda a derecha). Por lo tanto, si el valor de esa columna en particular es menor o igual a 0,5, se deben ocultar todas las filas.
<autoFilter ref="B3:E8">
<filterColumn colId="1">
<customFilters>
<customFilter operator="greaterThan" val="0.5"/>
</customFilters>
</filterColumn>
</autoFilter>
Ejemplo de SpreadsheetML
En este ejemplo se muestra el XML de un archivo que contiene una tabla en la Hoja1. La tabla contiene tres columnas y tres filas, además de un encabezado de columna.
El siguiente XML define la hoja de cálculo y se incluye en el archivo "sheet1.xml". El archivo XML de hoja de cálculo contiene los datos reales mostrados en la tabla y contiene el tablePart
elemento que hace referencia al archivo "table1.xml", que contiene la definición de tabla.
<?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" xmlns:mc="https://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="https://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
<dimension ref="A1:C4"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection sqref="A1:C4"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>
<cols>
<col min="1" max="3" width="11" customWidth="1"/>
</cols>
<sheetData>
<row r="1" spans="1:3" x14ac:dyDescent="0.25">
<c r="A1" t="s">
<v>0</v>
</c>
<c r="B1" t="s">
<v>1</v>
</c>
<c r="C1" t="s">
<v>2</v>
</c>
</row>
<row r="2" spans="1:3" x14ac:dyDescent="0.25">
<c r="A2">
<v>1</v>
</c>
<c r="B2">
<v>2</v>
</c>
<c r="C2">
<v>3</v>
</c>
</row>
<row r="3" spans="1:3" x14ac:dyDescent="0.25">
<c r="A3">
<v>4</v>
</c>
<c r="B3">
<v>5</v>
</c>
<c r="C3">
<v>6</v>
</c>
</row>
<row r="4" spans="1:3" x14ac:dyDescent="0.25">
<c r="A4">
<v>7</v>
</c>
<c r="B4">
<v>8</v>
</c>
<c r="C4">
<v>9</v>
</c>
</row>
</sheetData>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
<tableParts count="1">
<tablePart r:id="rId1"/>
</tableParts>
</worksheet>
El siguiente código XML define la tabla y se encuentra en el archivo "table1.xml". El archivo XML de tabla define el rango de la tabla y el aspecto de la misma, así como sus filtros automáticos.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<table xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" id="1" name="Table1" displayName="Table1" ref="A1:C4" totalsRowShown="0">
<autoFilter ref="A1:C4"/>
<tableColumns count="3">
<tableColumn id="1" name="Column1"/>
<tableColumn id="2" name="Column2"/>
<tableColumn id="3" name="Column3"/>
</tableColumns>
<tableStyleInfo name="TableStyleMedium2" showFirstColumn="0" showLastColumn="0" showRowStripes="1" showColumnStripes="0"/>
</table>