Trabalhar com mesas

Trabalhar com mesas

Aspose.Cells FOSS for Java supports Excel tables (also known as ListObjects or Você pode criar novas tabelas a partir de intervalos de células, inspecionar tabelas existentes, configurar linhas de cabeçalho e totais, aplicar estilos de tabela integrados;, acessar colunas individuais, e converter tabelas de volta para os intervalos normais. ponto de entrada é: ListObjectCollection, acessado através de: Worksheet.getListObjects().


Resumo geral

As tabelas numa folha de cálculo são geridas através do sistema de gestão da informação. ListObjectCollection devolvido por: Worksheet.getListObjects().Cada um . ListObject representa uma tabela do Excel e expõe o seu nome de exibição, comentário, limites do intervalo das células, coleção de colunas, estilo configurações e visibilidade das linhas de cabeçalho/total.

Uma nova tabela é criada com ListObjectCollection.add(startRow, startColumn, endRow, endColumn, hasHeaders), que retorna o índice baseado em zero da tabela recém-criada. Uma alternativa é a taxa de referência do número de números, e então os valores são dados para cada um dos dois tipos de tabelas. sobrecarga aceita cadeias de nomes de célula: ListObjectCollection.add(startCellName, endCellName, hasHeaders).


Classe-chave

Classe:Descrição:
ListObjectRepresenta uma única tabela do Excel. Expõe getDisplayName(), getComment(), coordenadas de intervalo, coleção de colunas, tipo de estilo e visibilidade da linha do cabeçalho/total.
ListObjectCollectionColeção de todas as tabelas numa folha de cálculo. Suportes getCount(), indexado e nomeação via get(), add(), remove(), e auxiliares de conversão do tipo estilo.
ListColumnRepresenta uma coluna dentro de uma tabela. Exponha a ID da colun­la, o nome e as configurações do cálculo das linhas totais.
ListColumnCollectionColeção ordenada de colunas numa tabela. Iterável com acesso a contagem e índice.
TableStyleTypeEnum identificando um estilo de tabela do Excel incorporado (Light 121, Medium 1 ??28, Dark 1 11, ou Custom/None).
TotalsCalculationEnum para a função de agregação na linha dos totais de uma tabela (SUMO, CONTAÇÃO, MEDIAÇÕES, MAX, MIN, STD_DEV, VAR, COUNT_NUMS, CUSTOM, NONE).

Acesso a tabelas numa planilha

Recuperar o ListObjectCollection de qualquer Worksheet via: Worksheet.getListObjects().- Usar . ListObjectCollection.getCount() para determinar: Quantas tabelas existem. As tabeladas individuais são acessadas por índice baseado em zero através de ListObjectCollection.get(index) ou pelo nome de exibição através do ListObjectCollection.get(name).

Workbook wb = new Workbook("input.xlsx");
WorksheetCollection sheets = wb.getWorksheets();
Worksheet ws = sheets.get(0);
ListObjectCollection tables = ws.getListObjects();

for (int i = 0; i < tables.getCount(); i++) {
    ListObject table = tables.get(i);
    System.out.println("Table: " + table.getDisplayName()
        + " rows: " + table.getStartRow() + "-" + table.getEndRow());
}

Criar uma nova mesa

Utilização: ListObjectCollection.add() para inserir uma tabela sobre um intervalo de células. O hasHeaders Parâmetro indica se a primeira linha do intervalo contém: cabeçalhos de coluna.

Workbook wb = new Workbook();
WorksheetCollection sheets = wb.getWorksheets();
Worksheet ws = sheets.get(0);

// Populate data
ws.getCells().get("A1").putValue("Product");
ws.getCells().get("B1").putValue("Quantity");
ws.getCells().get("A2").putValue("Widget");
ws.getCells().get("B2").putValue(100);

// Create table over A1:B2 with headers in row 0
int tableIndex = ws.getListObjects().add(0, 0, 1, 1, true);
ListObject table = ws.getListObjects().get(tableIndex);
table.setDisplayName("SalesTable");

Inspecção das propriedades da tabela

Uma vez que você segurar um ListObject referências que pode ler:

  • ListObject.getDisplayName() a cadeia de nomes da tabela.
  • ListObject.getComment() um comentário facultativo associado à tabela.
  • ListObject.getStartRow() / ListObject.getStartColumn() Celular superior esquerdo do intervalo da tabela.
  • ListObject.getEndRow() / ListObject.getEndColumn() Celular inferior direito do intervalo da tabela.
  • ListObject.isShowHeaderRow() se a linha de cabeçalho é visível.
  • ListObject.isShowTotals() se a linha de totais é visível.
  • ListObject.getListColumns() o ListColumnCollection Para a mesa.

Tabelas de estilo

Aplicar um estilo de tabela integrado usando ListObject.setTableStyleType(TableStyleType). A Comissão TableStyleType enum inclui Light (121), Medium (1 ??28), e Dark (1 11) variantes mais NONE e a) CUSTOM.

ListObject table = ws.getListObjects().get(0);
table.setTableStyleType(TableStyleType.TABLE_STYLE_MEDIUM_2);

Modelos adicionais de controle alternativos para linhas com faixa, colunas com banda e ênfase na primeira/última coluna:

  • ListObject.setShowTableStyleRowStripes(boolean)
  • ListObject.setShowTableStyleColumnStripes(boolean)
  • ListObject.setShowTableStyleFirstColumn(boolean)
  • ListObject.setShowTableStyleLastColumn(boolean)

Também pode definir um nome de estilo personalizado com ListObject.setTableStyleName(String).

Métodos auxiliares ListObjectCollection.parseTableStyleType(String) e a) ListObjectCollection.tableStyleTypeName(TableStyleType) Convertir entre os valores de enum e sua representação de cadeia.


