Compartilhar via


Trabalhar com tabelas de Folha de CálculoML

Este tópico aborda a classe Open XML SDK Table e como 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 de Folha de CálculoML, veja Estrutura de um documento de Folha de CálculoML (Open XML SDK).

Tabelas em Folha de CálculoML

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

Uma tabela ajuda a organizar e fornecer estrutura a listas de informações numa folha de cálculo. As tabelas têm claramente etiquetas de colunas, linhas e regiões de dados. As tabelas facilitam a ordenação, análise, formatação, gestão, adição e eliminação de informações por parte dos utilizadores.

Se uma região de dados for designada como uma Tabela, podem ser aplicados comportamentos especiais que ajudam o utilizador a realizar ações úteis. [Exemplo: se o utilizador escrever dados adicionais na linha adjacente à parte inferior da tabela, a tabela pode expandir e adicionar automaticamente esses dados à região de dados da tabela. Da mesma forma, adicionar uma coluna é tão fácil como escrever um novo cabeçalho de coluna à direita ou à esquerda dos cabeçalhos de coluna atuais. As capacidades de filtragem e ordenação podem ser automaticamente apresentadas ao utilizador através das setas pendentes. Podem ser criadas colunas calculadas especiais que resumem ou calculam dados na tabela. Estas colunas têm a capacidade de expandir e encolher de acordo com o tamanho da tabela e manter a referência de fórmula adequada. exemplo final]

As tabelas podem ser criadas a partir de dados já presentes na folha de cálculo, a partir de uma consulta de dados externos ou do mapeamento de uma coleção de elementos XML repetidos para um intervalo de folha de cálculo.

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

Uma tabela de Folha de CálculoML é uma construção lógica que especifica que um intervalo de dados pertence a um único conjunto de dados. A Folha de CálculoML já utiliza um modelo semelhante a uma tabela para especificar valores em linhas e colunas, mas também pode etiquetar um subconjunto da folha como um table e atribuir-lhe determinadas propriedades úteis para análise. Uma tabela na Folha de CálculoML permite-lhe analisar dados de novas formas, como através da filtragem, formatação e enlace de dados.

Tal como outras construções na Folha de CálculoML, uma tabela numa folha de cálculo é armazenada numa 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 folha de cálculo. Para obter mais informações sobre os dados armazenados na folha de cálculo, consulte Trabalhar com folhas.

A tabela seguinte lista as classes comuns do SDK Open XML utilizadas ao trabalhar com a Table classe .

Elemento SpreadsheetML Abrir Classe SDK XML
<tableColumn/> TableColumn
<autoFilter/> AutoFilter

Abrir Classe de Tabela do SDK XML

A classe Open XML SDK Table representa o elemento de tabela (<table/>) definido no esquema Open XML File Format para documentos de Folha de CálculoML. Utilize a Table classe para manipular elementos individuais <table/> num documento de Folha de CálculoML.

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

Uma instância deste tipo de peça contém uma descrição de uma única tabela e as respetivas informações de filtro automático. (Os dados da tabela são armazenados na parte da Folha de Cálculo correspondente.)

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

A parte da tabela contém a definição de uma única tabela. Quando existem várias tabelas numa folha de cálculo, existem várias partes da tabela. O elemento raiz desta parte é a tabela. No mínimo, a tabela só precisa de informações sobre as colunas da tabela que compõem a tabela. No entanto, para ativar o filtro automático, tem de definir pelo menos um filtro automático, que pode estar vazio. Se não definir nenhum filtro automático, o filtro automático será desativado quando o documento for aberto no Excel.

O table elemento tem vários atributos utilizados para identificar a tabela e o intervalo de dados que abrange. Os id atributos e name têm de ser exclusivos em todas as partes da tabela. O displayName atributo tem de ser exclusivo em todas as partes da tabela e exclusivo em todos os nomes definidos no livro. O name atributo é utilizado pelo modelo de objetos no Excel. O displayName atributo é utilizado por referências em fórmulas. O ref atributo é utilizado para identificar o intervalo de células que a tabela abrange. Isto inclui não só os dados da tabela, mas também o cabeçalho da tabela que contém nomes de colunas. Para obter mais informações sobre atributos de tabela, consulte a especificação ISO/IEC 29500.

Classe de Coluna da Tabela

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

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

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

Classe de Filtro Automático

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

O Filtro Automático oculta temporariamente as linhas com base nos critérios de filtro, que são aplicados coluna a coluna a uma tabela de dados na folha de cálculo. Esta coleção expressa as definições do Filtro Automático.

Exemplo: este exemplo expressa um filtro que indica "mostrar apenas valores superiores a 0,5". O filtro está a ser aplicado ao intervalo B3:E8 e os critérios estão a ser aplicados aos valores na coluna cujo colId='1' (numeração de colunas baseada em zero, da esquerda para a direita). Portanto, todas as linhas têm de ser ocultadas 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 Folha de CálculoML

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

O XML seguinte define a folha de cálculo e está contida no ficheiro "sheet1.xml". O ficheiro XML da folha de cálculo contém os dados reais apresentados na tabela e contém o tablePart elemento que referencia o ficheiro "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="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>

O XML seguinte define a tabela e está contido no ficheiro "table1.xml". O ficheiro XML da tabela define o aspeto do intervalo da tabela e da tabela e define os filtros automáticos da 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>