Verwalten von Zeilen und Spalten in PowerPoint-Tabellen unter Android
Um Ihnen zu ermöglichen, Zeilen und Spalten einer Tabelle in einer PowerPoint‑Präsentation zu verwalten, stellt Aspose.Slides die Klasse Table , das Interface ITable und viele weitere Typen bereit.
Erste Zeile als Header festlegen
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation.
- Holen Sie sich eine Referenz auf eine Folie über ihren Index.
- Erzeugen Sie ein ITable Objekt und setzen Sie es auf null.
- Durchlaufen Sie alle IShape Objekte, um die relevante Tabelle zu finden.
- Setzen Sie die erste Zeile der Tabelle als Header.
// Instanziert die Presentation-Klasse
Presentation pres = new Presentation("table.pptx");
try {
// Greift auf die erste Folie zu
ISlide sld = pres.getSlides().get_Item(0);
// Initialisiert das null TableEx
ITable tbl = null;
// Durchläuft die Shapes und setzt eine Referenz auf die Tabelle
for (IShape shp : sld.getShapes())
{
if (shp instanceof ITable)
{
tbl = (ITable)shp;
//Setzt die erste Zeile einer Tabelle als Header
tbl.setFirstRow(true);
}
}
// Speichert die Präsentation auf dem Datenträger
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Kopieren einer Tabellenzeile oder -spalte
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation,
- Holen Sie sich eine Referenz auf eine Folie über ihren Index.
- Definieren Sie ein Array von
columnWidth. - Definieren Sie ein Array von
rowHeight. - Fügen Sie der Folie ein ITable Objekt über die Methode addTable hinzu.
- Kopieren Sie die Tabellenzeile.
- Kopieren Sie die Tabellenspalte.
- Speichern Sie die geänderte Präsentation.
// Instanziert die Presentation-Klasse
Presentation pres = new Presentation("Test.pptx");
try {
// Greift auf die erste Folie zu
ISlide sld = pres.getSlides().get_Item(0);
// Definiert Spalten mit Breiten und Zeilen mit Höhen
double[] dblCols = { 50, 50, 50 };
double[] dblRows = { 50, 30, 30, 30, 30 };
// Fügt der Folie ein Tabellen-Shape hinzu
ITable table = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Fügt der Zeile 1, Zelle 1 Text hinzu
table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1");
// Fügt der Zeile 1, Zelle 2 Text hinzu
table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2");
// Klont Zeile 1 am Ende der Tabelle
table.getRows().addClone(table.getRows().get_Item(0), false);
// Fügt der Zeile 2, Zelle 1 Text hinzu
table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1");
// Fügt der Zeile 2, Zelle 2 Text hinzu
table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2");
// Klont Zeile 2 als vierte Zeile der Tabelle
table.getRows().insertClone(3, table.getRows().get_Item(1), false);
// Klont die erste Spalte am Ende
table.getColumns().addClone(table.getColumns().get_Item(0), false);
// Klont die zweite Spalte am Index der vierten Spalte
table.getColumns().insertClone(3,table.getColumns().get_Item(1), false);
// Speichert die Präsentation auf dem Datenträger
pres.save("table_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Entfernen einer Zeile oder Spalte aus einer Tabelle
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation,
- Holen Sie sich eine Referenz auf eine Folie über ihren Index.
- Definieren Sie ein Array von
columnWidth. - Definieren Sie ein Array von
rowHeight. - Fügen Sie der Folie ein ITable Objekt über die Methode addTable hinzu.
- Entfernen Sie die Tabellenzeile.
- Entfernen Sie die Tabellenspalte.
- Speichern Sie die geänderte Präsentation.
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();
}
Textformatierung auf Zeilenebene der Tabelle festlegen
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation,
- Holen Sie sich eine Referenz auf eine Folie über ihren Index.
- Greifen Sie vom Folienobjekt auf das relevante ITable Objekt zu.
- Setzen Sie für die Zellen der ersten Zeile die setFontHeight(float value).
- Setzen Sie für die Zellen der ersten Zeile setAlignment(int value) und setMarginRight(float value).
- Setzen Sie für die Zellen der zweiten Zeile setTextVerticalType(byte value).
- Speichern Sie die geänderte Präsentation.
// Erstellt eine Instanz der Presentation-Klasse
Presentation pres = new Presentation();
try {
// Nehmen wir an, dass das erste Shape auf der ersten Folie eine Tabelle ist
ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Setzt die Schriftgröße der Zellen der ersten Zeile
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
someTable.getRows().get_Item(0).setTextFormat(portionFormat);
// Setzt die Textausrichtung und den rechten Rand der Zellen der ersten Zeile
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getRows().get_Item(0).setTextFormat(paragraphFormat);
// Setzt die vertikale Textausrichtung der Zellen der zweiten Zeile
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
someTable.getRows().get_Item(1).setTextFormat(textFrameFormat);
// Speichert die Präsentation auf dem Datenträger
pres.save("result.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Textformatierung auf Spaltenebene der Tabelle festlegen
- Erstellen Sie eine Instanz der Klasse Presentation und laden Sie die Präsentation,
- Holen Sie sich eine Referenz auf eine Folie über ihren Index.
- Greifen Sie vom Folienobjekt auf das relevante ITable Objekt zu.
- Setzen Sie für die Zellen der ersten Spalte die setFontHeight(float value).
- Setzen Sie für die Zellen der ersten Spalte setAlignment(int value) und setMarginRight(float value).
- Setzen Sie für die Zellen der zweiten Spalte setTextVerticalType(byte value).
- Speichern Sie die geänderte Präsentation.
// Erstelle eine Instanz der Presentation-Klasse
Presentation pres = new Presentation();
try {
// Nehmen wir an, dass das erste Shape auf der ersten Folie eine Tabelle ist
ITable someTable = (ITable)pres.getSlides().get_Item(0).getShapes().get_Item(0)];
// Setzt die Schrifthöhe der Zellen der ersten Spalte
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
someTable.getColumns().get_Item(0).setTextFormat(portionFormat);
// Setzt die Textausrichtung und den rechten Rand der Zellen der ersten Spalte in einem Aufruf
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getColumns().get_Item(0).setTextFormat(paragraphFormat);
// Setzt den vertikalen Texttyp der Zellen der zweiten Spalte
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();
}
Tabellenstil‑Eigenschaften abrufen
Aspose.Slides ermöglicht das Abrufen der Stil‑Eigenschaften einer Tabelle, sodass Sie diese Details für eine andere Tabelle oder an anderer Stelle verwenden können. Dieser Java‑Code zeigt, wie Sie die Stil‑Eigenschaften aus einem vordefinierten Tabellenstil erhalten:
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); // ändert das standardmäßige Stilvorlagen-Thema
pres.save("table.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Kann ich PowerPoint‑Designs/‑Stile auf eine bereits erstellte Tabelle anwenden?
Ja. Die Tabelle erbt das Design der Folie/ des Layouts/ des Masters und Sie können dennoch Füllungen, Rahmen und Textfarben über diesem Design überschreiben.
Kann ich Tabellenzeilen wie in Excel sortieren?
Nein, Tabellen von Aspose.Slides verfügen nicht über integrierte Sortier‑ oder Filterfunktionen. Sortieren Sie Ihre Daten zuerst im Speicher und füllen Sie anschließend die Tabellenzeilen in dieser Reihenfolge erneut.
Kann ich banded (gestreifte) Spalten haben und gleichzeitig benutzerdefinierte Farben für bestimmte Zellen beibehalten?
Ja. Aktivieren Sie banded‑Spalten und überschreiben Sie dann bestimmte Zellen mit lokaler Formatierung; die Zell‑Formatierung hat Vorrang vor dem Tabellenstil.