Gestire le tabelle di presentazione con Python
Introduzione
Una tabella in PowerPoint è un modo efficiente per presentare le informazioni. Le informazioni disposte in una griglia di celle (righe e colonne) sono chiare e facili da comprendere.
Aspose.Slides fornisce la classe Tabella, la classe Cella e altri tipi correlati per aiutarti a creare, aggiornare e gestire le tabelle in qualsiasi presentazione.
Creare tabelle da zero
Questa sezione mostra come creare una tabella da zero in Aspose.Slides aggiungendo una forma tabella a una diapositiva, definendo le sue righe e colonne e impostando dimensioni precise. Vedrai anche come riempire le celle con testo, regolare l’allineamento e i bordi e personalizzare l’aspetto della tabella.
- Crea un’istanza della classe Presentation.
- Ottieni un riferimento a una diapositiva tramite il suo indice.
- Definisci un array di larghezze delle colonne.
- Definisci un array di altezze delle righe.
- Aggiungi una Tabella alla diapositiva.
- Itera su ogni Cella e formatta i bordi superiore, inferiore, destro e sinistro.
- Unisci le prime due celle nella prima riga della tabella.
- Accedi al TextFrame di una Cella.
- Aggiungi testo al TextFrame.
- Salva la presentazione modificata.
import aspose.pydrawing as draw
import aspose.slides as slides
# Istanzia la classe Presentation che rappresenta un file di presentazione.
with slides.Presentation() as presentation:
# Accedi alla prima diapositiva.
slide = presentation.slides[0]
# Definisci le larghezze delle colonne e le altezze delle righe.
column_widths = [50, 50, 50]
row_heights = [50, 30, 30, 30, 30]
# Aggiungi una forma tabella alla diapositiva.
table = slide.shapes.add_table(100, 50, column_widths, row_heights)
# Imposta il formato del bordo per ogni cella.
for row in table.rows:
for cell in row:
cell.cell_format.border_top.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_top.fill_format.solid_fill_color.color = draw.Color.red
cell.cell_format.border_top.width = 5
cell.cell_format.border_bottom.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_bottom.fill_format.solid_fill_color.color= draw.Color.red
cell.cell_format.border_bottom.width = 5
cell.cell_format.border_left.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_left.fill_format.solid_fill_color.color =draw.Color.red
cell.cell_format.border_left.width = 5
cell.cell_format.border_right.fill_format.fill_type = slides.FillType.SOLID
cell.cell_format.border_right.fill_format.solid_fill_color.color = draw.Color.red
cell.cell_format.border_right.width = 5
# Unisci le celle da (riga 0, col 0) a (riga 1, col 1).
table.merge_cells(table.rows[0][0], table.rows[1][1], False)
# Aggiungi testo alla cella unita.
table.rows[0][0].text_frame.text = "Merged Cells"
# Salva la presentazione su disco.
presentation.save("table.pptx", slides.export.SaveFormat.PPTX)
Numerazione nelle tabelle standard
In una tabella standard, la numerazione delle celle è semplice e parte da zero. La prima cella di una tabella è indicizzata come (0, 0) (colonna 0, riga 0).
Ad esempio, in una tabella con 4 colonne e 4 righe, le celle sono numerate come segue:
| (0, 0) | (1, 0) | (2, 0) | (3, 0) |
|---|---|---|---|
| (0, 1) | (1, 1) | (2, 1) | (3, 1) |
| (0, 2) | (1, 2) | (2, 2) | (3, 2) |
| (0, 3) | (1, 3) | (2, 3) | (3, 3) |
Il seguente esempio Python mostra come fare riferimento alle celle utilizzando questa numerazione a base zero:
for row_index in range(len(table.rows)):
for column_index in range(len(table.rows[row_index])):
cell = table.rows[row_index][column_index]
cell.text_frame.text = f"({column_index}, {row_index})"
Accedere a una tabella esistente
Questa sezione spiega come individuare e lavorare con una tabella esistente in una presentazione usando Aspose.Slides. Imparerai a trovare la tabella su una diapositiva, accedere alle sue righe, colonne e celle, e aggiornare contenuti o formattazione.
- Crea un’istanza della classe Presentation.
- Ottieni un riferimento alla diapositiva che contiene la tabella tramite il suo indice.
- Itera attraverso tutti gli oggetti Shape finché non trovi la tabella.
- Usa l’oggetto Tabella per lavorare con la tabella.
- Salva la presentazione modificata.
alternative_text.
Il seguente esempio Python mostra come accedere e lavorare con una tabella esistente:
import aspose.pydrawing as draw
import aspose.slides as slides
# Istanzia la classe Presentation per caricare un file PPTX.
with slides.Presentation("sample.pptx") as presentation:
# Accedi alla prima diapositiva.
slide = presentation.slides[0]
table = None
# Itera attraverso le forme e riferisci la prima tabella trovata.
for shape in slide.shapes:
if isinstance(shape, slides.Table):
table = shape
break
# Imposta il testo della prima cella nella prima riga.
if table is not None:
table.rows[0][0].text_frame.text = "Found"
# Salva la presentazione modificata su disco.
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Allineare il testo nelle tabelle
Questa sezione mostra come controllare l’allineamento del testo all’interno delle celle di una tabella usando Aspose.Slides. Imparerai a impostare l’allineamento orizzontale e verticale per le celle per mantenere il contenuto chiaro e coerente.
- Crea un’istanza della classe Presentation.
- Ottieni un riferimento alla diapositiva tramite il suo indice.
- Aggiungi un oggetto Tabella alla diapositiva.
- Accedi a un oggetto Cella della tabella.
- Allinea il testo verticalmente.
- Salva la presentazione modificata.
Il seguente esempio Python mostra come allineare il testo in una tabella:
import aspose.pydrawing as draw
import aspose.slides as slides
# Crea un'istanza della classe Presentation.
with slides.Presentation() as presentation:
# Accedi alla prima diapositiva.
slide = presentation.slides[0]
# Definisci le larghezze delle colonne e le altezze delle righe.
column_widths = [40, 120, 120, 120]
row_heights = [100, 100, 100, 100]
# Aggiungi una forma tabella alla diapositiva.
table = slide.shapes.add_table(100, 50, column_widths, row_heights)
table.rows[0][0].text_frame.text = "Numbers"
table.rows[1][0].text_frame.text = "10"
table.rows[2][0].text_frame.text = "20"
table.rows[3][0].text_frame.text = "30"
# Centra il testo e imposta l'orientamento verticale.
cell = table.rows[0][0]
cell.text_anchor_type = slides.TextAnchorType.CENTER
cell.text_vertical_type = slides.TextVerticalType.VERTICAL270
# Salva la presentazione su disco.
presentation.save("aligned_cell.pptx", slides.export.SaveFormat.PPTX)
Impostare la formattazione del testo a livello di tabella
Questa sezione mostra come applicare la formattazione del testo a livello di tabella in Aspose.Slides in modo che ogni cella erediti uno stile coerente e unificato. Imparerai a impostare le dimensioni del carattere, gli allineamenti e i margini a livello globale.
- Crea un’istanza della classe Presentation.
- Ottieni un riferimento alla diapositiva tramite il suo indice.
- Aggiungi una Tabella alla diapositiva.
- Imposta la dimensione del carattere (altezza del font) per il testo.
- Imposta l’allineamento del paragrafo e i margini.
- Imposta l’orientazione verticale del testo.
- Salva la presentazione modificata.
Il seguente esempio Python mostra come applicare le tue opzioni di formattazione preferite al testo in una tabella:
import aspose.pydrawing as draw
import aspose.slides as slides
# Crea un'istanza della classe Presentation
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(20, 20, [100, 50, 30], [30, 50, 30])
# Imposta la dimensione del font per tutte le celle della tabella.
portion_format = slides.PortionFormat()
portion_format.font_height = 25
table.set_text_format(portion_format)
# Imposta il testo allineato a destra e un margine destro per tutte le celle della tabella.
paragraph_format = slides.ParagraphFormat()
paragraph_format.alignment = slides.TextAlignment.RIGHT
paragraph_format.margin_right = 20
table.set_text_format(paragraph_format)
# Imposta l'orientamento verticale del testo per tutte le celle della tabella.
text_frame_format = slides.TextFrameFormat()
text_frame_format.text_vertical_type = slides.TextVerticalType.VERTICAL
table.set_text_format(text_frame_format)
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
Applicare gli stili di tabella predefiniti
Aspose.Slides consente di formattare le tabelle utilizzando stili predefiniti direttamente nel codice. L’esempio dimostra come creare una tabella, applicare uno stile predefinito e salvare il risultato—un modo efficiente per garantire una formattazione coerente e professionale.
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(10, 10, [100, 150], [5, 5, 5])
table.style_preset = slides.TableStylePreset.DARK_STYLE1
presentation.save("table.pptx", slides.export.SaveFormat.PPTX)
Bloccare il rapporto d’aspetto delle tabelle
Il rapporto d’aspetto di una forma è il rapporto tra le sue dimensioni. Aspose.Slides fornisce la proprietà aspect_ratio_locked, che consente di bloccare il rapporto d’aspetto per tabelle e altre forme.
Il seguente esempio Python mostra come bloccare il rapporto d’aspetto per una tabella:
import aspose.pydrawing as draw
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(20, 20, [100, 50, 30], [30, 50, 30])
print(f"Lock aspect ratio set: {table.shape_lock.aspect_ratio_locked}")
table.shape_lock.aspect_ratio_locked = not table.shape_lock.aspect_ratio_locked
print(f"Lock aspect ratio set: {table.shape_lock.aspect_ratio_locked}")
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
FAQ
Posso abilitare la direzione di lettura da destra a sinistra (RTL) per un’intera tabella e il testo nelle sue celle?
Sì. La tabella espone la proprietà right_to_left, e i paragrafi hanno ParagraphFormat.right_to_left. L’uso di entrambi garantisce l’ordine RTL corretto e il rendering all’interno delle celle.
Come posso impedire agli utenti di spostare o ridimensionare una tabella nel file finale?
Usa i blocchi di forma per disabilitare lo spostamento, il ridimensionamento, la selezione, ecc. Questi blocchi si applicano anche alle tabelle.
È supportato inserire un’immagine all’interno di una cella come sfondo?
Sì. Puoi impostare un picture fill per una cella; l’immagine coprirà l’area della cella secondo la modalità scelta (stretch o tile).