Prezentációs táblák kezelése Pythonban
Bevezetés
A táblázat a PowerPointban hatékony módja az információk bemutatásának. A cellák (sorok és oszlopok) rácsában elrendezett adatok egyértelműek és könnyen érthetőek.
Az Aspose.Slides a Table osztályt, a Cell osztályt és további kapcsolódó típusokat biztosít, amelyek segítenek táblák létrehozásában, frissítésében és kezelésében bármely prezentációban.
Táblák létrehozása a semmiből
Ez a szakasz bemutatja, hogyan hozhatunk létre táblát a semmiből az Aspose.Slides segítségével úgy, hogy táblázat alakzatot adunk a diára, meghatározzuk a sorok és oszlopok számát, valamint a pontos méreteket. Megmutatjuk, hogyan töltsük fel a cellákat szöveggel, hogyan állítsuk be a igazítást és a szegélyeket, valamint hogyan testre szabjuk a tábla megjelenését.
- Hozzunk létre egy példányt a Presentation osztályból.
- Szerezzünk hivatkozást egy diára a indexe alapján.
- Definiáljunk egy oszlopszélesség‑tömböt.
- Definiáljunk egy sormagasság‑tömböt.
- Adjunk egy Table objektumot a diához.
- Iteráljunk végig minden egyes Cell elemen, és formázzuk a felső, alsó, jobb és bal szegélyét.
- Egyesítsük az első két sor és az első két oszlop celláit egyetlen cellává.
- Érjük el a TextFrame‑et egy Cell‑ben.
- Adjunk szöveget a TextFrame‑hez.
- Mentsük el a módosított prezentációt.
Az alábbi Python példa bemutatja, hogyan hozhatunk létre egy táblát egy prezentációban:
import aspose.pydrawing as draw
import aspose.slides as slides
# Példányosítsa a Presentation osztályt, amely egy prezentációs fájlt képvisel.
with slides.Presentation() as presentation:
# Nyissa meg az első diát.
slide = presentation.slides[0]
# Határozza meg az oszlopszélességeket és a sormagasságokat.
column_widths = [50, 50, 50]
row_heights = [50, 30, 30, 30, 30]
# Adjon hozzá egy táblázat alakzatot a diához.
table = slide.shapes.add_table(100, 50, column_widths, row_heights)
# Állítsa be az egyes cellák szegélyformátumát.
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
# Egyesítse a cellákat (0. sor, 0. oszlop) és (1. sor, 1. oszlop) között.
table.merge_cells(table.rows[0][0], table.rows[1][1], False)
# Adjon szöveget az egyesített cellához.
table.rows[0][0].text_frame.text = "Merged Cells"
# Mentse a prezentációt a lemezre.
presentation.save("table.pptx", slides.export.SaveFormat.PPTX)
Számozás szabványos táblákban
Egy szabványos táblában a cellák számozása egyszerű és nulla‑alapú. Az első cella a (0, 0) indexszel rendelkezik (oszlop 0, sor 0).
Például egy 4 oszlopos és 4 soros táblában a cellák a következőképpen számozottak:
| (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) |
Az alábbi Python példa bemutatja, hogyan hivatkozhatunk cellákra ezzel a nulla‑alapú számozással:
import aspose.slides as slides
with slides.Presentation() as presentation:
# Nyissa meg az első diát.
slide = presentation.slides[0]
# Adjon hozzá egy táblázatot 4 oszloppal és 4 sorral.
table = slide.shapes.add_table(100, 50, [50, 50, 50, 50], [30, 30, 30, 30])
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})"
presentation.save("table.pptx", slides.export.SaveFormat.PPTX)
Létező tábla elérése
Ez a szakasz elmagyarázza, hogyan keressünk és dolgozzunk egy már létező táblával a prezentációban az Aspose.Slides segítségével. Megtanulja, hogyan találja meg a táblát a dián, hogyan érje el a sorait, oszlopait és celláit, valamint hogyan frissítse a tartalmat vagy a formázást.
- Hozzunk létre egy példányt a Presentation osztályból.
- Szerezzünk hivatkozást a táblát tartalmazó diára a indexe alapján.
- Iteráljunk végig az összes Shape objektumon, amíg meg nem találjuk a táblát.
- Használjuk a Table objektumot a tábla kezeléséhez.
- Mentsük el a módosított prezentációt.
Note
Ha a dia több táblát tartalmaz, érdemes a keresett táblát aalternative_text tulajdonsága alapján megtalálni.
Az alábbi Python példa bemutatja, hogyan érhetjük el és dolgozhatunk egy már létező táblával:
import aspose.pydrawing as draw
import aspose.slides as slides
# Példányosítsa a Presentation osztályt egy PPTX fájl betöltéséhez.
with slides.Presentation("sample.pptx") as presentation:
# Nyissa meg az első diát.
slide = presentation.slides[0]
table = None
# Iteráljon végig az alakzatokon, és hivatkozzon az első megtalált táblára.
for shape in slide.shapes:
if isinstance(shape, slides.Table):
table = shape
break
# Állítsa be az első sor első cellájának szövegét.
if table is not None:
table.rows[0][0].text_frame.text = "Found"
# Mentse el a módosított prezentációt a lemezre.
presentation.save("output.pptx", slides.export.SaveFormat.PPTX)
A szövegkeretet tartalmazó cella megtalálása
Amikor egy általános szöveggelisztoló kód egy TextFrame objektumot kap egy táblából, használja a TextFrame.parent_cell tulajdonságot a tulajdonos Cell lekéréséhez. Egy táblacellához tartozó szövegkeret esetén a TextFrame.parent_cell be van állítva, míg a TextFrame.parent_shape None, bár maga a tábla alakzatként jelenik meg.
A cella koordinátái a csak‑olvasásra szánt Cell.first_column_index és Cell.first_row_index tulajdonságokban érhetők el. A TextFrame.parent_cell szintén csak‑olvasású: navigációt biztosít a tulajdonos felé, de nem módosítja a tulajdonjogot. Mindig ellenőrizze, hogy a visszaadott cella nem None‑e, mielőtt használná.
A teljes példáért, amely azonosítja a táblacellát és a forma tulajdonosát, beleértve a SmartArt‑csomópontokhoz kapcsolódó alakzatokat, lásd a Search and Replace Text oldalt.
Szöveg igazítása a táblákban
Ez a szakasz bemutatja, hogyan szabályozhatjuk a szöveg elhelyezkedését a táblacellákban az Aspose.Slides segítségével. Megtanulja, hogyan rögzítse a szöveget függőlegesen egy cellában, és hogyan változtassa meg a szöveg írásirányát.
- Hozzunk létre egy példányt a Presentation osztályból.
- Szerezzünk hivatkozást a diára a indexe alapján.
- Adjunk egy Table objektumot a diához.
- Szerezzünk egy Cell objektumot a táblából.
- Igazítsuk középre a szöveget függőlegesen a cellában, és állítsuk be a szöveg írásirányát.
- Mentsük el a módosított prezentációt.
Az alábbi Python példa bemutatja, hogyan igazítható a szöveg egy táblában:
import aspose.pydrawing as draw
import aspose.slides as slides
# Hozzon létre egy példányt a Presentation osztályból.
with slides.Presentation() as presentation:
# Nyissa meg az első diát.
slide = presentation.slides[0]
# Határozza meg az oszlopszélességeket és a sormagasságokat.
column_widths = [40, 120, 120, 120]
row_heights = [100, 100, 100, 100]
# Adjon hozzá egy táblázat alakzatot a diához.
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"
# Igazítsa középre a szöveget, és állítsa be a függőleges irányt.
cell = table.rows[0][0]
cell.text_anchor_type = slides.TextAnchorType.CENTER
cell.text_vertical_type = slides.TextVerticalType.VERTICAL270
# Mentse el a prezentációt a lemezre.
presentation.save("aligned_cell.pptx", slides.export.SaveFormat.PPTX)
Szövegformázás beállítása táblaszinten
Ez a szakasz azt mutatja be, hogyan alkalmazhatunk szövegformázást a tábla szintjén az Aspose.Slides‑ben, hogy minden cella egységes, következetes stílust örököljön. Megtanulja, hogyan állítsuk be a betűméretet, az igazítást és a margókat globálisan.
- Hozzunk létre egy példányt a Presentation osztályból.
- Szerezzünk hivatkozást a diára a indexe alapján.
- Adjunk egy Table objektumot a diához.
- Állítsuk be a betűméretet (betűmagasságot) a szöveghez.
- Állítsuk be a bekezdés igazítását és a margókat.
- Állítsuk be a függőleges szövegorientációt.
- Mentsük el a módosított prezentációt.
Az alábbi Python példa bemutatja, hogyan alkalmazhatja a kívánt formázási beállításokat egy táblázat szövegére:
import aspose.pydrawing as draw
import aspose.slides as slides
# Létrehoz egy példányt a Presentation osztályból
with slides.Presentation() as presentation:
slide = presentation.slides[0]
table = slide.shapes.add_table(20, 20, [100, 50, 30], [30, 50, 30])
# Állítsa be a betűméretet az összes táblacellában.
portion_format = slides.PortionFormat()
portion_format.font_height = 25
table.set_text_format(portion_format)
# Állítsa be a jobbra igazított szöveget és a jobb margót az összes táblacellában.
paragraph_format = slides.ParagraphFormat()
paragraph_format.alignment = slides.TextAlignment.RIGHT
paragraph_format.margin_right = 20
table.set_text_format(paragraph_format)
# Állítsa be a függőleges szövegorientációt az összes táblacellában.
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)
Beépített táblastílusok alkalmazása
Az Aspose.Slides lehetővé teszi, hogy a táblákat előre definiált stílusokkal formázzuk közvetlenül a kódban. A példa bemutatja egy tábla létrehozását, egy beépített stílus alkalmazását, majd az eredmény mentését – ez egy hatékony módja a konzisztens, professzionális formázás biztosításának.
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)
Táblák képarányának zárolása
A forma képaránya a méretei arányát jelenti. Az Aspose.Slides biztosítja az aspect_ratio_locked tulajdonságot, amellyel zárolható a képarány táblák és egyéb alakzatok esetén.
Az alábbi Python példa bemutatja, hogyan zárolható a képarány egy táblán:
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)
GYIK
Engedélyezhetem a jobb‑balra (RTL) olvasási irányt egy teljes táblán és a celláinak szövegén?
Igen. A tábla rendelkezik egy right_to_left tulajdonsággal, és a bekezdéseknek is van egy ParagraphFormat.right_to_left beállítása. Mindkettő használata biztosítja a helyes RTL sorrendet és megjelenítést a cellákon belül.
Hogyan akadályozhatom meg, hogy a felhasználók mozgatni vagy átméretezni tudják a táblát a végleges fájlban?
Használja a shape locks funkciót a mozgatás, átméretezés, kiválasztás stb. letiltásához. Ezek a zárak a táblákra is érvényesek.
Támogatott-e egy kép beillesztése a cellába háttérként?
Igen. Beállíthat egy picture fill formátumot a cellához; a kép a cellaterületet a választott mód szerint (nyújtás vagy ismétlés) lefedi.