Spravovat řádky a sloupce v tabulkách PowerPoint pomocí Javy

Úvod

Aby bylo možné spravovat řádky a sloupce tabulky v prezentaci PowerPoint, poskytuje Aspose.Slides třídu Table , rozhraní ITable 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 referenci snímku podle jeho indexu.
  3. Vytvořte objekt ITable a přiřaďte mu hodnotu null.
  4. Procházejte všechny objekty IShape a najděte požadovanou tabulku.
  5. Nastavte první řádek tabulky jako záhlaví.

Tento Java kód ukazuje, jak nastavit první řádek tabulky jako záhlaví:

// Vytvoří instanci třídy Presentation
Presentation pres = new Presentation("table.pptx");
try {
    // Přistupuje k prvnímu snímku
    ISlide sld = pres.getSlides().get_Item(0);

    // Inicializuje nulový TableEx
    ITable tbl = null;

    // Prochází tvary a nastaví referenci na tabulku
    for (IShape shp : sld.getShapes())
    {
        if (shp instanceof ITable) 
        {
            tbl = (ITable)shp;
            
            //Nastaví první řádek tabulky jako záhlaví
            tbl.setFirstRow(true);
        }
    }
    
    // Uloží prezentaci na disk
    pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Klonovat řádek nebo sloupec tabulky

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci,
  2. Získejte referenci snímku podle jeho indexu.
  3. Definujte pole columnWidth.
  4. Definujte pole rowHeight.
  5. Přidejte objekt ITable na snímek pomocí metody addTable.
  6. Zklonujte řádek tabulky.
  7. Zklonujte sloupec tabulky.
  8. Uložte upravenou prezentaci.

Tento Java kód ukazuje, jak klonovat řádek nebo sloupec tabulky v PowerPointu:

 // Vytvoří instanci třídy Presentation
Presentation pres = new Presentation("Test.pptx");
try {
    // Přistupuje k prvnímu snímku
    ISlide sld = pres.getSlides().get_Item(0);

    // Definuje sloupce s šířkami a řádky s výškami
    double[] dblCols = { 50, 50, 50 };
    double[] dblRows = { 50, 30, 30, 30, 30 };

    // Přidá tvar tabulky na snímek
    ITable 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 konci 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 čtvrtý řádek tabulky
    table.getRows().insertClone(3, table.getRows().get_Item(1), false);

    // Zklonuje první sloupec na konci
    table.getColumns().addClone(table.getColumns().get_Item(0), false);

    // Zklonuje druhý sloupec na indexu čtvrtého sloupce
    table.getColumns().insertClone(3,table.getColumns().get_Item(1), false);
    
    // Uloží prezentaci na disk
    pres.save("table_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Odstranit řádek nebo sloupec z tabulky

  1. Vytvořte instanci třídy Presentation a načtěte prezentaci,
  2. Získejte referenci snímku podle jeho indexu.
  3. Definujte pole columnWidth.
  4. Definujte pole rowHeight.
  5. Přidejte objekt ITable na snímek pomocí metody addTable.
  6. Odeberte řádek tabulky.
  7. Odeberte sloupec tabulky.
  8. Uložte upravenou prezentaci.

Tento Java kód ukazuje, jak odstranit řádek nebo sloupec z tabulky:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    
    double[] colWidth = { 100, 50, 30 };
    double[] rowHeight = { 30, 50, 30 };

    ITable 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 (pres != null) 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 referenci snímku podle jeho indexu.
  3. Získejte odpovídající objekt ITable 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 Java kód demonstruje operaci.

// Vytvoří instanci třídy Presentation
Presentation pres = new Presentation();
try {
    // Předpokládejme, že první tvar na prvním snímku je tabulka
    ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0); 
    
    // Nastaví výšku písma buněk v prvním řádku
    PortionFormat portionFormat = new PortionFormat();
    portionFormat.setFontHeight(25);
	
    someTable.getRows().get_Item(0).setTextFormat(portionFormat);
    
    // Nastaví zarovnání textu a pravý okraj buněk v prvním řádku
    ParagraphFormat paragraphFormat = new ParagraphFormat();
    paragraphFormat.setAlignment(TextAlignment.Right);
    paragraphFormat.setMarginRight(20);
	
    someTable.getRows().get_Item(0).setTextFormat(paragraphFormat);
    
    // Nastaví vertikální typ textu buněk ve druhém řádku
    TextFrameFormat textFrameFormat = new TextFrameFormat();
    textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
	
    someTable.getRows().get_Item(1).setTextFormat(textFrameFormat);

  // Uloží prezentaci na disk
    pres.save("result.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) 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 referenci snímku podle jeho indexu.
  3. Získejte odpovídající objekt ITable 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 Java kód demonstruje operaci:

// Vytvoří instanci třídy Presentation
Presentation pres = new Presentation();
try {
    // Předpokládejme, že první tvar na prvním snímku je tabulka
    ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0)];

    // Nastaví výšku písma buněk v prvním sloupci
    PortionFormat portionFormat = new PortionFormat();
    portionFormat.setFontHeight(25);
	
    someTable.getColumns().get_Item(0).setTextFormat(portionFormat);

    // Nastaví zarovnání textu a pravý okraj buněk v prvním sloupci jedním voláním
    ParagraphFormat paragraphFormat = new ParagraphFormat();
    paragraphFormat.setAlignment(TextAlignment.Right);
    paragraphFormat.setMarginRight(20);
	
    someTable.getColumns().get_Item(0).setTextFormat(paragraphFormat);

    // Nastaví vertikální typ textu buněk ve druhém sloupci
    TextFrameFormat textFrameFormat = new TextFrameFormat();
    textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
	
    someTable.getColumns().get_Item(1).setTextFormat(textFrameFormat);

    pres.save("result.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Získat vlastnosti stylu tabulky

Aspose.Slides umožňuje získat vlastnosti stylu tabulky, abyste je mohli použít pro jinou tabulku nebo jinde. Tento Java kód ukazuje, jak získat vlastnosti stylu z přednastaveného stylu tabulky:

Presentation pres = new Presentation();
try {
    ITable table = pres.getSlides().get_Item(0).getShapes().addTable(10, 10, new double[] { 100, 150 }, new double[] { 5, 5, 5 });
    table.setStylePreset(TableStylePreset.DarkStyle1); // změnit výchozí přednastavený styl motivu
    pres.save("table.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Často kladené otázky

Mohu na již vytvořenou tabulku použít motivy/styly PowerPointu?

Ano. Tabulka dědí motiv snímku/podkladu/mistra a můžete nad tím 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. Nejprve seřaďte data v paměti a poté znovu naplňte řádky tabulky v tom pořadí.

Mohu mít pruhované (striped) sloupce a zároveň zachovat vlastní barvy v konkrétních buňkách?

Ano. Zapněte pruhované sloupce a poté 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.