Hantera rader och kolumner i PowerPoint-tabeller med Java
Introduktion
För att du ska kunna hantera en tabells rader och kolumner i en PowerPoint‑presentation tillhandahåller Aspose.Slides klassen Tabell , gränssnittet ITable och många andra typer.
Ange den första raden som rubrik
- Skapa en instans av klassen Presentation och ladda presentationen.
- Hämta en bilds referens via dess index.
- Skapa ett ITable‑objekt och sätt det till null.
- Iterera genom alla IShape‑objekt för att hitta den relevanta tabellen.
- Ange tabellens första rad som dess rubrik.
Den här Java‑koden visar hur du anger en tabells första rad som rubrik:
// Skapar en instans av Presentation-klassen
Presentation pres = new Presentation("table.pptx");
try {
// Kommer åt den första bilden
ISlide sld = pres.getSlides().get_Item(0);
// Initierar null TableEx
ITable tbl = null;
// Itererar genom formerna och sätter en referens till tabellen
for (IShape shp : sld.getShapes())
{
if (shp instanceof ITable)
{
tbl = (ITable)shp;
//Sätter den första raden i en tabell som rubrik
tbl.setFirstRow(true);
}
}
// Sparar presentationen till disk
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Klona en tabellrad eller kolumn
- Skapa en instans av klassen Presentation och ladda presentationen,
- Hämta en bilds referens via dess index.
- Definiera en array av
columnWidth. - Definiera en array av
rowHeight. - Lägg till ett ITable‑objekt på bilden via metoden addTable.
- Klona tabellraden.
- Klona tabellkolumnen.
- Spara den ändrade presentationen.
Den här Java‑koden visar hur du klonar en PowerPoint‑tabells rad eller kolumn:
// Skapar en instans av Presentation-klassen
Presentation pres = new Presentation("Test.pptx");
try {
// Kommer åt den första bilden
ISlide sld = pres.getSlides().get_Item(0);
// Definierar kolumner med bredd och rader med höjd
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// Lägger till en tabellform på bilden
ITable table = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Lägger till lite text i rad 1 cell 1
table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1");
// Lägger till lite text i rad 1 cell 2
table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2");
// Klona rad 1 i slutet av tabellen
table.getRows().addClone(table.getRows().get_Item(0), false);
// Lägger till lite text i rad 2 cell 1
table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1");
// Lägger till lite text i rad 2 cell 2
table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2");
// Klona rad 2 som den 4:e raden i tabellen
table.getRows().insertClone(3, table.getRows().get_Item(1), false);
// Klona den första kolumnen i slutet
table.getColumns().addClone(table.getColumns().get_Item(0), false);
// Klona den andra kolumnen på 4:e kolumnindex
table.getColumns().insertClone(3,table.getColumns().get_Item(1), false);
// Sparar presentationen till disk
pres.save("table_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Ta bort en rad eller kolumn från en tabell
- Skapa en instans av klassen Presentation och ladda presentationen,
- Hämta en bilds referens via dess index.
- Definiera en array av
columnWidth. - Definiera en array av
rowHeight. - Lägg till ett ITable‑objekt på bilden via metoden addTable.
- Ta bort tabellraden.
- Ta bort tabellkolumnen.
- Spara den ändrade presentationen.
Den här Java‑koden visar hur du tar bort en rad eller kolumn från en tabell:
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();
}
Ange textformatering på radnivå för tabellen
- Skapa en instans av klassen Presentation och ladda presentationen,
- Hämta en bilds referens via dess index.
- Hämta det relevanta ITable‑objektet från bilden.
- Ställ in de första radens cellers setFontHeight(float value).
- Ställ in de första radens cellers setAlignment(int value) och setMarginRight(float value).
- Ställ in de andra radens cellers setTextVerticalType(byte value).
- Spara den ändrade presentationen.
Den här Java‑koden demonstrerar operationen.
// Skapar en instans av Presentation-klassen
Presentation pres = new Presentation();
try {
// Anta att den första formen på den första bilden är en tabell
ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Anger teckenhöjd för cellerna i första raden
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
someTable.getRows().get_Item(0).setTextFormat(portionFormat);
// Anger textjustering och högermarginal för cellerna i första raden
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getRows().get_Item(0).setTextFormat(paragraphFormat);
// Anger vertikal texttyp för cellerna i andra raden
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
someTable.getRows().get_Item(1).setTextFormat(textFrameFormat);
// Sparar presentationen till disk
pres.save("result.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Ange textformatering på kolumnnivå för tabellen
- Skapa en instans av klassen Presentation och ladda presentationen,
- Hämta en bilds referens via dess index.
- Hämta det relevanta ITable‑objektet från bilden.
- Ställ in de första kolumnens cellers setFontHeight(float value).
- Ställ in de första kolumnens cellers setAlignment(int value) och setMarginRight(float value).
- Ställ in de andra kolumnens cellers setTextVerticalType(byte value).
- Spara den ändrade presentationen.
Den här Java‑koden demonstrerar operationen:
// Skapar en instans av Presentation-klassen
Presentation pres = new Presentation();
try {
// Anta att den första formen på den första bilden är en tabell
ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0)];
// Anger teckenhöjd för cellerna i första kolumnen
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
someTable.getColumns().get_Item(0).setTextFormat(portionFormat);
// Anger textjustering och högermarginal för cellerna i första kolumnen i ett anrop
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getColumns().get_Item(0).setTextFormat(paragraphFormat);
// Anger vertikal texttyp för cellerna i andra kolumnen
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();
}
Hämta stilegenskaper för tabellen
Aspose.Slides låter dig hämta stilegenskaperna för en tabell så att du kan använda dessa detaljer för en annan tabell eller någon annanstans. Den här Java‑koden visar hur du får stilegenskaperna från en förinställd tabellstil:
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); // ändra standardstilens förinställda tema
pres.save("table.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Vanliga frågor
Kan jag applicera PowerPoint‑teman/-stilar på en tabell som redan är skapad?
Ja. Tabellen ärver bild‑/layout‑/master‑temat, och du kan fortfarande åsidosätta fyllningar, ramar och textfärger ovanpå det temat.
Kan jag sortera tabellrader som i Excel?
Nej, Aspose.Slides‑tabeller har ingen inbyggd sortering eller filter. Sortera dina data i minnet först, och fyll sedan på tabellraderna i den ordningen.
Kan jag ha bandade (randiga) kolumner samtidigt som jag behåller egna färger på specifika celler?
Ja. Aktivera bandade kolumner, och åsidosätt sedan specifika celler med lokal formatering; cellnivåformatering har företräde framför tabellstilen.