Zellen verwalten
Zusammengeführte Tabellenzelle identifizieren
- Erstellen Sie eine Instanz der Presentation‑Klasse.
- Holen Sie die Tabelle von der ersten Folie.
- Iterieren Sie über die Zeilen und Spalten der Tabelle, um zusammengeführte Zellen zu finden.
- Geben Sie eine Meldung aus, wenn zusammengeführte Zellen gefunden werden.
Dieser JavaScript‑Code zeigt Ihnen, wie Sie zusammengeführte Tabellenzellen in einer Präsentation identifizieren:
var pres = new aspose.slides.Presentation("SomePresentationWithTable.pptx");
try {
var table = pres.getSlides().get_Item(0).getShapes().get_Item(0);// Annahme: Slide#0.Shape#0 ist eine Tabelle
for (var i = 0; i < table.getRows().size(); i++) {
for (var j = 0; j < table.getColumns().size(); j++) {
var currentCell = table.getRows().get_Item(i).get_Item(j);
if (currentCell.isMergedCell()) {
console.log(java.callStaticMethodSync("java.lang.String", "format", "Cell %d;%d is a part of merged cell with RowSpan=%d and ColSpan=%d starting from Cell %d;%d.", i, j, currentCell.getRowSpan(), currentCell.getColSpan(), currentCell.getFirstRowIndex(), currentCell.getFirstColumnIndex()));
}
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
Tabellenzellenrahmen entfernen
- Erstellen Sie eine Instanz der Presentation‑Klasse.
- Holen Sie sich eine Referenz auf eine Folie über ihren Index.
- Definieren Sie ein Array von Spalten mit Breite.
- Definieren Sie ein Array von Zeilen mit Höhe.
- Fügen Sie der Folie über die Methode addTable eine Tabelle hinzu.
- Iterieren Sie über jede Zelle, um die oberen, unteren, rechten und linken Ränder zu löschen.
- Speichern Sie die bearbeitete Präsentation als PPTX‑Datei.
Dieser JavaScript‑Code zeigt Ihnen, wie Sie die Rahmen von Tabellenzellen entfernen:
// Instanziert die Presentation‑Klasse, die eine PPTX‑Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var sld = pres.getSlides().get_Item(0);
// Definiert Spalten mit Breiten und Zeilen mit Höhen
var dblCols = java.newArray("double", [50, 50, 50, 50]);
var dblRows = java.newArray("double", [50, 30, 30, 30, 30]);
// Fügt der Folie ein Tabellenelement hinzu
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Setzt das Rahmenformat für jede Zelle
for (let i = 0; i < tbl.getRows().size(); i++) {
const row = tbl.getRows().get_Item(i);
for (let j = 0; j < row.size(); j++) {
const cell = row.get_Item(j);
cell.getCellFormat().getBorderTop().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
cell.getCellFormat().getBorderBottom().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
cell.getCellFormat().getBorderLeft().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
cell.getCellFormat().getBorderRight().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
}
}
// Schreibt die PPTX‑Datei auf die Festplatte
pres.save("table_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Nummerierung in zusammengeführten Zellen
Wenn wir 2 Paare von Zellen (1, 1) × (2, 1) und (1, 2) × (2, 2) zusammenführen, wird die resultierende Tabelle nummeriert. Dieser JavaScript‑Code demonstriert den Vorgang:
// Instanziert die Presentation-Klasse, die eine PPTX-Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var sld = pres.getSlides().get_Item(0);
// Definiert Spalten mit Breiten und Zeilen mit Höhen
var dblCols = java.newArray("double", [70, 70, 70, 70]);
var dblRows = java.newArray("double", [70, 70, 70, 70]);
// Fügt der Folie ein Tabellenelement hinzu
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Setzt das Rahmenformat für jede Zelle
for (let i = 0; i < tbl.getRows().size(); i++) {
const row = tbl.getRows().get_Item(i);
for (let j = 0; j < row.size(); j++) {
const cell = row.get_Item(j);
cell.getCellFormat().getBorderTop().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderTop().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderTop().setWidth(5);
cell.getCellFormat().getBorderBottom().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderBottom().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderBottom().setWidth(5);
cell.getCellFormat().getBorderLeft().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderLeft().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderLeft().setWidth(5);
cell.getCellFormat().getBorderRight().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderRight().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderRight().setWidth(5);
}
}
// Führt Zellen (1, 1) x (2, 1) zusammen
tbl.mergeCells(tbl.get_Item(1, 1), tbl.get_Item(2, 1), false);
// Führt Zellen (1, 2) x (2, 2) zusammen
tbl.mergeCells(tbl.get_Item(1, 2), tbl.get_Item(2, 2), false);
pres.save("MergeCells_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Wir führen danach die Zellen weiter zusammen, indem wir (1, 1) und (1, 2) zusammenführen. Das Ergebnis ist eine Tabelle mit einer großen zusammengeführten Zelle in der Mitte:
// Instanziert die Presentation‑Klasse, die eine PPTX‑Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var sld = pres.getSlides().get_Item(0);
// Definiert Spalten mit Breiten und Zeilen mit Höhen
var dblCols = java.newArray("double", [70, 70, 70, 70]);
var dblRows = java.newArray("double", [70, 70, 70, 70]);
// Fügt der Folie ein Tabellenelement hinzu
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Setzt das Rahmenformat für jede Zelle
for (let i = 0; i < tbl.getRows().size(); i++) {
const row = tbl.getRows().get_Item(i);
for (let j = 0; j < row.size(); j++) {
const cell = row.get_Item(j);
cell.getCellFormat().getBorderTop().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderTop().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderTop().setWidth(5);
cell.getCellFormat().getBorderBottom().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderBottom().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderBottom().setWidth(5);
cell.getCellFormat().getBorderLeft().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderLeft().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderLeft().setWidth(5);
cell.getCellFormat().getBorderRight().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderRight().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderRight().setWidth(5);
}
}
// Fügt Zellen (1, 1) x (2, 1) zusammen
tbl.mergeCells(tbl.get_Item(1, 1), tbl.get_Item(2, 1), false);
// Fügt Zellen (1, 2) x (2, 2) zusammen
tbl.mergeCells(tbl.get_Item(1, 2), tbl.get_Item(2, 2), false);
// Fügt Zellen (1, 1) x (1, 2) zusammen
tbl.mergeCells(tbl.get_Item(1, 1), tbl.get_Item(1, 2), true);
// Schreibt die PPTX‑Datei auf die Festplatte
pres.save("MergeCells_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Nummerierung in geteilten Zellen
Im vorherigen Beispiel wurde bei zusammengeführten Tabellenzellen das Nummerierungssystem in den anderen Zellen nicht verändert.
Dieses Mal nehmen wir eine reguläre Tabelle (eine Tabelle ohne zusammengeführte Zellen) und teilen dann Zelle (1,1), um eine spezielle Tabelle zu erhalten. Achten Sie auf die Nummerierung dieser Tabelle, die eventuell seltsam erscheint. Das ist jedoch die Art und Weise, wie Microsoft PowerPoint Tabellenzellen nummeriert und Aspose.Slides dasselbe tut.
Dieser JavaScript‑Code demonstriert den beschriebenen Vorgang:
// Instanziert die Presentation-Klasse, die eine PPTX-Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var sld = pres.getSlides().get_Item(0);
// Definiert Spalten mit Breiten und Zeilen mit Höhen
var dblCols = java.newArray("double", [70, 70, 70, 70]);
var dblRows = java.newArray("double", [70, 70, 70, 70]);
// Fügt der Folie ein Tabellenelement hinzu
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Setzt das Rahmenformat für jede Zelle
for (let i = 0; i < tbl.getRows().size(); i++) {
const row = tbl.getRows().get_Item(i);
for (let j = 0; j < row.size(); j++) {
const cell = row.get_Item(j);
cell.getCellFormat().getBorderTop().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderTop().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderTop().setWidth(5);
cell.getCellFormat().getBorderBottom().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderBottom().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderBottom().setWidth(5);
cell.getCellFormat().getBorderLeft().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderLeft().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderLeft().setWidth(5);
cell.getCellFormat().getBorderRight().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getBorderRight().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cell.getCellFormat().getBorderRight().setWidth(5);
}
}
// Fügt Zellen (1, 1) x (2, 1) zusammen
tbl.mergeCells(tbl.get_Item(1, 1), tbl.get_Item(2, 1), false);
// Fügt Zellen (1, 2) x (2, 2) zusammen
tbl.mergeCells(tbl.get_Item(1, 2), tbl.get_Item(2, 2), false);
// Teilt Zelle (1, 1)
tbl.get_Item(1, 1).splitByWidth(tbl.get_Item(2, 1).getWidth() / 2);
// Schreibt die PPTX-Datei auf die Festplatte
pres.save("SplitCells_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tabellenzellen‑Hintergrundfarbe ändern
Dieser JavaScript‑Code zeigt Ihnen, wie Sie die Hintergrundfarbe einer Tabellenzelle ändern:
var presentation = new aspose.slides.Presentation();
try {
var slide = presentation.getSlides().get_Item(0);
var dblCols = java.newArray("double", [150, 150, 150, 150]);
var dblRows = java.newArray("double", [50, 50, 50, 50, 50]);
// erstelle eine neue Tabelle
var table = slide.getShapes().addTable(50, 50, dblCols, dblRows);
// setze die Hintergrundfarbe für eine Zelle
var cell = table.get_Item(2, 3);
cell.getCellFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cell.getCellFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
presentation.save("cell_background_color.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
Bild in Tabellenzelle einfügen
- Erstellen Sie eine Instanz der Presentation‑Klasse.
- Holen Sie sich eine Referenz auf eine Folie über ihren Index.
- Definieren Sie ein Array von Spalten mit Breite.
- Definieren Sie ein Array von Zeilen mit Höhe.
- Fügen Sie der Folie über die Methode addTable eine Tabelle hinzu.
- Erstellen Sie ein
Images‑Objekt, um die Bilddatei zu halten. - Fügen Sie das
IImage‑Bild zumPPImage‑Objekt hinzu. - Setzen Sie das
FillFormatder Tabellenzelle aufPicture. - Fügen Sie das Bild zur ersten Zelle der Tabelle hinzu.
- Speichern Sie die bearbeitete Präsentation als PPTX‑Datei.
Dieser JavaScript‑Code zeigt Ihnen, wie Sie ein Bild in eine Tabellenzelle einfügen, wenn Sie eine Tabelle erstellen:
// Instanziert die Presentation-Klasse, die eine PPTX-Datei darstellt
var pres = new aspose.slides.Presentation();
try {
// Greift auf die erste Folie zu
var islide = pres.getSlides().get_Item(0);
// Definiert Spalten mit Breiten und Zeilen mit Höhen
var dblCols = java.newArray("double", [150, 150, 150, 150]);
var dblRows = java.newArray("double", [100, 100, 100, 100, 90]);
// Fügt ein Tabellenelement zur Folie hinzu
var tbl = islide.getShapes().addTable(50, 50, dblCols, dblRows);
// Erzeugt ein PPImage-Objekt aus der Bilddatei
var picture;
var image = aspose.slides.Images.fromFile("image.jpg");
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) {
image.dispose();
}
}
// Fügt das Bild zur ersten Tabellenzelle hinzu
var cellFormat = tbl.get_Item(0, 0).getCellFormat();
cellFormat.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));
cellFormat.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch);
cellFormat.getFillFormat().getPictureFillFormat().getPicture().setImage(picture);
// Speichert die PPTX-Datei auf dem Datenträger
pres.save("Image_In_TableCell_out.pptx", aspose.slides.SaveFormat.Pptx);
} catch (e) {console.log(e);
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Kann ich unterschiedliche Linienstärken und -stile für verschiedene Seiten einer einzelnen Zelle festlegen?
Ja. Die top/bottom/left/right‑Ränder besitzen separate Eigenschaften, sodass die Dicke und der Stil jeder Seite unterschiedlich sein können. Dies ergibt sich logisch aus der im Artikel gezeigten per‑Seite‑Rand‑Steuerung für eine Zelle.
Was passiert mit dem Bild, wenn ich die Spalten‑/Zeilengröße ändere, nachdem ich ein Bild als Hintergrund der Zelle festgelegt habe?
Das Verhalten hängt vom fill mode (stretch/tile) ab. Beim Dehnen passt sich das Bild der neuen Zelle an; beim Kacheln werden die Kacheln neu berechnet. Der Artikel erwähnt die Bildanzeigemodi in einer Zelle.
Kann ich einem gesamten Zelleninhalt einen Hyperlink zuweisen?
Hyperlinks werden auf Textebene (Portion) innerhalb des Textrahmens der Zelle oder auf Ebene der gesamten Tabelle/Form gesetzt. In der Praxis weisen Sie den Link einer Portion oder dem gesamten Text in der Zelle zu.
Kann ich innerhalb einer einzelnen Zelle unterschiedliche Schriftarten festlegen?
Ja. Der Textrahmen einer Zelle unterstützt portions (Runs) mit unabhängiger Formatierung – Schriftfamilie, Stil, Größe und Farbe.