Gerenciar linhas e colunas em tabelas PowerPoint usando Java
Introdução
Para permitir que você gerencie as linhas e colunas de uma tabela em uma apresentação PowerPoint, o Aspose.Slides fornece a classe Table, a interface ITable e muitos outros tipos.
Definir a Primeira Linha como Cabeçalho
- Crie uma instância da classe Presentation e carregue a apresentação.
- Obtenha a referência de um slide através de seu índice.
- Crie um objeto [ITable] e defina-o como nulo.
- Itere por todos os objetos IShape para encontrar a tabela relevante.
- Defina a primeira linha da tabela como seu cabeçalho.
Este código Java mostra como definir a primeira linha de uma tabela como cabeçalho:
// Instancia a classe Presentation
Presentation pres = new Presentation("table.pptx");
try {
// Acessa o primeiro slide
ISlide sld = pres.getSlides().get_Item(0);
// Inicializa a TableEx nula
ITable tbl = null;
// Itera pelos shapes e define uma referência para a tabela
for (IShape shp : sld.getShapes())
{
if (shp instanceof ITable)
{
tbl = (ITable)shp;
//Define a primeira linha de uma tabela como seu cabeçalho
tbl.setFirstRow(true);
}
}
// Salva a apresentação no disco
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Clonar uma Linha ou Coluna da Tabela
- Crie uma instância da classe Presentation e carregue a apresentação,
- Obtenha a referência de um slide através de seu índice.
- Defina um array de
columnWidth. - Defina um array de
rowHeight. - Adicione um objeto ITable ao slide usando o método addTable.
- Clone a linha da tabela.
- Clone a coluna da tabela.
- Salve a apresentação modificada.
Este código Java mostra como clonar a linha ou a coluna de uma tabela do PowerPoint:
// Instancia a classe Presentation
Presentation pres = new Presentation("Test.pptx");
try {
// Acessa o primeiro slide
ISlide sld = pres.getSlides().get_Item(0);
// Define colunas com larguras e linhas com alturas
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// Adiciona uma forma de tabela ao slide
ITable table = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Adiciona texto à célula 1 da linha 1
table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1");
// Adiciona texto à célula 2 da linha 1
table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2");
// Clona a linha 1 no final da tabela
table.getRows().addClone(table.getRows().get_Item(0), false);
// Adiciona texto à célula 1 da linha 2
table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1");
// Adiciona texto à célula 2 da linha 2
table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2");
// Clona a linha 2 como a quarta linha da tabela
table.getRows().insertClone(3, table.getRows().get_Item(1), false);
// Clona a primeira coluna no final
table.getColumns().addClone(table.getColumns().get_Item(0), false);
// Clona a segunda coluna no índice da quarta coluna
table.getColumns().insertClone(3,table.getColumns().get_Item(1), false);
// Salva a apresentação no disco
pres.save("table_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Remover uma Linha ou Coluna de uma Tabela
- Crie uma instância da classe Presentation e carregue a apresentação,
- Obtenha a referência de um slide através de seu índice.
- Defina um array de
columnWidth. - Defina um array de
rowHeight. - Adicione um objeto ITable ao slide usando o método addTable.
- Remova a linha da tabela.
- Remova a coluna da tabela.
- Salve a apresentação modificada.
Este código Java mostra como remover uma linha ou coluna de uma tabela:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
double[] colWidth = { 100, 50, 30 };
double[] rowHeight = { 30, 50, 30 };
ITable table = slide.getShapes().addTable(100, 100, colWidth, rowHeight);
table.getRows().removeAt(1, false);
table.getColumns().removeAt(1, false);
pres.save("TestTable_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Definir Formatação de Texto no Nível de Linha da Tabela
- Crie uma instância da classe Presentation e carregue a apresentação,
- Obtenha a referência de um slide através de seu índice.
- Acesse o objeto ITable relevante do slide.
- Defina a altura da fonte das células da primeira linha usando setFontHeight(float value).
- Defina o alinhamento das células da primeira linha com setAlignment(int value) e a margem direita com setMarginRight(float value).
- Defina o tipo de orientação vertical do texto das células da segunda linha com setTextVerticalType(byte value).
- Salve a apresentação modificada.
Este código Java demonstra a operação:
// Cria uma instância da classe Presentation
Presentation pres = new Presentation();
try {
// Vamos supor que a primeira forma no primeiro slide seja uma tabela
ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Define a altura da fonte das células da primeira linha
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
someTable.getRows().get_Item(0).setTextFormat(portionFormat);
// Define o alinhamento de texto e a margem direita das células da primeira linha
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getRows().get_Item(0).setTextFormat(paragraphFormat);
// Define o tipo de orientação vertical do texto das células da segunda linha
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
someTable.getRows().get_Item(1).setTextFormat(textFrameFormat);
// Salva a apresentação no disco
pres.save("result.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Definir Formatação de Texto no Nível de Coluna da Tabela
- Crie uma instância da classe Presentation e carregue a apresentação,
- Obtenha a referência de um slide através de seu índice.
- Acesse o objeto ITable relevante do slide.
- Defina a altura da fonte das células da primeira coluna usando setFontHeight(float value).
- Defina o alinhamento das células da primeira coluna com setAlignment(int value) e a margem direita com setMarginRight(float value).
- Defina o tipo de orientação vertical do texto das células da segunda coluna com setTextVerticalType(byte value).
- Salve a apresentação modificada.
Este código Java demonstra a operação:
// Cria uma instância da classe Presentation
Presentation pres = new Presentation();
try {
// Vamos supor que a primeira forma no primeiro slide seja uma tabela
ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0)];
// Define a altura da fonte das células da primeira coluna
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
someTable.getColumns().get_Item(0).setTextFormat(portionFormat);
// Define o alinhamento de texto e a margem direita das células da primeira coluna em uma única chamada
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getColumns().get_Item(0).setTextFormat(paragraphFormat);
// Define o tipo de orientação vertical do texto das células da segunda coluna
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
someTable.getColumns().get_Item(1).setTextFormat(textFrameFormat);
pres.save("result.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Obter Propriedades de Estilo da Tabela
O Aspose.Slides permite que você recupere as propriedades de estilo de uma tabela para que possa usar esses detalhes em outra tabela ou em outro local. Este código Java mostra como obter as propriedades de estilo a partir de um estilo predefinido de tabela:
Presentation pres = new Presentation();
try {
ITable table = pres.getSlides().get_Item(0).getShapes().addTable(10, 10, new double[] { 100, 150 }, new double[] { 5, 5, 5 });
table.setStylePreset(TableStylePreset.DarkStyle1); // altera o tema de estilo predefinido padrão
pres.save("table.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Posso aplicar temas/estilos do PowerPoint a uma tabela que já foi criada?
Sim. A tabela herda o tema do slide/layout/master e ainda é possível sobrescrever preenchimentos, bordas e cores de texto sobre esse tema.
Posso classificar linhas da tabela como no Excel?
Não, as tabelas do Aspose.Slides não possuem classificação ou filtros internos. Classifique seus dados na memória primeiro e, em seguida, repopule as linhas da tabela nessa ordem.
Posso ter colunas em faixas (listradas) mantendo cores personalizadas em células específicas?
Sim. Ative colunas em faixas e, depois, sobrescreva células específicas com formatação local; a formatação ao nível da célula tem precedência sobre o estilo da tabela.