JavaScript ile Sunum Tablolarını Yönet
Giriş
PowerPoint’te bir tablo, bilgiyi görüntüleme ve sunma konusunda verimli bir yoldur. Hücrelerden oluşan bir ızgaradaki (satır ve sütunlara düzenlenmiş) bilgi, açık ve anlaşılması kolaydır.
Aspose.Slides, Table sınıfını, Cell sınıfını ve diğer türleri sağlar; böylece çeşitli sunumlarda tabloları oluşturabilir, güncelleyebilir ve yönetebilirsiniz.
Sıfırdan Tablo Oluşturma
- Presentation sınıfının bir örneğini oluşturun.
- Slaytın referansını indeks üzerinden alın.
columnWidthdizisini tanımlayın.rowHeightdizisini tanımlayın.- Slayta, addTable yöntemiyle bir Table nesnesi ekleyin.
- Her bir Cell üzerinden döngü yaparak üst, alt, sağ ve sol kenarlara biçimlendirme uygulayın.
- Tablonun ilk satırındaki ilk iki hücreyi birleştirin.
- Cell‘in TextFrame’ine erişin.
- TextFrame’e bazı metinler ekleyin.
- Değiştirilmiş sunumu kaydedin.
Bu JavaScript kodu, bir sunumda tablo oluşturma yolunu gösterir:
// PPTX dosyasını temsil eden bir Presentation sınıfını örnekler
var pres = new aspose.slides.Presentation();
try {
// İlk slayta erişir
var sld = pres.getSlides().get_Item(0);
// Sütunları genişlikleri ve satırları yükseklikleriyle tanımlar
var dblCols = java.newArray("double", [50, 50, 50]);
var dblRows = java.newArray("double", [50, 30, 30, 30, 30]);
// Slayta bir tablo şekli ekler
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Her hücre için kenarlık biçimini ayarlar
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);
}
}
// 1. satırın 1 ve 2. hücrelerini birleştirir
tbl.mergeCells(tbl.getRows().get_Item(0).get_Item(0), tbl.getRows().get_Item(1).get_Item(1), false);
// Birleştirilen hücreye metin ekler
tbl.getRows().get_Item(0).get_Item(0).getTextFrame().setText("Merged Cells");
// Sunumu diske kaydeder
pres.save("table.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Standart Tablo Numaralandırması
Standart bir tabloda, hücrelerin numaralandırması basit ve sıfır tabanlıdır. Bir tabloda ilk hücre 0,0 (sütun 0, satır 0) olarak indekslenir.
Örnek olarak, 4 sütun ve 4 satırdan oluşan bir tabloda hücreler şu şekilde numaralandırılır:
| (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) |
Bu JavaScript kodu, bir tablodaki hücrelerin numaralandırmasını nasıl belirteceğinizi gösterir:
// PPTX dosyasını temsil eden bir Presentation sınıfını örnekler
var pres = new aspose.slides.Presentation();
try {
// İlk slayta erişir
var sld = pres.getSlides().get_Item(0);
// Sütunları genişlikleri ve satırları yükseklikleriyle tanımlar
var dblCols = java.newArray("double", [70, 70, 70, 70]);
var dblRows = java.newArray("double", [70, 70, 70, 70]);
// Slayta bir tablo şekli ekler
var tbl = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// Her hücre için kenarlık biçimini ayarlar
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);
}
}
// Sunumu diske kaydeder
pres.save("StandardTables_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Mevcut Tabloya Erişim
-
Presentation sınıfının bir örneğini oluşturun.
-
Tabloyu içeren slayta indeks üzerinden bir referans alın.
-
Table nesnesi oluşturun ve null olarak ayarlayın.
-
Tablo bulunana kadar tüm Shape nesneleri üzerinde döngü yapın.
Eğer üzerinde çalıştığınız slaydın tek bir tablo içerdiğini düşünüyorsanız, içerdiği tüm şekilleri basitçe kontrol edebilirsiniz. Bir şekil tablo olarak tanımlandığında, onu bir Table nesnesi olarak tip dönüştürebilirsiniz. Ancak slayt birden fazla tablo içeriyorsa, ihtiyacınız olan tabloyu setAlternativeText(String value) yöntemiyle aramanız daha iyi olur.
-
Table nesnesini tabloyla çalışmak için kullanın. Aşağıdaki örnekte, tabloya yeni bir satır ekledik.
-
Değiştirilmiş sunumu kaydedin.
Bu JavaScript kodu, mevcut bir tabloya nasıl erişileceğini ve onunla nasıl çalışılacağını gösterir:
// PPTX dosyasını temsil eden Presentation sınıfını örnekler
var pres = new aspose.slides.Presentation("UpdateExistingTable.pptx");
try {
// İlk slayta erişir
var sld = pres.getSlides().get_Item(0);
// null TableEx'i başlatır
var tbl = null;
// Şekilleri döngüyle gezerek bulunan tabloya bir referans atar
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;
// İkinci satırın ilk sütunu için metni ayarlar
tbl.get_Item(0, 1).getTextFrame().setText("New");
}
}
// Değiştirilmiş sunumu diske kaydeder
pres.save("table1_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tablodaki Metni Hizalama
- Presentation sınıfının bir örneğini oluşturun.
- Slaytın referansını indeks üzerinden alın.
- Slayta bir Table nesnesi ekleyin.
- Tablodan bir TextFrame nesnesine erişin.
- TextFrame içindeki Paragraph’e erişin.
- Metni dikey olarak hizalayın.
- Değiştirilmiş sunumu kaydedin.
Bu JavaScript kodu, bir tablodaki metni nasıl hizalayacağınızı gösterir:
// Presentation sınıfının bir örneğini oluşturur
var pres = new aspose.slides.Presentation();
try {
// İlk slaytı alır
var slide = pres.getSlides().get_Item(0);
// Sütunları genişlikleri ve satırları yükseklikleriyle tanımlar
var dblCols = java.newArray("double", [120, 120, 120, 120]);
var dblRows = java.newArray("double", [100, 100, 100, 100]);
// Tablo şekli slayta eklenir
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");
// Metin çerçevesine erişir
var txtFrame = tbl.get_Item(0, 0).getTextFrame();
// Metin çerçevesi için Paragraph nesnesi oluşturur
var paragraph = txtFrame.getParagraphs().get_Item(0);
// Paragraf için Portion nesnesi oluşturur
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"));
// Metni dikey olarak hizalar
var cell = tbl.get_Item(0, 0);
cell.setTextAnchorType(aspose.slides.TextAnchorType.Center);
cell.setTextVerticalType(aspose.slides.TextVerticalType.Vertical270);
// Sunumu diske kaydeder
pres.save("Vertical_Align_Text_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tablo Düzeyinde Metin Biçimlendirmesini Ayarlama
- Presentation sınıfının bir örneğini oluşturun.
- Slaytın referansını indeks üzerinden alın.
- Slayttan bir Table nesnesine erişin.
- Metin için setFontHeight(float value) ayarlayın.
- setAlignment(int value) ve setMarginRight(float value) ayarlarını yapın.
- setTextVerticalType(byte value) ayarlayın.
- Değiştirilmiş sunumu kaydedin.
Bu JavaScript kodu, bir tablodaki metne tercih ettiğiniz biçimlendirme seçeneklerini nasıl uygulayacağınızı gösterir:
// Presentation sınıfının bir örneğini oluşturur
var pres = new aspose.slides.Presentation("simpletable.pptx");
try {
// İlk slayttaki ilk şeklin bir tablo olduğunu varsayalım
var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// Tablo hücrelerinin yazı tipi yüksekliğini ayarlar
var portionFormat = new aspose.slides.PortionFormat();
portionFormat.setFontHeight(25);
someTable.setTextFormat(portionFormat);
// Tablo hücrelerinin metin hizalamasını ve sağ kenar boşluğunu tek bir çağrıda ayarlar
var paragraphFormat = new aspose.slides.ParagraphFormat();
paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.setTextFormat(paragraphFormat);
// Tablo hücrelerinin metin dikey tipini ayarlar
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();
}
}
Tablo Stil Özelliklerini Almak
Aspose.Slides, bir tablonun stil özelliklerini almanıza olanak tanır; bu detayları başka bir tablo veya farklı bir yerde kullanabilirsiniz. Bu JavaScript kodu, bir tablo ön ayar stilinden stil özelliklerini nasıl alacağınızı gösterir:
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);// varsayılan stil ön ayar temasını değiştir
pres.save("table.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Tablonun En‑Boy Oranını Kilitleme
Geometrik bir şeklin en‑boy oranı, farklı boyutlardaki ölçülerin oranıdır. Aspose.Slides, tablolar ve diğer şekiller için en‑boy oranı kilitleme ayarını sağlayan setAspectRatioLocked özelliğini sunar.
Bu JavaScript kodu, bir tablonun en‑boy oranını nasıl kilitleyeceğinizi gösterir:
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();
}
}
SSS
Tüm tablo ve hücrelerindeki metin için sağdan sola (RTL) okuma yönünü etkinleştirebilir miyim?
Evet. Tablo, bir setRightToLeft metodunu sunar ve paragraflar ParagraphFormat.setRightToLeft metoduna sahiptir. İkisini birlikte kullanmak, hücre içindeki doğru RTL sırasını ve renderlemeyi sağlar.
Kullanıcıların final dosyada tabloyu hareket ettirmesini veya yeniden boyutlandırmasını nasıl engelleyebilirim?
Hareket, yeniden boyutlandırma, seçim vb. işlemleri devre dışı bırakmak için şekil kilitlerini kullanın. Bu kilitler tabloya da uygulanır.
Bir hücreye arka plan olarak resim eklemek destekleniyor mu?
Evet. Bir hücre için picture fill ayarlayabilirsiniz; seçilen moda göre (germe veya döşeme) görüntü hücre alanını kaplar.