Criar e manipular tabelas no PowerPoint C#

As tabelas são usadas para organizar os dados na forma de linhas e colunas. Além disso, eles organizam e resumem os dados para que possam ser visualizados e analisados facilmente. MS PowerPoint também permite inserir tabelas nas apresentações. Assim, este artigo aborda como criar e manipular tabelas em apresentações do PowerPoint usando C#.

API C# para criar e manipular tabelas no PowerPoint

Para criar e manipular tabelas em apresentações do PowerPoint, usaremos Aspose.Slides for .NET. A API permite criar, manipular e converter documentos do PowerPoint e OpenOffice. Você pode baixar a DLL da API e adicionar uma referência a ela em seu projeto. Além disso, você pode instalá-lo usando NuGet.

PM> Install-Package Aspose.Slides.NET

Criar uma tabela em apresentações do PowerPoint usando C#

Criar uma tabela usando Aspose.Slides para .NET é muito fácil. As etapas a seguir mostram como criar uma tabela em uma apresentação do PowerPoint usando C#.

  • Primeiro, crie uma nova apresentação ou carregue uma existente usando a classe Apresentação.
  • Em seguida, obtenha a referência do slide desejado em um objeto ISlide.
  • Defina a largura e a altura de colunas e linhas, respectivamente, em arrays double[].
  • Insira uma nova tabela na apresentação usando o método ISlide.Shapes.AddTable().
  • Obtenha a referência da tabela recém-criada em um objeto ITable.
  • Crie um loop para percorrer as linhas da tabela.
  • Crie um loop aninhado para percorrer as células da tabela e, em cada iteração, execute as seguintes operações.
  • Finalmente, salve a apresentação usando o método Presentation.Save(String, SaveFormat).

O exemplo de código a seguir mostra como criar uma tabela em uma apresentação do PowerPoint.

// Criar ou carregar apresentação
Presentation pres = new Presentation();

// Acesse o primeiro slide
ISlide sld = pres.Slides[0];

// Definir colunas com larguras e linhas com alturas
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };

// Adicionar forma de tabela ao slide
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);

// Defina o formato e o texto da borda para cada célula
for (int row = 0; row < tbl.Rows.Count; row++)
{
	for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
	{  
		// Adicionar texto à célula
		tbl.Rows[row][cell].TextFrame.Text = "Cells_" + cell;

		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderTop.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderTop.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.FillType = (FillType.Solid);
		tbl.Rows[row][cell].CellFormat.BorderBottom.FillFormat.SolidFillColor.Color= Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderBottom.Width =5;

		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderLeft.FillFormat.SolidFillColor.Color =Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderLeft.Width = 5;

		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.FillType = FillType.Solid;
		tbl.Rows[row][cell].CellFormat.BorderRight.FillFormat.SolidFillColor.Color = Color.Red;
		tbl.Rows[row][cell].CellFormat.BorderRight.Width = 5;
	}
}

// Salvar PPTX no disco
pres.Save("table.pptx", SaveFormat.Pptx);

A captura de tela a seguir mostra a tabela que criamos usando o código acima.

Criar tabela no PowerPoint C#

Acesse uma tabela em uma apresentação usando C#

Você também pode acessar as tabelas nas apresentações existentes do PowerPoint e manipulá-las conforme necessário. A seguir estão as etapas para acessar as tabelas em uma apresentação.

  • Primeiro, carregue uma apresentação existente usando a classe Apresentação.
  • Em seguida, obtenha a referência do slide desejado em um objeto ISlide.
  • Crie uma instância de ITable e inicialize-a com null.
  • Itere através de todos os objetos IShape na coleção ISlide.Shapes.
  • Filtre as formas do tipo ITable.
  • Digite cast a forma em ITable e manipule-a conforme necessário.
  • Finalmente, salve a apresentação usando o método Presentation.Save(String, SaveFormat).

O exemplo de código a seguir mostra como acessar tabelas em uma apresentação do PowerPoint usando C#.

// Carregar apresentação
using (Presentation pres = new Presentation("UpdateExistingTable.pptx"))
{
    // Acesse o primeiro slide
    ISlide sld = pres.Slides[0];

    // Inicializar nulo TableEx
    ITable tbl = null;

    // Iterar pelas formas e definir uma referência para a tabela encontrada
    foreach (IShape shp in sld.Shapes)
        if (shp is ITable)
            tbl = (ITable)shp;

    // Defina o texto da primeira coluna da segunda linha
    tbl[0, 1].TextFrame.Text = "New";

    //Gravar o PPTX no disco
    pres.Save("table1_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

Formatar texto em tabelas do PowerPoint usando C#

O Aspose.Slides for .NET também permite que você defina a formatação das tabelas com bastante facilidade, conforme demonstrado nas etapas abaixo.

O exemplo de código a seguir mostra como definir a formatação da tabela no PowerPoint usando C#.

// Criar ou carregar apresentação
Presentation presentation = new Presentation();

// Obter referência do slide
ISlide slide = presentation.Slides[0];

// Obter referência da tabela
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// Definir a altura da fonte das células da tabela
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);

// Defina o alinhamento do texto das células da tabela e a margem direita em uma chamada
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);

// Definir o tipo vertical de texto das células da tabela
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);

// Salvar apresentação
presentation.Save("result.pptx", SaveFormat.Pptx);

Bloquear proporção de tabelas no PowerPoint usando C#

Você também pode bloquear a proporção das tabelas em apresentações do PowerPoint usando C#. A seguir estão os passos para conseguir isso.

O exemplo de código a seguir mostra como bloquear a proporção da tabela em apresentações do PowerPoint.

// Carregar apresentação
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Obter referência da tabela
    ITable table = (ITable)pres.Slides[0].Shapes[0];
    Console.WriteLine($"Bloquear proporção set: {table.ShapeLock.AspectRatioLocked}");

    // Bloquear proporção
    table.ShapeLock.AspectRatioLocked = !table.ShapeLock.AspectRatioLocked; // invert
    Console.WriteLine($"Bloquear proporção set: {table.ShapeLock.AspectRatioLocked}");

    // Salvar apresentação
    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Obtenha uma licença de API gratuita

Você pode usar o Aspose.Slides para .NET sem limitações de avaliação obtendo uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como criar tabelas em apresentações do PowerPoint usando C#. Além disso, você viu como acessar e manipular as tabelas existentes nas apresentações do PowerPoint programaticamente. Além disso, você pode visitar a documentação para explorar mais sobre o Aspose.Slides para .NET. Além disso, você pode fazer suas perguntas através do nosso fórum.

Veja também