Gestire righe e colonne nelle tabelle PowerPoint in .NET
Introduzione
Per consentirti di gestire le righe e le colonne di una tabella in una presentazione PowerPoint, Aspose.Slides fornisce la classe Table, l’interfaccia ITable e molti altri tipi.
Imposta la prima riga come intestazione
- Crea un’istanza della classe Presentation e carica la presentazione.
- Ottieni il riferimento a una diapositiva tramite il suo indice.
- Crea un oggetto ITable e impostalo a null.
- Itera su tutti gli oggetti IShape per trovare la tabella pertinente.
- Imposta la prima riga della tabella come intestazione.
Questo codice C# mostra come impostare la prima riga di una tabella come intestazione:
// Istanzia la classe Presentation
Presentation pres = new Presentation("table.pptx");
// Accede alla prima diapositiva
ISlide sld = pres.Slides[0];
// Inizializza la TableEx nulla
ITable tbl = null;
// Itera attraverso le forme e imposta un riferimento alla tabella
foreach (IShape shp in sld.Shapes)
{
if (shp is ITable)
{
tbl = (ITable)shp;
}
}
// Imposta la prima riga di una tabella come intestazione
tbl.FirstRow = true;
// Salva la presentazione su disco
pres.Save("First_row_header.pptx", SaveFormat.Pptx);
Clona una riga o colonna di una tabella
- Crea un’istanza della classe Presentation e carica la presentazione,
- Ottieni il riferimento a una diapositiva tramite il suo indice.
- Definisci un array di
columnWidth. - Definisci un array di
rowHeight. - Aggiungi un oggetto ITable alla diapositiva tramite il metodo AddTable.
- Clona la riga della tabella.
- Clona la colonna della tabella.
- Salva la presentazione modificata.
Questo codice C# mostra come clonare una riga o colonna di una tabella PowerPoint:
// Istanzia la classe Presentation
using (Presentation presentation = new Presentation("Test.pptx"))
{
// Accede alla prima diapositiva
ISlide sld = presentation.Slides[0];
// Definisce le colonne con larghezze e le righe con altezze
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// Aggiunge una forma di tabella alla diapositiva
ITable table = sld.Shapes.AddTable(100, 50, dblCols, dblRows);
// Aggiunge del testo alla cella 1 della riga 1
table[0, 0].TextFrame.Text = "Row 1 Cell 1";
// Aggiunge del testo alla cella 2 della riga 1
table[1, 0].TextFrame.Text = "Row 1 Cell 2";
// Clona la riga 1 alla fine della tabella
table.Rows.AddClone(table.Rows[0], false);
// Aggiunge del testo alla cella 1 della riga 2
table[0, 1].TextFrame.Text = "Row 2 Cell 1";
// Aggiunge del testo alla cella 2 della riga 2
table[1, 1].TextFrame.Text = "Row 2 Cell 2";
// Clona la riga 2 come quarta riga della tabella
table.Rows.InsertClone(3,table.Rows[1], false);
// Clona la prima colonna alla fine
table.Columns.AddClone(table.Columns[0], false);
// Clona la seconda colonna all'indice della quarta colonna
table.Columns.InsertClone(3,table.Columns[1], false);
// Salva la presentazione su disco
presentation.Save("table_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
Rimuovi una riga o colonna da una tabella
- Crea un’istanza della classe Presentation e carica la presentazione,
- Ottieni il riferimento a una diapositiva tramite il suo indice.
- Definisci un array di
columnWidth. - Definisci un array di
rowHeight. - Aggiungi un oggetto ITable alla diapositiva tramite il metodo AddTable.
- Rimuovi la riga della tabella.
- Rimuovi la colonna della tabella.
- Salva la presentazione modificata.
Questo codice C# mostra come rimuovere una riga o colonna da una tabella:
Presentation pres = new Presentation();
ISlide slide = pres.Slides[0];
double[] colWidth = { 100, 50, 30 };
double[] rowHeight = { 30, 50, 30 };
ITable table = slide.Shapes.AddTable(100, 100, colWidth, rowHeight);
table.Rows.RemoveAt(1, false);
table.Columns.RemoveAt(1, false);
pres.Save("TestTable_out.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
Imposta la formattazione del testo a livello di riga della tabella
- Crea un’istanza della classe Presentation e carica la presentazione,
- Ottieni il riferimento a una diapositiva tramite il suo indice.
- Accedi all’oggetto ITable pertinente dalla diapositiva.
- Imposta la proprietà FontHeight delle celle della prima riga.
- Imposta le proprietà Alignment e MarginRight delle celle della prima riga.
- Imposta la proprietà TextVerticalType delle celle della seconda riga.
- Salva la presentazione modificata.
Questo codice C# dimostra l’operazione.
// Crea un'istanza della classe Presentation
Presentation presentation = new Presentation();
ISlide slide = presentation.Slides[0];
ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // Supponiamo che la prima forma sulla prima diapositiva sia una tabella
// Imposta l'altezza del carattere delle celle della prima riga
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.Rows[0].SetTextFormat(portionFormat);
// Imposta l'allineamento del testo e il margine destro delle celle della prima riga
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.Rows[0].SetTextFormat(paragraphFormat);
// Imposta il tipo di orientamento verticale del testo delle celle della seconda riga
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.Rows[1].SetTextFormat(textFrameFormat);
// Salva la presentazione su disco
presentation.Save("result.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
Imposta la formattazione del testo a livello di colonna della tabella
- Crea un’istanza della classe Presentation e carica la presentazione,
- Ottieni il riferimento a una diapositiva tramite il suo indice.
- Accedi all’oggetto ITable pertinente dalla diapositiva.
- Imposta la proprietà FontHeight delle celle della prima colonna.
- Imposta le proprietà Alignment e MarginRight delle celle della prima colonna.
- Imposta la proprietà TextVerticalType delle celle della seconda colonna.
- Salva la presentazione modificata.
Questo codice C# dimostra l’operazione:
// Crea un'istanza della classe Presentation
Presentation pres = new Presentation();
ISlide slide = pres.Slides[0];
ITable someTable = pres.Slides[0].Shapes[0] as ITable; // Supponiamo che la prima forma sulla prima diapositiva sia una tabella
// Imposta l'altezza del carattere delle celle della prima colonna
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.Columns[0].SetTextFormat(portionFormat);
// Imposta l'allineamento del testo e il margine destro delle celle della prima colonna in una chiamata
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.Columns[0].SetTextFormat(paragraphFormat);
// Imposta il tipo di orientamento verticale del testo delle celle della seconda colonna
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.Columns[1].SetTextFormat(textFrameFormat);
// Salva la presentazione su disco
pres.Save("result.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
Recupera le proprietà di stile della tabella
Aspose.Slides consente di recuperare le proprietà di stile di una tabella in modo da poter utilizzare tali dettagli per un’altra tabella o in altro contesto. Questo codice C# mostra come ottenere le proprietà di stile da uno stile predefinito di una tabella:
using (Presentation pres = new Presentation())
{
ITable table = pres.Slides[0].Shapes.AddTable(10, 10, new double[] { 100, 150 }, new double[] { 5, 5, 5 });
table.StylePreset = TableStylePreset.DarkStyle1; // cambia il tema predefinito dello stile preimpostato
pres.Save("table.pptx", SaveFormat.Pptx);
}
FAQ
Posso applicare temi/stili di PowerPoint a una tabella già creata?
Sì. La tabella eredita il tema della diapositiva/layout/master e puoi comunque sovrascrivere riempimenti, bordi e colori del testo sopra quel tema.
Posso ordinare le righe della tabella come in Excel?
No, le tabelle di Aspose.Slides non hanno ordinamento o filtri integrati. Ordina i dati in memoria prima, quindi ricrea le righe della tabella in quell’ordine.
Posso avere colonne a bande (a strisce) mantenendo colori personalizzati su celle specifiche?
Sì. Attiva le colonne a bande, quindi sovrascrivi le celle specifiche con una formattazione locale; la formattazione a livello di cella ha precedenza sullo stile della tabella.