Beheer presentatietabellen in JavaScript
Introductie
Een tabel in PowerPoint is een efficiënte manier om informatie weer te geven en te presenteren. De informatie in een raster van cellen (geordend in rijen en kolommen) is eenvoudig en makkelijk te begrijpen.
Aspose.Slides biedt de Table klasse, Cell klasse en andere typen om u in staat te stellen tabellen te maken, bij te werken en te beheren in allerlei presentaties.
Tabel maken vanaf nul
- Maak een instantie van de Presentation klasse.
- Haal een verwijzing naar de dia op via de index.
- Definieer een array van
columnWidth. - Definieer een array van
rowHeight. - Voeg een Table object toe aan de dia via de addTable methode.
- Iterate door elke Cell om opmaak toe te passen op de boven-, onder-, rechter- en linkerrand.
- Voeg de eerste twee cellen van de eerste rij van de tabel samen.
- Benader een Cell’s TextFrame.
- Voeg tekst toe aan het TextFrame.
- Sla de gewijzigde presentatie op.
Deze JavaScript‑code laat zien hoe u een tabel in een presentatie maakt:
// Instantieert een Presentation-klasse die een PPTX-bestand vertegenwoordigt
var pres = new aspose.slides.Presentation();
try {
// Benadert de eerste dia
var sld = pres.getSlides().get_Item(0);
// Definieert kolommen met breedtes en rijen met hoogtes
var dblCols = java.newArray("double", [50, 50, 50]);
var dblRows = java.newArray("double", [50, 30, 30, 30, 30]);
// Voegt een tabelvorm toe aan de dia
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Stelt het randformaat in voor elke cel
for (var row = 0; row < tbl.getRows().size(); row++) {
for (var cell = 0; cell < tbl.getRows().get_Item(row).size(); cell++) {
var cellFormat = tbl.getRows().get_Item(row).get_Item(cell).getCellFormat();
cellFormat.getBorderTop().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cellFormat.getBorderTop().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cellFormat.getBorderTop().setWidth(5);
cellFormat.getBorderBottom().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cellFormat.getBorderBottom().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cellFormat.getBorderBottom().setWidth(5);
cellFormat.getBorderLeft().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cellFormat.getBorderLeft().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cellFormat.getBorderLeft().setWidth(5);
cellFormat.getBorderRight().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
cellFormat.getBorderRight().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "RED"));
cellFormat.getBorderRight().setWidth(5);
}
}
// Voegt cellen 1 en 2 van rij 1 samen
tbl.mergeCells(tbl.getRows().get_Item(0).get_Item(0), tbl.getRows().get_Item(1).get_Item(1), false);
// Voegt tekst toe aan de samengevoegde cel
tbl.getRows().get_Item(0).get_Item(0).getTextFrame().setText("Merged Cells");
// Slaat de presentatie op naar de schijf
pres.save("table.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Nummering in standaardtabel
In een standaardtabel is de nummering van cellen eenvoudig en nulgebaseerd. De eerste cel in een tabel heeft de index 0,0 (kolom 0, rij 0).
Bijvoorbeeld, de cellen in een tabel met 4 kolommen en 4 rijen worden als volgt genummerd:
| (0, 0) | (1, 0) | (2, 0) | (3, 0) |
|---|---|---|---|
| (0, 1) | (1, 1) | (2, 1) | (3, 1) |
| (0, 2) | (1, 2) | (2, 2) | (3, 2) |
| (0, 3) | (1, 3) | (2, 3) | (3, 3) |
Deze JavaScript‑code laat zien hoe u de nummering voor cellen in een tabel specificeert:
// Instantieert een Presentation-klasse die een PPTX-bestand vertegenwoordigt
var pres = new aspose.slides.Presentation();
try {
// Benadert de eerste dia
var sld = pres.getSlides().get_Item(0);
// Definieert kolommen met breedtes en rijen met hoogtes
var dblCols = java.newArray("double", [70, 70, 70, 70]);
var dblRows = java.newArray("double", [70, 70, 70, 70]);
// Voegt een tabelvorm toe aan de dia
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Stelt het randformaat in voor elke cel
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);
}
}
// Slaat de presentatie op naar de schijf
pres.save("StandardTables_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Bestaande tabel benaderen
-
Maak een instantie van de Presentation klasse.
-
Haal een verwijzing naar de dia die de tabel bevat via de index.
-
Maak een Table object aan en zet het op null.
-
Iterate door alle Shape objecten totdat de tabel is gevonden.
Als u vermoedt dat de dia waarmee u werkt één tabel bevat, kunt u eenvoudig alle vormen die de dia bevat controleren. Wanneer een vorm wordt herkend als een tabel, kunt u deze casten naar een Table object. Maar als de dia verschillende tabellen bevat, kunt u beter zoeken naar de gewenste tabel via de setAlternativeText(String value).
-
Gebruik het Table object om met de tabel te werken. In het onderstaande voorbeeld hebben we een nieuwe rij aan de tabel toegevoegd.
-
Sla de gewijzigde presentatie op.
Deze JavaScript‑code laat zien hoe u een bestaande tabel benadert en ermee werkt:
// Instantieert de Presentation-klasse die een PPTX-bestand vertegenwoordigt
var pres = new aspose.slides.Presentation("UpdateExistingTable.pptx");
try {
// Benadert de eerste dia
var sld = pres.getSlides().get_Item(0);
// Initialiseert null TableEx
var tbl = null;
// Itereert door de vormen en stelt een verwijzing in naar de gevonden tabel
for (let i = 0; i < sld.getShapes().size(); i++) {
let shp = sld.getShapes().get_Item(i);
if (java.instanceOf(shp, "com.aspose.slides.ITable")) {
tbl = shp;
// Stelt de tekst in voor de eerste kolom van de tweede rij
tbl.get_Item(0, 1).getTextFrame().setText("New");
}
}
// Slaat de gewijzigde presentatie op naar de schijf
pres.save("table1_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tekst uitlijnen in tabel
- Maak een instantie van de Presentation klasse.
- Haal een verwijzing naar de dia op via de index.
- Voeg een Table object toe aan de dia.
- Benader een TextFrame object uit de tabel.
- Benader de TextFrame Paragraph.
- Lijn de tekst verticaal uit.
- Sla de gewijzigde presentatie op.
Deze JavaScript‑code laat zien hoe u de tekst in een tabel uitlijnt:
// Maakt een instantie van de Presentation-klasse
var pres = new aspose.slides.Presentation();
try {
// Haalt de eerste dia op
var slide = pres.getSlides().get_Item(0);
// Definieert kolommen met breedtes en rijen met hoogtes
var dblCols = java.newArray("double", [120, 120, 120, 120]);
var dblRows = java.newArray("double", [100, 100, 100, 100]);
// Voegt de tabelvorm toe aan de dia
var tbl = slide.getShapes().addTable(100, 50, dblCols, dblRows);
tbl.get_Item(1, 0).getTextFrame().setText("10");
tbl.get_Item(2, 0).getTextFrame().setText("20");
tbl.get_Item(3, 0).getTextFrame().setText("30");
// Benadert het tekstframe
var txtFrame = tbl.get_Item(0, 0).getTextFrame();
// Maakt het Paragraph-object voor het tekstframe
var paragraph = txtFrame.getParagraphs().get_Item(0);
// Maakt het Portion-object voor de alinea
var portion = paragraph.getPortions().get_Item(0);
portion.setText("Text here");
portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Lijnt de tekst verticaal uit
var cell = tbl.get_Item(0, 0);
cell.setTextAnchorType(aspose.slides.TextAnchorType.Center);
cell.setTextVerticalType(aspose.slides.TextVerticalType.Vertical270);
// Slaat de presentatie op naar de schijf
pres.save("Vertical_Align_Text_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tekstopmaak instellen op tabelniveau
- Maak een instantie van de Presentation klasse.
- Haal een verwijzing naar de dia op via de index.
- Benader een Table object van de Slide.
- Stel de setFontHeight(float value) in voor de tekst.
- Stel de setAlignment(int value) en setMarginRight(float value) in.
- Stel de setTextVerticalType(byte value) in.
- Sla de gewijzigde presentatie op.
Deze JavaScript‑code laat zien hoe u uw gewenste opmaakopties toepast op de tekst in een tabel:
// Maakt een instantie van de Presentation-klasse
var pres = new aspose.slides.Presentation("simpletable.pptx");
try {
// Laten we aannemen dat de eerste vorm op de eerste dia een tabel is
var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Stelt de letterhoogte van de tabelcellen in
var portionFormat = new aspose.slides.PortionFormat();
portionFormat.setFontHeight(25);
someTable.setTextFormat(portionFormat);
// Stelt de tekstuitlijning en rechter marge van de tabelcellen in één oproep in
var paragraphFormat = new aspose.slides.ParagraphFormat();
paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.setTextFormat(paragraphFormat);
// Stelt het verticale type van de tabelceltekst in
var textFrameFormat = new aspose.slides.TextFrameFormat();
textFrameFormat.setTextVerticalType(aspose.slides.TextVerticalType.Vertical);
someTable.setTextFormat(textFrameFormat);
pres.save("result.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tabelstijleigenschappen ophalen
Aspose.Slides stelt u in staat de stijleigenschappen van een tabel op te halen zodat u die details voor een andere tabel of elders kunt gebruiken. Deze JavaScript‑code laat zien hoe u de stijleigenschappen van een vooraf ingestelde tabelstijl verkrijgt:
var pres = new aspose.slides.Presentation();
try {
var table = pres.getSlides().get_Item(0).getShapes().addTable(10, 10, java.newArray("double", [100, 150]), java.newArray("double", [5, 5, 5]));
table.setStylePreset(aspose.slides.TableStylePreset.DarkStyle1);// wijzig het standaard stijl‑preset thema
pres.save("table.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Beeldverhouding van tabel vergrendelen
De beeldverhouding van een geometrische vorm is de verhouding van de afmetingen in verschillende dimensies. Aspose.Slides biedt de setAspectRatioLocked eigenschap om de beeldverhouding voor tabellen en andere vormen te vergrendelen.
Deze JavaScript‑code laat zien hoe u de beeldverhouding voor een tabel vergrendelt:
var pres = new aspose.slides.Presentation("pres.pptx");
try {
var table = pres.getSlides().get_Item(0).getShapes().get_Item(0);
console.log("Lock aspect ratio set: " + table.getGraphicalObjectLock().getAspectRatioLocked());
table.getGraphicalObjectLock().setAspectRatioLocked(!table.getGraphicalObjectLock().getAspectRatioLocked());// invert
console.log("Lock aspect ratio set: " + table.getGraphicalObjectLock().getAspectRatioLocked());
pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Kan ik de lezerichting van rechts naar links (RTL) inschakelen voor een hele tabel en de tekst in de cellen?
Ja. De tabel biedt een setRightToLeft methode, en alinea’s hebben ParagraphFormat.setRightToLeft. Het gebruik van beide zorgt voor de juiste RTL‑volgorde en weergave binnen cellen.
Hoe kan ik voorkomen dat gebruikers een tabel in het uiteindelijke bestand verplaatsen of van grootte wijzigen?
Gebruik vormvergrendelingen om verplaatsen, grootte wijzigen, selectie, enz. uit te schakelen. Deze vergrendelingen gelden ook voor tabellen.
Wordt het invoegen van een afbeelding in een cel als achtergrond ondersteund?
Ja. U kunt een picture fill voor een cel instellen; de afbeelding zal het celgebied bedekken volgens de gekozen modus (uitrekken of betegelen).