Crea presentazioni PowerPoint C#

Le presentazioni di MS PowerPoint consentono di creare presentazioni contenenti testo, immagini, grafici, animazioni e altri elementi. Varie opzioni di formattazione aggiuntive ti consentono di rendere le tue presentazioni più accattivanti. In questo post imparerai come creare tali presentazioni in modo programmatico. Imparerai come creare presentazioni PPTX con testo, tabelle, immagini e grafici usando C#.

API C# PowerPoint - Download gratuito

Aspose.Slides for .NET è un’API di manipolazione della presentazione che ti consente di creare e manipolare documenti PowerPoint dall’interno delle tue applicazioni .NET. L’API fornisce quasi tutte le possibili funzionalità necessarie per implementare le funzionalità di automazione di PowerPoint di base e avanzate. Puoi scaricare l’API o installarla tramite NuGet.

Install-Package Aspose.Slides.NET

Crea una presentazione PowerPoint in C#

Iniziamo creando una presentazione PowerPoint vuota utilizzando Aspose.Slides per .NET. Di seguito sono riportati i passaggi per farlo.

Nell’esempio di codice seguente viene illustrato come creare una presentazione di PowerPoint in C#.

// Istanziare un oggetto Presentazione che rappresenta un file di presentazione
using (Presentation presentation = new Presentation())
{
    // Ottieni la prima diapositiva
    ISlide slide = presentation.Slides[0];

    // Aggiungi contenuto alla diapositiva...
    
    // Salva presentazione
    presentation.Save("NewPresentation.pptx", SaveFormat.Pptx);
}

Aprire una presentazione PowerPoint esistente in C#

Non è necessario fare ulteriori sforzi per aprire una presentazione PowerPoint esistente. Fornisci semplicemente il percorso del file PPTX al costruttore della classe Presentation e il gioco è fatto. Nell’esempio di codice seguente viene illustrato come aprire una presentazione PPTX esistente.

// Apertura del file di presentazione passando il percorso del file al costruttore della classe Presentation
Presentation pres = new Presentation("OpenPresentation.pptx");

// Stampa del numero totale di diapositive nella presentazione
System.Console.WriteLine(pres.Slides.Count.ToString());

Aggiungi una diapositiva alla presentazione in C#

Dopo aver creato la presentazione, puoi iniziare ad aggiungervi le diapositive. Di seguito sono riportati i passaggi per aggiungere una diapositiva alla presentazione usando Aspose.Slides per .NET.

Nell’esempio di codice seguente viene illustrato come aggiungere una diapositiva in una presentazione di PowerPoint usando C#.

// Istanziare la classe Presentation che rappresenta il file di presentazione
using (Presentation pres = new Presentation())
{
    // Istanziare la classe SlideCollection
    ISlideCollection slds = pres.Slides;

    for (int i = 0; i < pres.LayoutSlides.Count; i++)
    {
        // Aggiungi una diapositiva vuota alla raccolta Presentazioni
        slds.AddEmptySlide(pres.LayoutSlides[i]);

    }

    // Salva il file PPTX sul disco
    pres.Save("EmptySlide_out.pptx", SaveFormat.Pptx);

}

Inserisci testo in una diapositiva usando C#

Ora possiamo aggiungere contenuto alle diapositive nella presentazione di PowerPoint. Per prima cosa aggiungiamo un pezzo di testo alla diapositiva seguendo i passaggi seguenti.

  • Crea una nuova presentazione usando la classe Presentazione.
  • Ottieni il riferimento della diapositiva nella presentazione.
  • Aggiungi un IAutoShape con ShapeType come Rectangle in una posizione specificata della diapositiva.
  • Ottieni il riferimento dell’oggetto IAutoShape appena aggiunto.
  • Aggiungi un TextFrame alla forma che contiene il testo predefinito.
  • Salva la presentazione come file PPTX.

Nell’esempio di codice seguente viene illustrato come aggiungere testo per diapositive in una presentazione usando C#.

// Istanziare la presentazioneEx// Istanziare la presentazioneEx
using (Presentation pres = new Presentation())
{
    // Ottieni la prima diapositiva
    ISlide sld = pres.Slides[0];

    // Aggiungi una forma di tipo Rettangolo
    IAutoShape ashp = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 150, 75, 150, 50);

    // Aggiungi TextFrame al rettangolo
    ashp.AddTextFrame(" ");

    // Accesso alla cornice di testo
    ITextFrame txtFrame = ashp.TextFrame;

    // Crea l'oggetto Paragrafo per la cornice di testo
    IParagraph para = txtFrame.Paragraphs[0];

    // Crea oggetto Porzione per il paragrafo
    IPortion portion = para.Portions[0];

    // Imposta testo
    portion.Text = "Aspose TextBox";

    // Salva la presentazione su disco
    pres.Save("presentation.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

Crea una tabella in una presentazione usando C#

Aspose.Slides per .NET fornisce un modo semplice per creare una tabella nel documento di presentazione. Di seguito sono riportati i passaggi per questo.

  • Crea un’istanza della classe Presentation.
  • Ottieni il riferimento di una diapositiva usando il suo indice.
  • Definisci matrici di colonne con larghezza e righe con altezza.
  • Aggiungi una tabella alla diapositiva utilizzando il metodo Slide.Shapes.AddTable() esposto dall’oggetto IShapes e ottieni il riferimento alla tabella nell’istanza ITable.
  • Scorri ogni cella per applicare la formattazione.
  • Aggiungi testo alle celle usando la proprietà Table.Rows[][].TextFrame.Text.
  • Salva la presentazione come file PPTX.

Nell’esempio di codice seguente viene illustrato come creare una tabella in una diapositiva della presentazione di PowerPoint.

// Istanziare la classe Presentation che rappresenta il file PPTX
Presentation pres = new Presentation();

// Accedi alla prima diapositiva
ISlide sld = pres.Slides[0];

// Definisci colonne con larghezze e righe con altezze
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };

