Sorok és oszlopok kezelése PowerPoint táblázatokban PHP használatával
Bevezetés
Az Aspose.Slides for PHP via Java lehetővé teszi a táblázatszerkezet és formázás kezelését PowerPoint‑prezentációkban a Table osztályon keresztül. Megjelölhet egy fejlécsort, klónozhat vagy eltávolíthat sorokat és oszlopokat, valamint alkalmazhat szöveges formázást egy teljes sorra vagy oszlopra.
Ez a cikk ezeknek a műveleteknek a magyarázatát adja PHP példákkal. Bemutatja, hogyan lehet lekérni egy táblázat stílus‑presetjét a későbbi újrahasználathoz is. A táblázatsorok és -oszlopok indexelése nullától indul.
Sor magasságának szabályozása
Használja a Row::setMinimalHeight metódust a sor minimális magasságának pontban való beállításához. Ez egy alsó határ, nem fix magasság. A Row::getHeight visszaadja a tényleges magasságot. A sort a Table::getRows segítségével érheti el.
A példa betölti a row-height-input.pptx fájlt, amelyben a táblázat az első dián az első alakzat. Az első sor 70 pontnál kezdődik. A cellák 18 pontos Arial szöveget, sortörést és 6 pontos felső‑alsó margót használnak; a második oszlopban a hosszabb szöveg több sorba törik. A példa a minimumot 100 pontra növeli, majd 20 pontra csökkenti, minden változtatás után kiírja a tényleges magasságot, és elmenti a két eredményt.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("row-height-input.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$row = $table->getRows()->get_Item(0);
$row->setMinimalHeight(100);
printf("Increased: minimum = %.1f, actual = %.1f pt\n", java_values($row->getMinimalHeight()), java_values($row->getHeight()));
$presentation->save("row-height-increased.pptx", SaveFormat::Pptx);
$row->setMinimalHeight(20);
printf("Decreased: minimum = %.1f, actual = %.1f pt\n", java_values($row->getMinimalHeight()), java_values($row->getHeight()));
$presentation->save("row-height-decreased.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
A mellékelt prezentációval a minimum növelése helyet ad a sornak. A csökkentés eltávolítja ezt a felesleges helyet, de a tényleges magasság továbbra is nagyobb lesz, mint 20 pont, mert a szöveg és a cellamargók több helyet igényelnek. A minimum önmagában nem kényszerítheti a sort a tartalom által igényelt hely alá.
Több tényező befolyásolja a tényleges magasságot:
- Szöveg és betűméret: hosszabb szöveg, kifejezett sortörés vagy nagyobb betűméret több függőleges helyet igényelhet.
- Sortörés és oszlopszélesség: sortörés engedélyezése esetén a Column::setWidth használata a oszlop szélességének csökkentésével több sort eredményezhet. Szélesebb oszlop csökkentheti a függőleges helyigényt.
- Cellamargók: Cell::setMarginTop és Cell::setMarginBottom függőleges helyet adnak hozzá. Cell::setMarginLeft és Cell::setMarginRight csökkentik a szöveg számára elérhető szélességet, ami további sortörést okozhat.
Ezzel a táblázattal, amelyben nincsenek egyesített cellák, a legtöbb függőleges helyet igénylő cella határozza meg a sor alacsonyabb határát. A sor rövidebbé tételéhez gyakran a szöveget, a betűméretet vagy a margókat kell csökkenteni, vagy egy oszlopot szélesíteni.
Az alábbi képek ugyanazt a táblázatot mutatják azonos méretben. A bemutatott eredményekben a tényleges magasságok 70, 100 és 55,2 pont voltak: az utolsó sor magasabb maradt a 20 pontos minimumnál. A pontos szövegmérések a környezetben elérhető betűkészletektől függően változhatnak. Töltse le a mentett eredményeket: increased minimum és decreased minimum.
| Eredeti: minimum 70 pt, tényleges 70 pt | Növelve: minimum 100 pt, tényleges 100 pt | Csökkentve: minimum 20 pt, tényleges 55.2 pt |
|---|---|---|
![]() |
![]() |
![]() |
Az első sor beállítása fejlécnek
Használja a setFirstRow metódust az első sor fejlécként való megjelöléséhez. A megjelenése a táblára alkalmazott táblázat‑stílustól függ.
- Töltse be a prezentációt a Presentation osztállyal.
- Hozza el az első diát.
- Hozza el a táblázatot, amely az első alakzatként szerepel a dián.
- Engedélyezze a fejlécformázást az első sorra.
- Mentse el a módosított prezentációt.
A példa a table.pptx fájlt igényli, amelyben a táblázat az első dián az első alakzat. Az első sorra engedélyezi a fejlécformázást, majd elmenti a First_row_header.pptx fájlt.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("table.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$table->setFirstRow(true);
$presentation->save("First_row_header.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Táblázatsor vagy -oszlop klónozása
Klónozzon sorokat vagy oszlopokat a tartalom és a formázás újbóli felhasználásához. A másolatot hozzáfűzheti a táblázat végéhez, vagy egy adott pozícióba beillesztheti.
- Töltse be a prezentációt a Presentation osztállyal.
- Hozza el az első diát.
- Határozza meg az oszlopok szélességét és a sorok magasságát.
- Adjon hozzá egy táblázatot a addTable metódussal.
- Klónozza a kívánt sorokat.
- Klónozza a kívánt oszlopokat.
- Mentse el a módosított prezentációt.
A példa a Test.pptx fájlt igényli, amely legalább egy diát tartalmaz. Létrehoz egy három oszlopos, öt soros táblázatot pontban megadott méretekkel. A másolatként az első sort és oszlopot a végére fűzi, majd a második sort és oszlopot a 3‑as indexen (a negyedik pozíció) szúrja be. Az eredményül kapott táblázat hét sort és öt oszlopot tartalmaz. A false argumentum letiltja a szomszédos egyesített sorok vagy oszlopok klónozását; ebben a táblázatban nincs egyesített cella.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("Test.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$columnWidths = [50, 50, 50];
$rowHeights = [50, 30, 30, 30, 30];
$table = $slide->getShapes()->addTable(100, 50, $columnWidths, $rowHeights);
$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();
}
Sor vagy oszlop eltávolítása egy táblázatból
Távolítson el sorokat vagy oszlopokat, amelyekre már nincs szükség a táblázatban. Egy elem eltávolítása eltolja a mögötte lévő sorok vagy oszlopok indexeit.
- Hozzon létre egy prezentációt a Presentation osztállyal.
- Hozza el az első diát.
- Határozza meg az oszlopok szélességét és a sorok magasságát.
- Adjon hozzá egy táblázatot a addTable metódussal.
- Távolítsa el a második sort és a második oszlopot.
- Mentse el a módosított prezentációt.
Ez a példa egy három‑háromas táblázatot hoz létre, majd az 1‑es indexű sort és oszlopot eltávolítja, így egy két‑két táblázat marad a TestTable_out.pptx fájlban. A méretek pontban vannak megadva. A false argumentum letiltja a szomszédos egyesített sorok vagy oszlopok eltávolítását; ebben a táblázatban nincs egyesített cella.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$columnWidths = [100, 50, 30];
$rowHeights = [30, 50, 30];
$table = $slide->getShapes()->addTable(100, 100, $columnWidths, $rowHeights);
$table->getRows()->removeAt(1, false);
$table->getColumns()->removeAt(1, false);
$presentation->save("TestTable_out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Szövegformázás beállítása táblázatsoros szinten
Alkalmazzon szövegformázást egy teljes sorra, hogy a cellái egységesek legyenek. Beállíthat betűtulajdonságokat, bekezdés‑formázást és szövegtájolást anélkül, hogy egyenként formázná a cellákat.
- Töltse be a prezentációt a Presentation osztállyal.
- Hozza el a táblázatot az első dián.
- Használja a setFontHeight metódust az első sorra.
- Használja a setAlignment és a setMarginRight metódusokat az első sorra.
- Használja a setTextVerticalType metódust a második sorra.
- Mentse el a módosított prezentációt.
A példa a table.pptx fájlt igényli, amelyben a táblázat az első dián az első alakzat, és legalább két sor található benne. 25 pontos szöveget, jobbra igazítást és 20 pontos jobb bekezdésmargót alkalmaz az első sorra, majd a második sorra függőleges szöveget állít be.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\PortionFormat;
use aspose\slides\ParagraphFormat;
use aspose\slides\TextFrameFormat;
use aspose\slides\TextAlignment;
use aspose\slides\TextVerticalType;
$presentation = new Presentation("table.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$portionFormat = new PortionFormat();
$portionFormat->setFontHeight(25);
$table->getRows()->get_Item(0)->setTextFormat($portionFormat);
$paragraphFormat = new ParagraphFormat();
$paragraphFormat->setAlignment(TextAlignment::Right);
$paragraphFormat->setMarginRight(20);
$table->getRows()->get_Item(0)->setTextFormat($paragraphFormat);
$textFrameFormat = new TextFrameFormat();
$textFrameFormat->setTextVerticalType(TextVerticalType::Vertical);
$table->getRows()->get_Item(1)->setTextFormat($textFrameFormat);
$presentation->save("row_formatting.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Szövegformázás beállítása táblázatoszlopos szinten
Alkalmazzon szövegformázást egy teljes oszlopra, hogy a cellái egységesek legyenek. Beállíthat betűtulajdonságokat, bekezdés‑formázást és szövegtájolást anélkül, hogy egyenként formázná a cellákat.
- Töltse be a prezentációt a Presentation osztállyal.
- Hozza el a táblázatot az első dián.
- Használja a setFontHeight metódust az első oszlopra.
- Használja a setAlignment és a setMarginRight metódusokat az első oszlopra.
- Használja a setTextVerticalType metódust a második oszlopra.
- Mentse el a módosított prezentációt.
A példa a table.pptx fájlt igényli, amelyben a táblázat az első dián az első alakzat, és legalább két oszlop található benne. 25 pontos szöveget, jobbra igazítást és 20 pontos jobb bekezdésmargót alkalmaz az első oszlopra, majd a második oszlopra függőleges szöveget állít be.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\PortionFormat;
use aspose\slides\ParagraphFormat;
use aspose\slides\TextFrameFormat;
use aspose\slides\TextAlignment;
use aspose\slides\TextVerticalType;
$presentation = new Presentation("table.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$table = $slide->getShapes()->get_Item(0);
$portionFormat = new PortionFormat();
$portionFormat->setFontHeight(25);
$table->getColumns()->get_Item(0)->setTextFormat($portionFormat);
$paragraphFormat = new ParagraphFormat();
$paragraphFormat->setAlignment(TextAlignment::Right);
$paragraphFormat->setMarginRight(20);
$table->getColumns()->get_Item(0)->setTextFormat($paragraphFormat);
$textFrameFormat = new TextFrameFormat();
$textFrameFormat->setTextVerticalType(TextVerticalType::Vertical);
$table->getColumns()->get_Item(1)->setTextFormat($textFrameFormat);
$presentation->save("column_formatting.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Táblázat stílus tulajdonságainak lekérdezése
Használja a getStylePreset metódust a táblázatra alkalmazott preset lekérdezéséhez, amelyet később egy másik táblázaton is felhasználhat. Ez a presetet azonosítja, nem pedig az egyes cellák felülírt formázását.
A példa létrehoz egy táblázatot, alkalmazza a TableStylePreset::DarkStyle1 presetet, majd visszaolvassa a presetet. Kiírja a DarkStyle1 értékének megfelelő egész számot, és elmenti a táblázatot a table.pptx fájlban.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\TableStylePreset;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$columnWidths = [100, 150];
$rowHeights = [5, 5, 5];
$table = $slide->getShapes()->addTable(10, 10, $columnWidths, $rowHeights);
$table->setStylePreset(TableStylePreset::DarkStyle1);
$stylePreset = $table->getStylePreset();
echo java_values($stylePreset) . PHP_EOL;
$presentation->save("table.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
GYIK
Alkalmazhatok PowerPoint témákat/stílusokat egy már létrehozott táblázatra?
Igen. A táblázat örökli a dia/érték/elrendezés/master témát, és továbbra is felülírhatja a kitöltéseket, szegélyeket és a szövegszíneket a téma felett.
Rendezhetem a táblázatsorokat, mint az Excelben?
Nem, az Aspose.Slides táblázatoknak nincs beépített rendezése vagy szűrése. Először memóriában rendezze az adatokat, majd töltse újra a táblázatsorokat ebben a sorrendben.
Lehetnek csíkozott (csíkozott) oszlopok, miközben egyedi színeket tartok meg bizonyos cellákon?
Igen. Kapcsolja be a csíkozott oszlopokat, majd felülírja a konkrét cellákat helyi formázással; a cellaszintű formázás felülbírálja a táblázat stílusát.


