Gerenciar linhas e colunas em tabelas PowerPoint usando JavaScript
Introdução
Para permitir que você gerencie linhas e colunas de uma tabela em uma apresentação PowerPoint, o Aspose.Slides fornece a classe Table e 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 do seu índice.
- Crie um objeto Table e defina-o como nulo.
- Percorra todos os objetos Shape para encontrar a tabela relevante.
- Defina a primeira linha da tabela como seu cabeçalho.
Este código JavaScript mostra como definir a primeira linha de uma tabela como seu cabeçalho:
// Instancia a classe Presentation
var pres = new aspose.slides.Presentation("table.pptx");
try {
// Acessa o primeiro slide
var sld = pres.getSlides().get_Item(0);
// Inicializa a TableEx nula
var tbl = null;
// Itera pelas shapes e define uma referência para a tabela
for (let i = 0; i < sld.getShapes().size(); i++) {
let shp = sld.getShapes().get_Item(i);
if (java.instanceOf(shp, "com.aspose.slides.ITable")) {
tbl = 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", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Clonar 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 do seu índice.
- Defina um array de
columnWidth. - Defina um array de
rowHeight. - Adicione um objeto Table ao slide através do método addTable.
- Clone a linha da tabela.
- Clone a coluna da tabela.
- Salve a apresentação modificada.
Este código JavaScript mostra como clonar a linha ou coluna de uma tabela PowerPoint:
// Instancia a classe Presentation
var pres = new aspose.slides.Presentation("Test.pptx");
try {
// Acessa o primeiro slide
var sld = pres.getSlides().get_Item(0);
// Define colunas com larguras e linhas com alturas
var dblCols = java.newArray("double", [50, 50, 50]);
var dblRows = java.newArray("double", [50, 30, 30, 30, 30]);
// Adiciona uma forma de tabela ao slide
var 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 ao 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 4ª linha da tabela
table.getRows().insertClone(3, table.getRows().get_Item(1), false);
// Clona a primeira coluna ao final
table.getColumns().addClone(table.getColumns().get_Item(0), false);
// Clona a 2ª coluna no índice da 4ª coluna
table.getColumns().insertClone(3, table.getColumns().get_Item(1), false);
// Salva a apresentação no disco
pres.save("table_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Remover 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 do seu índice.
- Defina um array de
columnWidth. - Defina um array de
rowHeight. - Adicione um objeto Table ao slide através do método addTable.
- Remova a linha da tabela.
- Remova a coluna da tabela.
- Salve a apresentação modificada.
Este código JavaScript mostra como remover uma linha ou coluna de uma tabela:
var pres = new aspose.slides.Presentation();
try {
var slide = pres.getSlides().get_Item(0);
var colWidth = java.newArray("double", [100, 50, 30]);
var rowHeight = java.newArray("double", [30, 50, 30]);
var table = slide.getShapes().addTable(100, 100, colWidth, rowHeight);
table.getRows().removeAt(1, false);
table.getColumns().removeAt(1, false);
pres.save("TestTable_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Definir formatação de texto no nível da linha da tabela
- Crie uma instância da classe Presentation e carregue a apresentação,
- Obtenha a referência de um slide através do seu índice.
- Acesse o objeto Table relevante no slide.
- Defina a setFontHeight(float value) das células da primeira linha.
- Defina a setAlignment(int value) e a setMarginRight(float value) das células da primeira linha.
- Defina a setTextVerticalType(byte value) das células da segunda linha.
- Salve a apresentação modificada.
Este código JavaScript demonstra a operação.
// Cria uma instância da classe Presentation
var pres = new aspose.slides.Presentation();
try {
// Vamos supor que a primeira forma no primeiro slide seja uma tabela
var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Define a altura da fonte das células da primeira linha
var portionFormat = new aspose.slides.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
var paragraphFormat = new aspose.slides.ParagraphFormat();
paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getRows().get_Item(0).setTextFormat(paragraphFormat);
// Define o tipo vertical de texto das células da segunda linha
var textFrameFormat = new aspose.slides.TextFrameFormat();
textFrameFormat.setTextVerticalType(aspose.slides.TextVerticalType.Vertical);
someTable.getRows().get_Item(1).setTextFormat(textFrameFormat);
// Salva a apresentação no disco
pres.save("result.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Definir formatação de texto no nível da coluna da tabela
- Crie uma instância da classe Presentation e carregue a apresentação,
- Obtenha a referência de um slide através do seu índice.
- Acesse o objeto Table relevante no slide.
- Defina a setFontHeight(float value) das células da primeira coluna.
- Defina a setAlignment(int value) e a setMarginRight(float value) das células da primeira coluna.
- Defina a setTextVerticalType(byte value) das células da segunda coluna.
- Salve a apresentação modificada.
Este código JavaScript demonstra a operação:
// Cria uma instância da classe Presentation
var pres = new aspose.slides.Presentation();
try {
// Vamos supor que a primeira forma no primeiro slide seja uma tabela
var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Define a altura da fonte das células da primeira coluna
var portionFormat = new aspose.slides.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 chamada
var paragraphFormat = new aspose.slides.ParagraphFormat();
paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getColumns().get_Item(0).setTextFormat(paragraphFormat);
// Define o tipo vertical de texto das células da segunda coluna
var textFrameFormat = new aspose.slides.TextFrameFormat();
textFrameFormat.setTextVerticalType(aspose.slides.TextVerticalType.Vertical);
someTable.getColumns().get_Item(1).setTextFormat(textFrameFormat);
pres.save("result.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Obter propriedades de estilo da tabela
O Aspose.Slides permite recuperar as propriedades de estilo de uma tabela para que você possa usar esses detalhes em outra tabela ou em outro local. Este código JavaScript mostra como obter as propriedades de estilo de um estilo predefinido de tabela:
var pres = new aspose.slides.Presentation();
try {
var table = pres.getSlides().get_Item(0).getShapes().addTable(10, 10, java.newArray("double", [100, 150]), java.newArray("double", [5, 5, 5]));
table.setStylePreset(aspose.slides.TableStylePreset.DarkStyle1);// alterar o tema de estilo predefinido padrão
pres.save("table.pptx", aspose.slides.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 você ainda pode sobrescrever preenchimentos, bordas e cores de texto sobre esse tema.
Posso classificar linhas de tabela como no Excel?
Não, as tabelas do Aspose.Slides não possuem classificação ou filtros integrados. Classifique seus dados na memória primeiro e, em seguida, repovoar as linhas da tabela nessa ordem.
Posso ter colunas listradas (bandeadas) mantendo cores personalizadas em células específicas?
Sim. Ative colunas listradas e, então, 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.