Crea e manipola tabelle in PowerPoint C#

Le tabelle vengono utilizzate per disporre i dati sotto forma di righe e colonne. Inoltre, organizzano e riassumono i dati in modo che possano essere visualizzati e analizzati facilmente. MS PowerPoint consente anche di inserire tabelle nelle presentazioni. Di conseguenza, questo articolo illustra come creare e modificare le tabelle nelle presentazioni di PowerPoint usando C#.

API C# per creare e manipolare tabelle in PowerPoint

Per creare e manipolare tabelle nelle presentazioni PowerPoint, utilizzeremo Aspose.Slides for .NET. L’API ti consente di creare, manipolare e convertire documenti PowerPoint e OpenOffice. Puoi scaricare la DLL dell’API e aggiungere un riferimento ad essa nel tuo progetto. Inoltre, puoi installarlo usando NuGet.

PM> Install-Package Aspose.Slides.NET

Crea una tabella nelle presentazioni di PowerPoint usando C#

Creare una tabella usando Aspose.Slides per .NET è un gioco da ragazzi. I passaggi seguenti illustrano come creare una tabella in una presentazione di PowerPoint usando C#.

  • Per prima cosa, crea una nuova presentazione o caricane una esistente usando la classe Presentazione.
  • Quindi, ottieni il riferimento della diapositiva desiderata in un oggetto ISlide.
  • Definire rispettivamente la larghezza e l’altezza delle colonne e delle righe negli array double[].
  • Inserisci una nuova tabella nella presentazione usando il metodo ISlide.Shapes.AddTable().
  • Ottieni il riferimento della tabella appena creata in un oggetto ITable.
  • Crea un ciclo per scorrere le righe della tabella.
  • Crea un ciclo nidificato per scorrere le celle della tabella e in ogni iterazione, esegui le seguenti operazioni.
  • Infine, salva la presentazione usando il metodo Presentation.Save(String, SaveFormat).

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

// Crea o carica una presentazione
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 e il testo per ogni cella
for (int row = 0; row < tbl.Rows.Count; row++)
{
	for (int cell = 0; cell < tbl.Rows[row].Count; cell++)
	{  
		// Aggiungi testo alla cella
		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;
	}
}

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

Lo screenshot seguente mostra la tabella che abbiamo creato utilizzando il codice sopra.

Crea tabella in PowerPoint C#

Accedi a una tabella in una presentazione usando C#

Puoi anche accedere alle tabelle nelle presentazioni PowerPoint esistenti e manipolarle come richiesto. Di seguito sono riportati i passaggi per accedere alle tabelle in una presentazione.

  • Innanzitutto, carica una presentazione esistente usando la classe Presentazione.
  • Quindi, ottieni il riferimento della diapositiva desiderata in un oggetto ISlide.
  • Crea un’istanza di ITable e inizializzala con null.
  • Scorri tutti gli oggetti IShape nella raccolta ISlide.Shapes.
  • Filtra le forme di tipo ITable.
  • Digita cast la forma in ITable e manipolala come richiesto.
  • Infine, salva la presentazione usando il metodo Presentation.Save(String, SaveFormat).

Nell’esempio di codice seguente viene illustrato come accedere alle tabelle in una presentazione di PowerPoint usando C#.

// Carica presentazione
using (Presentation pres = new Presentation("UpdateExistingTable.pptx"))
{
    // Accedi alla prima diapositiva
    ISlide sld = pres.Slides[0];

    // Inizializza TableEx null
    ITable tbl = null;

    // Scorri le forme e imposta un riferimento alla tabella trovata
    foreach (IShape shp in sld.Shapes)
        if (shp is ITable)
            tbl = (ITable)shp;

    // Imposta il testo della prima colonna della seconda riga
    tbl[0, 1].TextFrame.Text = "New";

    //Scrivi il PPTX su disco
    pres.Save("table1_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}

Formatta il testo nelle tabelle di PowerPoint usando C#

Aspose.Slides per .NET consente inoltre di impostare la formattazione delle tabelle abbastanza facilmente, come illustrato nei passaggi seguenti.

Nell’esempio di codice seguente viene illustrato come impostare la formattazione della tabella in PowerPoint usando C#.

// Crea o carica una presentazione
Presentation presentation = new Presentation();

// Ottieni il riferimento della diapositiva
ISlide slide = presentation.Slides[0];

// Ottieni il riferimento della tabella
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// Imposta l'altezza del carattere delle celle della tabella
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);

// Imposta l'allineamento del testo e il margine destro delle celle della tabella in una chiamata
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);

// Imposta il tipo verticale del testo delle celle della tabella
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);

// Salva presentazione
presentation.Save("result.pptx", SaveFormat.Pptx);

Blocca le proporzioni delle tabelle in PowerPoint usando C#

Puoi anche bloccare le proporzioni delle tabelle nelle presentazioni PowerPoint usando C#. Di seguito sono riportati i passaggi per raggiungere questo obiettivo.

Nell’esempio di codice seguente viene illustrato come bloccare le proporzioni della tabella nelle presentazioni di PowerPoint.

// Carica presentazione
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // Ottieni il riferimento della tabella
    ITable table = (ITable)pres.Slides[0].Shapes[0];
    Console.WriteLine($"Blocca le proporzioni set: {table.ShapeLock.AspectRatioLocked}");

    // Blocca le proporzioni
    table.ShapeLock.AspectRatioLocked = !table.ShapeLock.AspectRatioLocked; // invert
    Console.WriteLine($"Blocca le proporzioni set: {table.ShapeLock.AspectRatioLocked}");

    // Salva presentazione
    pres.Save("pres-out.pptx", SaveFormat.Pptx);
}

Ottieni una licenza API gratuita

Puoi utilizzare Aspose.Slides per .NET senza limitazioni di valutazione ottenendo una licenza temporanea.

Conclusione

In questo articolo hai imparato come creare tabelle nelle presentazioni di PowerPoint usando C#. Inoltre, hai visto come accedere e manipolare le tabelle esistenti nelle presentazioni PowerPoint a livello di codice. Inoltre, puoi visitare la documentazione per saperne di più su Aspose.Slides per .NET. Inoltre, puoi porre le tue domande tramite il nostro forum.

Guarda anche