Správa řádků a sloupců v tabulkách PowerPoint pomocí PHP
Úvod
Aby vám umožnil spravovat řádky a sloupce tabulky v prezentaci PowerPoint, poskytuje Aspose.Slides třídu Table a mnoho dalších typů.
Nastavit první řádek jako záhlaví
- Vytvořte instanci třídy Presentation a načtěte prezentaci.
- Získejte odkaz na snímek pomocí jeho indexu.
- Vytvořte objekt Table a nastavte jej na null.
- Projděte všechny objekty Shape a najděte požadovanou tabulku.
- Nastavte první řádek tabulky jako její záhlaví.
Tento PHP kód ukazuje, jak nastavit první řádek tabulky jako její záhlaví:
# Vytvoří instanci třídy Presentation
$pres = new Presentation("table.pptx");
try {
# Přistupuje k prvnímu snímku
$sld = $pres->getSlides()->get_Item(0);
# Inicializuje proměnnou TableEx na null
$tbl = null;
# Prochází tvary a nastaví odkaz na tabulku
foreach($sld->getShapes() as $shp) {
if (java_instanceof($shp, new JavaClass("com.aspose.slides.Table"))) {
$tbl = $shp;
# Nastavuje první řádek tabulky jako její záhlaví
$tbl->setFirstRow(true);
}
}
# Ukládá prezentaci na disk
$pres->save("pres.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Klonovat řádek nebo sloupec tabulky
- Vytvořte instanci třídy Presentation a načtěte prezentaci,
- Získejte odkaz na snímek pomocí jeho indexu.
- Definujte pole
columnWidth. - Definujte pole
rowHeight. - Přidejte objekt Table na snímek pomocí metody addTable.
- Zklonujte řádek tabulky.
- Zklonujte sloupec tabulky.
- Uložte upravenou prezentaci.
Tento PHP kód ukazuje, jak klonovat řádek nebo sloupec tabulky PowerPoint:
# Vytvoří instanci třídy Presentation
$pres = new Presentation("Test.pptx");
try {
# Přistupuje k prvnímu snímku
$sld = $pres->getSlides()->get_Item(0);
# Definuje sloupce s šířkami a řádky s výškami
$dblCols = array(50, 50, 50 );
$dblRows = array(50, 30, 30, 30, 30 );
# Přidá tvar tabulky na snímek
$table = $sld->getShapes()->addTable(100, 50, $dblCols, $dblRows);
# Přidá text do buňky řádku 1, sloupce 1
$table->get_Item(0, 0)->getTextFrame()->setText("Row 1 Cell 1");
# Přidá text do buňky řádku 1, sloupce 2
$table->get_Item(1, 0)->getTextFrame()->setText("Row 1 Cell 2");
# Zklonuje řádek 1 na konec tabulky
$table->getRows()->addClone($table->getRows()->get_Item(0), false);
# Přidá text do buňky řádku 2, sloupce 1
$table->get_Item(0, 1)->getTextFrame()->setText("Row 2 Cell 1");
# Přidá text do buňky řádku 2, sloupce 2
$table->get_Item(1, 1)->getTextFrame()->setText("Row 2 Cell 2");
# Zklonuje řádek 2 jako 4. řádek tabulky
$table->getRows()->insertClone(3, $table->getRows()->get_Item(1), false);
# Zklonuje první sloupec na konec
$table->getColumns()->addClone($table->getColumns()->get_Item(0), false);
# Zklonuje druhý sloupec na index 4
$table->getColumns()->insertClone(3, $table->getColumns()->get_Item(1), false);
# Uloží prezentaci na disk
$pres->save("table_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Odstranit řádek nebo sloupec z tabulky
- Vytvořte instanci třídy Presentation a načtěte prezentaci,
- Získejte odkaz na snímek pomocí jeho indexu.
- Definujte pole
columnWidth. - Definujte pole
rowHeight. - Přidejte objekt Table na snímek pomocí metody addTable.
- Odstraňte řádek tabulky.
- Odstraňte sloupec tabulky.
- Uložte upravenou prezentaci.
Tento PHP kód ukazuje, jak odstranit řádek nebo sloupec z tabulky:
$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();
}
}
Nastavit formátování textu na úrovni řádku tabulky
- Vytvořte instanci třídy Presentation a načtěte prezentaci,
- Získejte odkaz na snímek pomocí jeho indexu.
- Získejte požadovaný objekt Table ze snímku.
- Nastavte buňkám v prvním řádku setFontHeight(float value).
- Nastavte buňkám v prvním řádku setAlignment(int value) a setMarginRight(float value).
- Nastavte buňkám ve druhém řádku setTextVerticalType(byte value).
- Uložte upravenou prezentaci.
Tento PHP kód demonstruje operaci.
# Vytvoří instanci třídy Presentation
$pres = new Presentation();
try {
# Předpokládejme, že první tvar na prvním snímku je tabulka
$someTable = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
# Nastavuje výšku písma buněk prvního řádku
$portionFormat = new PortionFormat();
$portionFormat::setFontHeight(25);
$someTable->getRows()->get_Item(0)->setTextFormat($portionFormat);
# Nastavuje zarovnání textu a pravý okraj buněk prvního řádku
$paragraphFormat = new ParagraphFormat();
$paragraphFormat::setAlignment(TextAlignment->Right);
$paragraphFormat::setMarginRight(20);
$someTable->getRows()->get_Item(0)->setTextFormat($paragraphFormat);
# Nastavuje vertikální typ textu buněk druhého řádku
$textFrameFormat = new TextFrameFormat();
$textFrameFormat::setTextVerticalType(TextVerticalType::Vertical);
$someTable->getRows()->get_Item(1)->setTextFormat($textFrameFormat);
# Ukládá prezentaci na disk
$pres->save("result.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Nastavit formátování textu na úrovni sloupce tabulky
- Vytvořte instanci třídy Presentation a načtěte prezentaci,
- Získejte odkaz na snímek pomocí jeho indexu.
- Získejte požadovaný objekt Table ze snímku.
- Nastavte buňkám v prvním sloupci setFontHeight(float value).
- Nastavte buňkám v prvním sloupci setAlignment(int value) a setMarginRight(float value).
- Nastavte buňkám ve druhém sloupci setTextVerticalType(byte value).
- Uložte upravenou prezentaci.
Tento PHP kód demonstruje operaci:
# Vytvoří instanci třídy Presentation
$pres = new Presentation();
try {
# Předpokládejme, že první tvar na prvním snímku je tabulka
$someTable = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
# Nastavuje výšku písma buněk prvního sloupce
$portionFormat = new PortionFormat();
$portionFormat::setFontHeight(25);
$someTable->getColumns()->get_Item(0)->setTextFormat($portionFormat);
# Nastavuje zarovnání textu a pravý okraj buněk prvního sloupce v jednom volání
$paragraphFormat = new ParagraphFormat();
$paragraphFormat::setAlignment(TextAlignment->Right);
$paragraphFormat::setMarginRight(20);
$someTable->getColumns()->get_Item(0)->setTextFormat($paragraphFormat);
# Nastavuje vertikální typ textu buněk druhého sloupce
$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();
}
}
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 kdekoli jinde. Tento PHP kód ukazuje, jak získat vlastnosti stylu z přednastaveného stylu tabulky:
$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);// změní výchozí přednastavený styl motivu
$pres->save("table.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Mohu použít motivy/styly PowerPoint na již vytvořenou tabulku?
Ano. Tabulka dědí motiv snímku/layoutu/masteru a můžete nad tímto motivem stále přepsat výplně, okraje a barvy textu.
Mohu řadit řádky tabulky jako v Excelu?
Ne, tabulky Aspose.Slides nemají vestavěné řazení ani filtry. Seřaďte svá data v paměti nejprve a pak znovu naplňte řádky tabulky v tomto pořadí.
Mohu mít pruhované (proužkované) sloupce a zároveň si zachovat vlastní barvy v konkrétních buňkách?
Ano. Zapněte pruhované sloupce a pak 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.