Compartilhar via


Trabalhando com tabelas spreadsheetML

Este tópico discute a classe Open XML SDK Table e como ela se relaciona com o esquema Open XML File Format SpreadsheetML. Para obter mais informações sobre a estrutura geral das partes e elementos que compõem um documento SpreadsheetML, consulte Estrutura de um documento SpreadsheetML (Open XML SDK).

Tabelas em PlanilhaML

As informações a seguir da especificação ISO/IEC 29500 introduzem o elemento tabela (<tabela>).

Uma tabela ajuda a organizar e fornecer estrutura para listas de informações em uma planilha. As tabelas rotularam claramente colunas, linhas e regiões de dados. As tabelas facilitam a classificação, análise, formato, gerenciamento, adição e exclusão de informações dos usuários.

Se uma região de dados for designada como uma Tabela, comportamentos especiais poderão ser aplicados que ajudam o usuário a executar ações úteis. [Exemplo: se o usuário digitar dados adicionais na linha adjacente à parte inferior da tabela, a tabela poderá expandir e adicionar automaticamente esses dados à região de dados da tabela. Da mesma forma, adicionar uma coluna é tão fácil quanto digitar um novo título de coluna à direita ou à esquerda dos títulos de coluna atuais. As habilidades de filtragem e classificação podem ser exibidas automaticamente para o usuário por meio das setas suspensas. Colunas calculadas especiais podem ser criadas que resumem ou calculam dados na tabela. Essas colunas têm a capacidade de expandir e reduzir de acordo com o tamanho da tabela e manter a referenciação de fórmula adequada. exemplo final]

As tabelas podem ser criadas a partir de dados já presentes na planilha, de uma consulta de dados externa ou de mapeamento de uma coleção de elementos XML repetidos para um intervalo de planilhas.

A folha XML armazena os dados numéricos e textuais. A tabela XML registra os vários atributos para o objeto de tabela específico.

Uma tabela SpreadsheetML é um constructo lógico que especifica que um intervalo de dados pertence a um único conjunto de dados. O SpreadsheetML já usa um modelo semelhante a uma tabela para especificar valores em linhas e colunas, mas você também pode rotular um subconjunto da folha como uma tabela e dar-lhe determinadas propriedades úteis para análise. Uma tabela no SpreadsheetML permite que você analise dados de novas maneiras, como usando filtragem, formatação e associação de dados.

Como outros constructos no SpreadsheetML, uma tabela em uma planilha é armazenada em uma parte separada dentro do pacote. A parte da tabela não contém dados de tabela. Os dados são mantidos nas células da planilha. Para obter mais informações sobre os dados armazenados na planilha, consulte Trabalhar com planilhas.

A tabela a seguir lista as classes comuns de SDK Open XML usadas ao trabalhar com a classe Table .

Elemento SpreadsheetML Classe SDK Open XML
Tablecolumn TableColumn
Autofiltro AutoFilter

Abrir classe de tabela do SDK XML

A classe Open XML SDKTable representa o elemento table (<table>) definido no esquema Open XML File Format para documentos SpreadsheetML. Use a classe Table para manipular elementos de tabela> individuais < em um documento SpreadsheetML.

As informações a seguir da especificação ISO/IEC 29500 introduzem o elemento tabela (<tabela>).

Uma instância desse tipo de parte contém uma descrição de uma única tabela e suas informações de preenchimento automático. (Os dados da tabela são armazenados na parte correspondente da planilha.)

O elemento raiz de uma parte desse tipo de conteúdo deve ser tabela.

A parte da tabela contém a definição de uma única tabela. Quando há várias tabelas em uma planilha, há várias partes da tabela. O elemento raiz dessa parte é a tabela. No mínimo, a tabela só precisa de informações sobre as colunas de tabela que compõem a tabela. No entanto, para habilitar o preenchimento automático, você deve definir pelo menos um filtro automático, que pode estar vazio. Se você não definir nenhum filtro automático, o preenchimento automático será desabilitado quando o documento for aberto no Excel.

O elemento table tem vários atributos usados para identificar a tabela e o intervalo de dados que ele aborda. Os atributos id e name devem ser exclusivos em todas as partes da tabela. O atributo displayName deve ser exclusivo em todas as partes da tabela e exclusivo em todos os nomes definidos na pasta de trabalho. O atributo de nome é usado pelo modelo de objeto no Excel. O atributo displayName é usado por referências em fórmulas. O atributo ref é usado para identificar o intervalo de células que a tabela cobre. Isso inclui não apenas os dados da tabela, mas também o cabeçalho da tabela que contém nomes de coluna. Para obter mais informações sobre atributos de tabela, consulte a especificação ISO/IEC 29500.

Classe Coluna de Tabela

Para adicionar colunas à tabela, adicione novos elementos tableColumn à coleção tableColumns . A coleção tem um atributo de contagem que rastreia o número de colunas.

As informações a seguir da especificação ISO/IEC 29500 introduzem o elemento TableColumn (<tableColumn>).

Um elemento que representa uma única coluna para esta tabela.

Classe de filtro automático

As informações a seguir da especificação ISO/IEC 29500 introduzem o elemento AutoFilter (<autoFilter>).

O AutoFilter oculta temporariamente linhas com base em critérios de filtro, que é aplicado coluna por coluna a uma tabela de dados na planilha. Essa coleção expressa as configurações do AutoFilter.

Exemplo: este exemplo expressa um filtro que indica "mostrar apenas valores maiores que 0,5". O filtro está sendo aplicado ao intervalo B3:E8 e os critérios estão sendo aplicados a valores na coluna cujo colId='1' (numeração de coluna baseada em zero, da esquerda para a direita). Portanto, todas as linhas devem ser ocultas se o valor nessa coluna específica for menor ou igual a 0,5.

<autoFilter ref="B3:E8">
    <filterColumn colId="1">
        <customFilters>
            <customFilter operator="greaterThan" val="0.5"/>
        </customFilters>
    </filterColumn>
</autoFilter>

Exemplo de planilha

Este exemplo mostra o XML de um arquivo que contém uma tabela na Planilha1. A tabela contém três colunas e três linhas, além de um cabeçalho de coluna.

O XML a seguir define a planilha e está contido no arquivo "sheet1.xml". O arquivo XML da planilha contém os dados reais exibidos na tabela e contém o elemento tablePart que faz referência ao arquivo "table1.xml", que contém a definição da tabela.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="https://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>

O XML a seguir define a tabela e está contido no arquivo "table1.xml". O arquivo XML da tabela define como o intervalo da tabela e a aparência da tabela e define todos os preenchimentos automáticos para a tabela.

    <?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>