Zarządzanie wierszami i kolumnami w tabelach PowerPoint przy użyciu Pythona
Wprowadzenie
Aby umożliwić zarządzanie wierszami i kolumnami tabeli w prezentacji PowerPoint, Aspose.Slides udostępnia klasę Table oraz wiele innych typów.
Ustaw pierwszy wiersz jako nagłówek
- Utwórz instancję klasy Presentation i wczytaj prezentację.
- Pobierz odwołanie do slajdu według indeksu.
- Utwórz odwołanie do Table i ustaw je na
None. - Przejdź przez wszystkie obiekty Shape, aby odnaleźć odpowiednią tabelę.
- Ustaw pierwszy wiersz tabeli jako nagłówek.
Ten kod w języku Python pokazuje, jak ustawić pierwszy wiersz tabeli jako nagłówek:
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()
Klonowanie wiersza lub kolumny tabeli
- Utwórz instancję klasy Presentation i wczytaj prezentację.
- Pobierz odwołanie do slajdu według indeksu.
- Zdefiniuj listę szerokości kolumn.
- Zdefiniuj listę wysokości wierszy.
- Dodaj obiekt Table do slajdu metodą addTable.
- Sklonuj wiersz tabeli.
- Sklonuj kolumnę tabeli.
- Zapisz zmodyfikowaną prezentację.
Ten kod w języku Python pokazuje, jak sklonować wiersz lub kolumnę tabeli PowerPoint:
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()
Usuwanie wiersza lub kolumny z tabeli
- Utwórz instancję klasy Presentation.
- Pobierz odwołanie do slajdu według indeksu.
- Zdefiniuj listę szerokości kolumn.
- Zdefiniuj listę wysokości wierszy.
- Dodaj obiekt Table do slajdu metodą addTable.
- Usuń wiersz tabeli.
- Usuń kolumnę tabeli.
- Zapisz zmodyfikowaną prezentację.
Ten kod w języku Python pokazuje, jak usunąć wiersz lub kolumnę z tabeli:
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()
Ustawianie formatowania tekstu na poziomie wiersza tabeli
- Utwórz instancję klasy Presentation i wczytaj prezentację.
- Pobierz odwołanie do slajdu według indeksu.
- Uzyskaj dostęp do odpowiedniego obiektu Table na slajdzie.
- Ustaw wysokość czcionki komórek pierwszego wiersza za pomocą setFontHeight.
- Ustaw wyrównanie tekstu i prawy margines komórek pierwszego wiersza za pomocą setAlignment oraz setMarginRight.
- Ustaw pionowy typ tekstu komórek drugiego wiersza za pomocą setTextVerticalType.
- Zapisz zmodyfikowaną prezentację.
Ten kod w języku Python demonstruje operację:
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()
Ustawianie formatowania tekstu na poziomie kolumny tabeli
- Utwórz instancję klasy Presentation i wczytaj prezentację.
- Pobierz odwołanie do slajdu według indeksu.
- Uzyskaj dostęp do odpowiedniego obiektu Table na slajdzie.
- Ustaw wysokość czcionki komórek pierwszej kolumny za pomocą setFontHeight.
- Ustaw wyrównanie tekstu i prawy margines komórek pierwszej kolumny za pomocą setAlignment oraz setMarginRight.
- Ustaw pionowy typ tekstu komórek drugiej kolumny za pomocą setTextVerticalType.
- Zapisz zmodyfikowaną prezentację.
Ten kod w języku Python demonstruje operację:
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()
Pobieranie właściwości stylu tabeli
Aspose.Slides umożliwia pobranie właściwości stylu tabeli, aby można było wykorzystać je w innej tabeli lub w innym miejscu. Ten kod w języku Python pokazuje, jak pobrać właściwości stylu z predefiniowanego stylu tabeli:
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()
FAQ
Czy mogę zastosować motywy/ style PowerPoint do już istniejącej tabeli?
Tak. Tabela dziedziczy motyw slajdu/układu/mastera, a jednocześnie można nadpisać wypełnienia, obramowania i kolory tekstu ponad tym motywem.
Czy mogę sortować wiersze tabeli tak jak w Excelu?
Nie, tabele Aspose.Slides nie mają wbudowanego sortowania ani filtrów. Posortuj dane w pamięci, a następnie ponownie wypełnij wiersze tabeli w tej kolejności.
Czy mogę mieć paski (wzory) w kolumnach przy zachowaniu niestandardowych kolorów w wybranych komórkach?
Tak. Włącz paski w kolumnach, a następnie nadpisz wybrane komórki lokalnym formatowaniem; formatowanie na poziomie komórki ma pierwszeństwo przed stylem tabeli.