Trabalhar com colunas de tabela

Acesso a colunas individuais através do ListObject.getListColumns(), que retorna um valor de ListColumnCollection.Cada um . ListColumn expõe:

  • ListColumn.getId() o identificador de coluna OOXML baseado num único código.
  • ListColumn.getName() / ListColumn.setName(String) o texto do cabeçalho da coluna.
  • ListColumn.getTotalsCalculation() / ListColumn.setTotalsCalculation(TotalsCalculation) a função de agregação para a linha dos totais.
  • ListColumn.getTotalsRowLabel() / ListColumn.setTotalsRowLabel(String) um rótulo personalizado na linha de totais.
  • ListColumn.getTotalsRowFormula() / ListColumn.setTotalsRowFormula(String) uma fórmula personalizada para a linha de totais.
ListObject table = ws.getListObjects().get(0);
ListColumnCollection columns = table.getListColumns();
for (int i = 0; i < columns.getCount(); i++) {
    ListColumn col = columns.get(i);
    System.out.println("Column " + col.getId() + ": " + col.getName());
}

Configuração da linha de totais

Ativar a linha de totais com ListObject.setShowTotals(true), então definido por coluna Funções de agregação utilizando o método TotalsCalculation - Não.

ListObject table = ws.getListObjects().get(0);
table.setShowTotals(true);

ListColumn qtyColumn = table.getListColumns().get(1);
qtyColumn.setTotalsCalculation(TotalsCalculation.SUM);

ListColumn labelColumn = table.getListColumns().get(0);
labelColumn.setTotalsRowLabel("Total");

Redimensionar e converter mesas

Alterar o tamanho de uma tabela para cobrir um intervalo diferente de células usando: ListObject.resize(startRow, startColumn, endRow, endColumn, hasHeaders).

Converter uma tabela de volta para um intervalo normal com: ListObject.convertToRange(). Isto remove a estrutura da tabela, preservando os dados das células e o formato.

Remover uma tabela inteiramente da coleção com: ListObjectCollection.removeAt(index).


Filtros automáticos em mesas

Mostrar ou remover as setas de filtro automático na lista suspensa das colunas numa tabela:

  • ListObject.showAutoFilter() exibir setas de filtro na linha do cabeçalho.
  • ListObject.removeAutoFilter() Esconda as setas de filtro.

Resumo de referência da API

ListObject

Método de avaliaçãoTipo de devoluçãoDescrição:
getDisplayName()StringIndicar o nome da mesa.
setDisplayName(name)voidIndica o nome de exibição.
getComment()StringComentário opcional para a tabela.
setComment(comment)voidEstabelece o comentário da tabela.
getStartRow()intÍndice de linha inicial do intervalo da tabela.
getStartColumn()intÍndice de coluna inicial do intervalo da tabela.
getEndRow()intÍndice de linha final do intervalo da tabela.
getEndColumn()intÍndice de coluna final do intervalo da tabela.
isShowHeaderRow()booleanSe a linha de cabeçalho é visível.
setShowHeaderRow(show)voidMostra ou oculta a linha de cabeçalho.
isShowTotals()booleanSe a linha de totais é visível.
setShowTotals(show)voidMostra ou oculta a linha de totais.
getTableStyleType()TableStyleTypeO estilo de mesa integrada.
setTableStyleType(type)voidAplica um estilo de mesa incorporado.
getTableStyleName()StringNome de estilo de mesa personalizado.
setTableStyleName(name)voidDefina um nome de estilo de tabela personalizado.
getListColumns()ListColumnCollectionA coleção de colunas da mesa.
resize(...)voidRedimensionar a mesa para uma nova faixa.
convertToRange()voidConverte a tabela para um intervalo normal.
showAutoFilter()voidMostra as setas de filtro automático.
removeAutoFilter()voidEsconde as setas de filtro automático.

ListObjectCollection

Método de avaliaçãoTipo de devoluçãoDescrição:
getCount()intNúmero de tabelas na folha de cálculo.
get(index)ListObjectRetorna a tabela no índice baseado em zero dado.
get(name)ListObjectRetorna a tabela com o nome de exibição dado.
add(startRow, startColumn, endRow, endColumn, hasHeaders)intCria uma nova tabela; retorna o seu índice.
add(startCellName, endCellName, hasHeaders)intCria uma nova tabela a partir de nomes de células; retorna o seu índice.
removeAt(index)voidRemove a tabela no índice dado.
parseTableStyleType(name)TableStyleTypeConverte uma cadeia de caracteres em um TableStyleType valor enum.
tableStyleTypeName(type)StringConverte a TableStyleType enum para o seu nome de cadeia.

ListColumn

Método de avaliaçãoTipo de devoluçãoDescrição:
getId()intIdentificador de coluna OOXML baseado num único elemento.
getName()StringTexto de cabeçalho da coluna.
setName(name)voidIndica o texto do cabeçalho da coluna.
getTotalsCalculation()TotalsCalculationFunção de agregação das linhas dos totais.
setTotalsCalculation(calc)voidDefine a agregação das linhas de totais.
getTotalsRowLabel()StringRótulo personalizado na linha de totais.
setTotalsRowLabel(label)voidIndica a etiqueta da linha de totais.
getTotalsRowFormula()StringFórmula personalizada para a linha de totais.
setTotalsRowFormula(formula)voidEstabelece a fórmula da linha de totais.

Limitações

  • As ligações de dados das tabelas não podem ser modificadas separadamente; a tabela abrange o intervalo especificado no momento da criação. resize() para ajustar a faixa coberta.
  • Os estilos de tabela personalizados devem ser definidos no livro antes de os referenciar . por nome via setTableStyleName().

Ver também:

 Português