Správa řádků a sloupců v tabulkách PowerPointu pomocí Pythonu
Úvod
Aby vám umožnil spravovat řádky a sloupce tabulky v prezentaci PowerPoint, Aspose.Slides poskytuje třídu Table a mnoho dalších typů.
Nastavit první řádek jako hlavičku
- Vytvořte instanci třídy Presentation a načtěte prezentaci.
- Získejte referenci na snímek podle jeho indexu.
- Vytvořte referenci na Table a přiřaďte jí hodnotu
None. - Projděte všechny objekty Shape a najděte příslušnou tabulku.
- Nastavte první řádek tabulky jako její hlavičku.
Tento Python kód ukazuje, jak nastavit první řádek tabulky jako hlavičku:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, Table
presentation = Presentation("table.pptx")
try:
slide = presentation.getSlides().get_Item(0)
table = None
for shape in slide.getShapes():
if isinstance(shape, Table):
table = shape
table.setFirstRow(True)
presentation.save("presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Klonovat řádek nebo sloupec tabulky
- Vytvořte instanci třídy Presentation a načtěte prezentaci.
- Získejte referenci na snímek podle jeho indexu.
- Definujte seznam šířek sloupců.
- Definujte seznam výšek řádků.
- Přidejte objekt Table do snímku pomocí metody addTable.
- Zklonujte řádek tabulky.
- Zklonujte sloupec tabulky.
- Uložte upravenou prezentaci.
Tento Python kód ukazuje, jak klonovat řádek nebo sloupec tabulky v PowerPointu:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation("Test.pptx")
try:
slide = presentation.getSlides().get_Item(0)
column_widths = [50, 50, 50]
row_heights = [50, 30, 30, 30, 30]
table = slide.getShapes().addTable(100, 50, column_widths, row_heights)
table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1")
table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2")
table.getRows().addClone(table.getRows().get_Item(0), False)
table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1")
table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2")
table.getRows().insertClone(3, table.getRows().get_Item(1), False)
table.getColumns().addClone(table.getColumns().get_Item(0), False)
table.getColumns().insertClone(3, table.getColumns().get_Item(1), False)
presentation.save("table_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Odstranit řádek nebo sloupec z tabulky
- Vytvořte instanci třídy Presentation.
- Získejte referenci na snímek podle jeho indexu.
- Definujte seznam šířek sloupců.
- Definujte seznam výšek řádků.
- Přidejte objekt Table do snímku pomocí metody addTable.
- Odstraňte řádek tabulky.
- Odstraňte sloupec tabulky.
- Uložte upravenou prezentaci.
Tento Python kód ukazuje, jak odstranit řádek nebo sloupec z tabulky:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
column_widths = [100, 50, 30]
row_heights = [30, 50, 30]
table = slide.getShapes().addTable(100, 100, column_widths, row_heights)
table.getRows().removeAt(1, False)
table.getColumns().removeAt(1, False)
presentation.save("TestTable_out.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Nastavit formátování textu na úrovni řádku tabulky
- Vytvořte instanci třídy Presentation a načtěte prezentaci.
- Získejte referenci na snímek podle jeho indexu.
- Získejte příslušný objekt Table ze snímku.
- Nastavte výšku písma buněk v prvním řádku pomocí setFontHeight.
- Nastavte zarovnání textu a pravý okraj buněk v prvním řádku pomocí setAlignment a setMarginRight.
- Nastavte vertikální typ textu buněk ve druhém řádku pomocí setTextVerticalType.
- Uložte upravenou prezentaci.
Tento Python kód demonstruje operaci.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, Table, PortionFormat, ParagraphFormat, TextFrameFormat, TextAlignment, TextVerticalType
presentation = Presentation("table.pptx")
try:
shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
if isinstance(shape, Table):
table = shape
portion_format = PortionFormat()
portion_format.setFontHeight(25)
table.getRows().get_Item(0).setTextFormat(portion_format)
paragraph_format = ParagraphFormat()
paragraph_format.setAlignment(TextAlignment.Right)
paragraph_format.setMarginRight(20)
table.getRows().get_Item(0).setTextFormat(paragraph_format)
text_frame_format = TextFrameFormat()
text_frame_format.setTextVerticalType(TextVerticalType.Vertical)
table.getRows().get_Item(1).setTextFormat(text_frame_format)
presentation.save("result.pptx", SaveFormat.Pptx)
else:
print("The first shape is not a table.")
finally:
presentation.dispose()
Nastavit formátování textu na úrovni sloupce tabulky
- Vytvořte instanci třídy Presentation a načtěte prezentaci.
- Získejte referenci na snímek podle jeho indexu.
- Získejte příslušný objekt Table ze snímku.
- Nastavte výšku písma buněk v prvním sloupci pomocí setFontHeight.
- Nastavte zarovnání textu a pravý okraj buněk v prvním sloupci pomocí setAlignment a setMarginRight.
- Nastavte vertikální typ textu buněk ve druhém sloupci pomocí setTextVerticalType.
- Uložte upravenou prezentaci.
Tento Python kód demonstruje operaci:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, Table, PortionFormat, ParagraphFormat, TextFrameFormat, TextAlignment, TextVerticalType
presentation = Presentation("table.pptx")
try:
shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0)
if isinstance(shape, Table):
table = shape
portion_format = PortionFormat()
portion_format.setFontHeight(25)
table.getColumns().get_Item(0).setTextFormat(portion_format)
paragraph_format = ParagraphFormat()
paragraph_format.setAlignment(TextAlignment.Right)
paragraph_format.setMarginRight(20)
table.getColumns().get_Item(0).setTextFormat(paragraph_format)
text_frame_format = TextFrameFormat()
text_frame_format.setTextVerticalType(TextVerticalType.Vertical)
table.getColumns().get_Item(1).setTextFormat(text_frame_format)
presentation.save("result.pptx", SaveFormat.Pptx)
else:
print("The first shape is not a table.")
finally:
presentation.dispose()
Získat vlastnosti stylu tabulky
Aspose.Slides vám umožňuje získat vlastnosti stylu tabulky, abyste je mohli použít pro jinou tabulku nebo kdekoliv jinde. Tento Python kód ukazuje, jak získat vlastnosti stylu z přednastaveného stylu tabulky:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, SaveFormat, TableStylePreset
presentation = Presentation()
try:
column_widths = [100, 150]
row_heights = [5, 5, 5]
table = presentation.getSlides().get_Item(0).getShapes().addTable(10, 10, column_widths, row_heights)
table.setStylePreset(TableStylePreset.DarkStyle1)
style_preset = table.getStylePreset()
print(style_preset)
presentation.save("table.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Často kladené otázky
Mohu na již vytvořenou tabulku použít motivy/styly PowerPointu?
Ano. Tabulka dědí motiv snímku/pouzdra/mistra a přesto můžete přepisovat výplně, okraje a barvy textu nad tímto motivem.
Mohu řadit řádky tabulky jako v Excelu?
Ne, tabulky v Aspose.Slides nemají vestavěné řazení ani filtry. Nejprve seřaďte data v paměti a poté naplňte řádky tabulky v tomto pořadí.
Mohu mít pruhované sloupce a zároveň zachovat vlastní barvy v konkrétních buňkách?
Ano. Zapněte pruhované sloupce a poté přepište konkrétní buňky lokálním formátováním; formátování na úrovni buňky má přednost před stylem tabulky.