Criar apresentações do PowerPoint C#

As apresentações do MS PowerPoint permitem que você crie apresentações de slides contendo texto, imagens, gráficos, animações e outros elementos. Várias opções de formatação adicionais permitem que você torne suas apresentações mais atraentes. Neste post, você saberá como criar essas apresentações programaticamente. Você aprenderá como criar apresentações PPTX com texto, tabelas, imagens e gráficos usando C#.

API C# do PowerPoint - Download gratuito

Aspose.Slides for .NET é uma API de manipulação de apresentação que permite criar e manipular documentos do PowerPoint a partir de seus aplicativos .NET. A API fornece quase todos os recursos possíveis necessários para implementar recursos básicos e avançados de automação do PowerPoint. Você pode baixar a API ou instalá-la via NuGet.

Install-Package Aspose.Slides.NET

Criar uma apresentação do PowerPoint em C#

Vamos começar criando uma apresentação do PowerPoint vazia usando o Aspose.Slides para .NET. A seguir estão os passos para fazê-lo.

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

// Instanciar um objeto Presentation que representa um arquivo de apresentação
using (Presentation presentation = new Presentation())
{
    // Obter o primeiro slide
    ISlide slide = presentation.Slides[0];

    // Adicionar conteúdo ao slide...
    
    // Salvar apresentação
    presentation.Save("NewPresentation.pptx", SaveFormat.Pptx);
}

Abra uma apresentação do PowerPoint existente em C#

Você não precisa fazer esforços extras para abrir uma apresentação do PowerPoint existente. Basta fornecer o caminho do arquivo PPTX para o construtor da classe Apresentação e pronto. O exemplo de código a seguir mostra como abrir uma apresentação PPTX existente.

// Abrindo o arquivo de apresentação passando o caminho do arquivo para o construtor da classe Presentation
Presentation pres = new Presentation("OpenPresentation.pptx");

// Imprimindo o número total de slides na apresentação
System.Console.WriteLine(pres.Slides.Count.ToString());

Adicionar um slide à apresentação em c#

Depois de criar a apresentação, você pode começar a adicionar os slides a ela. A seguir estão as etapas para adicionar um slide na apresentação usando Aspose.Slides para .NET.

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

// Instanciar a classe Presentation que representa o arquivo de apresentação
using (Presentation pres = new Presentation())
{
    // Instanciar a classe SlideCollection
    ISlideCollection slds = pres.Slides;

    for (int i = 0; i < pres.LayoutSlides.Count; i++)
    {
        // Adicionar um slide vazio à coleção de slides
        slds.AddEmptySlide(pres.LayoutSlides[i]);

    }

    // Salve o arquivo PPTX no disco
    pres.Save("EmptySlide_out.pptx", SaveFormat.Pptx);

}

Inserir texto em um slide usando C#

Agora podemos adicionar conteúdo aos slides na apresentação do PowerPoint. Vamos primeiro adicionar um pedaço de texto ao slide usando as etapas a seguir.

  • Crie uma nova apresentação usando a classe Apresentação.
  • Obtenha a referência do slide na apresentação.
  • Adicione uma IAutoShape com ShapeType como Rectangle em uma posição especificada do slide.
  • Obtenha a referência desse objeto IAutoShape recém-adicionado.
  • Adicione um TextFrame à AutoForma que contém o texto padrão.
  • Salve a apresentação como um arquivo PPTX.

O exemplo de código a seguir mostra como adicionar texto ao slide em uma apresentação usando C#.

// Instanciar ApresentaçãoEx// Instanciar ApresentaçãoEx
using (Presentation pres = new Presentation())
{
    // Obter o primeiro slide
    ISlide sld = pres.Slides[0];

    // Adicionar uma AutoForma do tipo Retângulo
    IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);

    // Adicionar TextFrame ao retângulo
    ashp.AddTextFrame(" ");

    // Acessando o quadro de texto
    ITextFrame txtFrame = ashp.TextFrame;

    // Crie o objeto Parágrafo para o quadro de texto
    IParagraph para = txtFrame.Paragraphs[0];

    // Criar objeto Porção para parágrafo
    IPortion portion = para.Portions[0];

    // Definir texto
    portion.Text = "Aspose TextBox";

    // Salve a apresentação em disco
    pres.Save("presentation.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

Criar tabela em uma apresentação usando C#

Aspose.Slides for .NET fornece uma maneira fácil de criar uma tabela no documento de apresentação. A seguir estão os passos para isso.

  • Crie uma instância da classe Apresentação.
  • Obtenha a referência de um slide usando seu índice.
  • Defina matrizes de colunas com largura e linhas com altura.
  • Adicione uma tabela ao slide usando o método Slide.Shapes.AddTable() exposto pelo objeto IShapes e obtenha a referência à tabela na instância ITable.
  • Itere em cada célula para aplicar a formatação.
  • Adicione texto às células usando a propriedade Table.Rows[][].TextFrame.Text.
  • Salve a apresentação como um arquivo PPTX.

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

// Instanciar classe de apresentação que representa o arquivo PPTX
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);