// Aggiungi la forma del tavolo alla diapositiva
ITable tbl = sld.Shapes.AddTable(100, 50, dblCols, dblRows);

// Imposta il formato del bordo per ogni cella
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;
	}
}

// Unisci le celle 1 e 2 della riga 1
tbl.MergeCells(tbl.Rows[0][0], tbl.Rows[1][1], false);

// Aggiungi testo alla cella unita
tbl.Rows[0][0].TextFrame.Text = "Merged Cells";

// Salva PPTX su disco
pres.Save("table.pptx", SaveFormat.Pptx);

Crea un grafico in una presentazione usando C#

Di seguito sono riportati i passaggi per aggiungere un grafico nella presentazione di PowerPoint usando C#.

  • Crea un’istanza della classe Presentazione.
  • Ottieni il riferimento di una diapositiva per indice.
  • Aggiungi un grafico con il tipo desiderato utilizzando il metodo ISlide.Shapes.AddChart(ChartType, Single, Single, Single, Single).
  • Aggiungi un titolo del grafico.
  • Accedi al foglio di lavoro dei dati del grafico.
  • Cancella tutte le serie e le categorie predefinite.
  • Aggiungi nuove serie e categorie.
  • Aggiungi nuovi dati del grafico per le serie di grafici.
  • Imposta il colore di riempimento per le serie di grafici.
  • Aggiungi etichette delle serie di grafici.
  • Salva la presentazione come file PPTX.

L’esempio di codice seguente mostra come aggiungere un grafico in una presentazione usando C#.

// Istanziare la classe Presentation che rappresenta il file PPTX
Presentation pres = new Presentation();

// Accedi alla prima diapositiva
ISlide sld = pres.Slides[0];

// Aggiungi grafico con dati predefiniti
IChart chart = sld.Shapes.AddChart(ChartType.ClusteredColumn, 0, 0, 500, 500);

// Titolo della tabella delle impostazioni
// Chart.ChartTitle.TextFrameForOverriding.Text = "Titolo di esempio";
chart.ChartTitle.AddTextFrameForOverriding("Sample Title");
chart.ChartTitle.TextFrameForOverriding.TextFrameFormat.CenterText = NullableBool.True;
chart.ChartTitle.Height = 20;
chart.HasTitle = true;

// Imposta la prima serie su Mostra valori
chart.ChartData.Series[0].Labels.DefaultDataLabelFormat.ShowValue = true;

// Impostazione dell'indice del foglio dati grafico
int defaultWorksheetIndex = 0;

// Ottenere il foglio di lavoro dei dati del grafico
IChartDataWorkbook fact = chart.ChartData.ChartDataWorkbook;

// Elimina serie e categorie generate predefinite
chart.ChartData.Series.Clear();
chart.ChartData.Categories.Clear();
int s = chart.ChartData.Series.Count;
s = chart.ChartData.Categories.Count;

// Aggiunta di nuove serie
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);

// Aggiunta di nuove categorie
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"));

// Prendi la prima serie di grafici
IChartSeries series = chart.ChartData.Series[0];

// Ora popolando i dati della serie

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));

// Impostazione del colore di riempimento per le serie
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Red;


// Prendi la seconda serie di grafici
series = chart.ChartData.Series[1];

// Ora popolando i dati della serie
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));

// Impostazione del colore di riempimento per le serie
series.Format.Fill.FillType = FillType.Solid;
series.Format.Fill.SolidFillColor.Color = Color.Green;

// La prima etichetta mostrerà il nome della categoria
IDataLabel lbl = series.DataPoints[0].Label;
lbl.DataLabelFormat.ShowCategoryName = true;

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

// Mostra il valore per la terza etichetta
lbl = series.DataPoints[2].Label;
lbl.DataLabelFormat.ShowValue = true;
lbl.DataLabelFormat.ShowSeriesName = true;
lbl.DataLabelFormat.Separator = "/";
            
// Salva la presentazione con il grafico
pres.Save("AsposeChart_out.pptx", SaveFormat.Pptx);

Scopri di più sui grafici di presentazione qui.

Aggiungi un’immagine nella presentazione

Di seguito sono riportati i passaggi per aggiungere immagini nella diapositiva della presentazione.

L’esempio di codice seguente mostra come aggiungere un’immagine a una presentazione in C#.

// Crea presentazione
using (var p = new Presentation())
{
	// Leggi immagine
	var svgContent = File.ReadAllText("image.svg");
	
	// Aggiungi immagine alla raccolta di immagini
	var emfImage = p.Images.AddFromSvg(svgContent);
	
	// Aggiungi un'immagine alla diapositiva
	p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, emfImage.Width, emfImage.Height, emfImage);
	
	// Salva presentazione
	p.Save("presentation.pptx", SaveFormat.Pptx);        
}

Conclusione

In questo articolo, hai imparato come creare presentazioni PowerPoint da zero usando C#. Inoltre, hai visto come aggiungere diapositive, testo, tabelle, immagini e grafici in presentazioni PPTX nuove o esistenti. Puoi saperne di più sull’API utilizzando la documentazione.

Guarda anche

Suggerimento: oltre alla creazione di diapositive o presentazioni, Aspose.Slides fornisce molte funzionalità che ti consentono di lavorare con le presentazioni. Ad esempio, utilizzando le proprie API, Aspose ha sviluppato un visualizzatore online gratuito per presentazioni Microsoft PowerPoint.