Zarządzanie wierszami i kolumnami w tabelach PowerPoint przy użyciu PHP
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 załaduj prezentację.
- Uzyskaj referencję do slajdu za pomocą jego indeksu.
- Utwórz obiekt Table i ustaw go na null.
- Iteruj po wszystkich obiektach Shape , aby znaleźć odpowiednią tabelę.
- Ustaw pierwszy wiersz tabeli jako jej nagłówek.
Ten kod PHP pokazuje, jak ustawić pierwszy wiersz tabeli jako nagłówek:
# Tworzy instancję klasy Presentation
$pres = new Presentation("table.pptx");
try {
# Uzyskuje dostęp do pierwszego slajdu
$sld = $pres->getSlides()->get_Item(0);
# Inicjalizuje zmienną TableEx jako null
$tbl = null;
# Iteruje przez kształty i ustawia referencję do tabeli
foreach($sld->getShapes() as $shp) {
if (java_instanceof($shp, new JavaClass("com.aspose.slides.Table"))) {
$tbl = $shp;
# Ustawia pierwszy wiersz tabeli jako nagłówek
$tbl->setFirstRow(true);
}
}
# Zapisuje prezentację na dysk
$pres->save("pres.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Klonuj wiersz lub kolumnę tabeli
- Utwórz instancję klasy Presentation i załaduj prezentację,
- Uzyskaj referencję do slajdu za pomocą jego indeksu.
- Zdefiniuj tablicę
columnWidth. - Zdefiniuj tablicę
rowHeight. - Dodaj obiekt Table do slajdu za pomocą metody addTable.
- Sklonuj wiersz tabeli.
- Sklonuj kolumnę tabeli.
- Zapisz zmodyfikowaną prezentację.
Ten kod PHP pokazuje, jak klonować wiersz lub kolumnę tabeli PowerPoint:
# Tworzy instancję klasy Presentation
$pres = new Presentation("Test.pptx");
try {
# Uzyskuje dostęp do pierwszego slajdu
$sld = $pres->getSlides()->get_Item(0);
# Definiuje kolumny z szerokościami i wiersze z wysokościami
$dblCols = array(50, 50, 50 );
$dblRows = array(50, 30, 30, 30, 30 );
# Dodaje kształt tabeli do slajdu
$table = $sld->getShapes()->addTable(100, 50, $dblCols, $dblRows);
# Dodaje tekst do komórki 1 wiersza 1
$table->get_Item(0, 0)->getTextFrame()->setText("Row 1 Cell 1");
# Dodaje tekst do komórki 2 wiersza 1
$table->get_Item(1, 0)->getTextFrame()->setText("Row 1 Cell 2");
# Klonuje wiersz 1 na końcu tabeli
$table->getRows()->addClone($table->getRows()->get_Item(0), false);
# Dodaje tekst do komórki 1 wiersza 2
$table->get_Item(0, 1)->getTextFrame()->setText("Row 2 Cell 1");
# Dodaje tekst do komórki 2 wiersza 2
$table->get_Item(1, 1)->getTextFrame()->setText("Row 2 Cell 2");
# Klonuje wiersz 2 jako czwarty wiersz tabeli
$table->getRows()->insertClone(3, $table->getRows()->get_Item(1), false);
# Klonuje pierwszą kolumnę na końcu
$table->getColumns()->addClone($table->getColumns()->get_Item(0), false);
# Klonuje drugą kolumnę na indeksie czwartej kolumny
$table->getColumns()->insertClone(3, $table->getColumns()->get_Item(1), false);
# Zapisuje prezentację na dysk
$pres->save("table_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Usuń wiersz lub kolumnę z tabeli
- Utwórz instancję klasy Presentation i załaduj prezentację,
- Uzyskaj referencję do slajdu za pomocą jego indeksu.
- Zdefiniuj tablicę
columnWidth. - Zdefiniuj tablicę
rowHeight. - Dodaj obiekt Table do slajdu za pomocą metody addTable.
- Usuń wiersz tabeli.
- Usuń kolumnę tabeli.
- Zapisz zmodyfikowaną prezentację.
Ten kod PHP pokazuje, jak usunąć wiersz lub kolumnę z tabeli:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$colWidth = array(100, 50, 30 );
$rowHeight = array(30, 50, 30 );
$table = $slide->getShapes()->addTable(100, 100, $colWidth, $rowHeight);
$table->getRows()->removeAt(1, false);
$table->getColumns()->removeAt(1, false);
$pres->save("TestTable_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Ustaw formatowanie tekstu na poziomie wiersza tabeli
- Utwórz instancję klasy Presentation i załaduj prezentację,
- Uzyskaj referencję do slajdu za pomocą jego indeksu.
- Uzyskaj dostęp do odpowiedniego obiektu Table ze slajdu.
- Ustaw w komórkach pierwszego wiersza setFontHeight(float value).
- Ustaw w komórkach pierwszego wiersza setAlignment(int value) oraz setMarginRight(float value).
- Ustaw w komórkach drugiego wiersza setTextVerticalType(byte value).
- Zapisz zmodyfikowaną prezentację.
Ten kod PHP demonstruje operację.
# Tworzy instancję klasy Presentation
$pres = new Presentation();
try {
# Załóżmy, że pierwszym kształtem na pierwszym slajdzie jest tabela
$someTable = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
# Ustawia wysokość czcionki komórek pierwszego wiersza
$portionFormat = new PortionFormat();
$portionFormat::setFontHeight(25);
$someTable->getRows()->get_Item(0)->setTextFormat($portionFormat);
# Ustawia wyrównanie tekstu komórek pierwszego wiersza oraz prawy margines
$paragraphFormat = new ParagraphFormat();
$paragraphFormat::setAlignment(TextAlignment->Right);
$paragraphFormat::setMarginRight(20);
$someTable->getRows()->get_Item(0)->setTextFormat($paragraphFormat);
# Ustawia pionowy rodzaj tekstu komórek drugiego wiersza
$textFrameFormat = new TextFrameFormat();
$textFrameFormat::setTextVerticalType(TextVerticalType::Vertical);
$someTable->getRows()->get_Item(1)->setTextFormat($textFrameFormat);
# Zapisuje prezentację na dysk
$pres->save("result.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Ustaw formatowanie tekstu na poziomie kolumny tabeli
- Utwórz instancję klasy Presentation i załaduj prezentację,
- Uzyskaj referencję do slajdu za pomocą jego indeksu.
- Uzyskaj dostęp do odpowiedniego obiektu Table ze slajdu.
- Ustaw w komórkach pierwszej kolumny setFontHeight(float value).
- Ustaw w komórkach pierwszej kolumny setAlignment(int value) oraz setMarginRight(float value).
- Ustaw w komórkach drugiej kolumny setTextVerticalType(byte value).
- Zapisz zmodyfikowaną prezentację.
Ten kod PHP demonstruje operację:
# Tworzy instancję klasy Presentation
$pres = new Presentation();
try {
# Załóżmy, że pierwszym kształtem na pierwszym slajdzie jest tabela
$someTable = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
# Ustawia wysokość czcionki komórek pierwszej kolumny
$portionFormat = new PortionFormat();
$portionFormat::setFontHeight(25);
$someTable->getColumns()->get_Item(0)->setTextFormat($portionFormat);
# Ustawia wyrównanie tekstu i prawy margines komórek pierwszej kolumny w jednym wywołaniu
$paragraphFormat = new ParagraphFormat();
$paragraphFormat::setAlignment(TextAlignment->Right);
$paragraphFormat::setMarginRight(20);
$someTable->getColumns()->get_Item(0)->setTextFormat($paragraphFormat);
# Ustawia pionowy rodzaj tekstu komórek drugiej kolumny
$textFrameFormat = new TextFrameFormat();
$textFrameFormat::setTextVerticalType(TextVerticalType::Vertical);
$someTable->getColumns()->get_Item(1)->setTextFormat($textFrameFormat);
$pres->save("result.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Pobierz właściwości stylu tabeli
Aspose.Slides pozwala pobrać właściwości stylu tabeli, aby móc użyć ich w innej tabeli lub w innym miejscu. Ten kod PHP pokazuje, jak uzyskać właściwości stylu z gotowego stylu tabeli:
$pres = new Presentation();
try {
$table = $pres->getSlides()->get_Item(0)->getShapes()->addTable(10, 10, array(100, 150 ), array(5, 5, 5 ));
$table->setStylePreset(TableStylePreset->DarkStyle1);// zmień domyślny preset stylu
$pres->save("table.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Czy mogę zastosować motywy/style PowerPoint do już utworzonej tabeli?
Tak. Tabela dziedziczy motyw slajdu/układu/mastera i nadal możesz nadpisać wypełnienia, obramowania oraz kolory tekstu w ramach tego motywu.
Czy mogę sortować wiersze tabeli jak w Excelu?
Nie, tabele Aspose.Slides nie mają wbudowanego sortowania ani filtrów. Posortuj najpierw dane w pamięci, a następnie ponownie wypełnij wiersze tabeli w tej kolejności.
Czy mogę mieć paskowane (stripowane) kolumny, zachowując niestandardowe kolory w określonych komórkach?
Tak. Włącz paskowane kolumny, a następnie nadpisz konkretne komórki lokalnym formatowaniem; formatowanie na poziomie komórki ma pierwszeństwo przed stylem tabeli.