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í

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci.
  2. Získejte odkaz na snímek pomocí jeho indexu.
  3. Vytvořte objekt Table a nastavte jej na null.
  4. Projděte všechny objekty Shape a najděte požadovanou tabulku.
  5. 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

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci,
  2. Získejte odkaz na snímek pomocí jeho indexu.
  3. Definujte pole columnWidth.
  4. Definujte pole rowHeight.
  5. Přidejte objekt Table na snímek pomocí metody addTable.
  6. Zklonujte řádek tabulky.
  7. Zklonujte sloupec tabulky.
  8. 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

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci,
  2. Získejte odkaz na snímek pomocí jeho indexu.
  3. Definujte pole columnWidth.
  4. Definujte pole rowHeight.
  5. Přidejte objekt Table na snímek pomocí metody addTable.
  6. Odstraňte řádek tabulky.
  7. Odstraňte sloupec tabulky.
  8. 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

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci,
  2. Získejte odkaz na snímek pomocí jeho indexu.
  3. Získejte požadovaný objekt Table ze snímku.
  4. Nastavte buňkám v prvním řádku setFontHeight(float value).
  5. Nastavte buňkám v prvním řádku setAlignment(int value) a setMarginRight(float value).
  6. Nastavte buňkám ve druhém řádku setTextVerticalType(byte value).
  7. 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

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci,
  2. Získejte odkaz na snímek pomocí jeho indexu.
  3. Získejte požadovaný objekt Table ze snímku.
  4. Nastavte buňkám v prvním sloupci setFontHeight(float value).
  5. Nastavte buňkám v prvním sloupci setAlignment(int value) a setMarginRight(float value).
  6. Nastavte buňkám ve druhém sloupci setTextVerticalType(byte value).
  7. 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.