// Definir o formato 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++)
	{
		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;
	}
}

// Mesclar as células 1 e 2 da linha 1
tbl.MergeCells(tbl.Rows[0][0], tbl.Rows[1][1], false);

// Adicionar texto à célula mesclada
tbl.Rows[0][0].TextFrame.Text = "Merged Cells";

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

Criar gráfico em uma apresentação usando C#

A seguir estão as etapas para adicionar um gráfico na apresentação do PowerPoint usando C#.

  • Crie uma instância da classe Apresentação.
  • Obtenha a referência de um slide por índice.
  • Adicione um gráfico com o tipo desejado usando o método ISlide.Shapes.AddChart(ChartType, Single, Single, Single, Single).
  • Adicione um título de gráfico.
  • Acesse a planilha de dados do gráfico.
  • Limpe todas as séries e categorias padrão.
  • Adicione novas séries e categorias.
  • Adicione novos dados de gráfico para séries de gráficos.
  • Defina a cor de preenchimento para a série do gráfico.
  • Adicione rótulos de série de gráfico.
  • Salve a apresentação como um arquivo PPTX.

O exemplo de código a seguir mostra como adicionar gráfico em uma apresentação usando C#.

// Instanciar classe de apresentação que representa o arquivo PPTX
Presentation pres = new Presentation();

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

// Adicionar gráfico com dados padrão
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);

// Definindo o título do gráfico
// Chart.ChartTitle.TextFrameForOverriding.Text = "Título da amostra";
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Defina a primeira série para Mostrar valores
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Configurando o índice da folha de dados do gráfico
int defaultWorksheetIndex = 0;

// Obtendo a planilha de dados do gráfico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Excluir séries e categorias geradas padrão
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;

// Adicionando novas séries
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.Type);

// Adicionando novas categorias
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
chart.ChartData.Categories.Add(fact.GetCell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"));

// Pegue a primeira série de gráficos
IChartSeries series = chart.ChartData.Series[0];

// Agora preenchendo dados de série

series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 1, 20));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 1, 50));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 1, 30));

// Configurando a cor de preenchimento para a série
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;


// Pegue a segunda série de gráficos
series = chart.ChartData.Series[1];

// Agora preenchendo dados de série
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 1, 2, 30));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 2, 2, 10));
series.DataPoints.AddDataPointForBarSeries(fact.GetCell(defaultWorksheetIndex, 3, 2, 60));

// Configurando a cor de preenchimento para a série
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Green;

// O primeiro rótulo mostrará o nome da categoria
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;

lbl = series.DataPoints[1].Label;
lbl.DataLabelFormat.ShowSeriesName = true;

// Mostrar valor para o terceiro rótulo
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";
            
// Salvar apresentação com gráfico
pres.Save("AsposeChart_out.pptx", SaveFormat.Pptx);

Saiba mais sobre os gráficos de apresentação aqui.

Adicionar uma imagem na apresentação

A seguir estão as etapas para adicionar imagens no slide da apresentação.

O exemplo de código a seguir mostra como adicionar imagem a uma apresentação em C#.

// Criar apresentação
using (var p = new Presentation())
{
	// Ler imagem
	var svgContent = File.ReadAllText("image.svg");
	
	// Adicionar imagem à coleção de imagens
	var emfImage = p.Images.AddFromSvg(svgContent);
	
	// Adicionar imagem ao slide
	p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, emfImage.Width, emfImage.Height, emfImage);
	
	// Salvar apresentação
	p.Save("presentation.pptx", SaveFormat.Pptx);        
}

Conclusão

Neste artigo, você aprendeu como criar apresentações do PowerPoint do zero usando C#. Além disso, você viu como adicionar slides, texto, tabelas, imagens e gráficos em apresentações PPTX novas ou existentes. Você pode saber mais sobre a API usando a documentação.

Veja também

Dica: Além da criação de slides ou apresentações, o Aspose.Slides oferece muitos recursos que permitem trabalhar com apresentações. Por exemplo, usando suas próprias APIs, a Aspose desenvolveu um visualizador online gratuito para apresentações do Microsoft PowerPoint.