จัดการแถวและคอลัมน์ในตาราง PowerPoint ด้วย JavaScript
บทนำ
เพื่อให้คุณสามารถจัดการแถวและคอลัมน์ของตารางในงานนำเสนอ PowerPoint, Aspose.Slides มีคลาส Table และประเภทอื่น ๆ
ตั้งค่าแถวแรกเป็นส่วนหัว
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอ
- ดึงอ้างอิงสไลด์ผ่านดัชนีของมัน
- สร้างอ็อบเจกต์ Table และกำหนดค่าเป็น null
- วนลูปผ่านอ็อบเจกต์ Shape ทั้งหมดเพื่อค้นหาตารางที่เกี่ยวข้อง
- ตั้งค่าแถวแรกของตารางเป็นส่วนหัวของมัน
โค้ด JavaScript นี้แสดงวิธีตั้งค่าแถวแรกของตารางเป็นส่วนหัว:
// สร้างอินสแตนซ์ของคลาส Presentation
var pres = new aspose.slides.Presentation("table.pptx");
try {
// เข้าถึงสไลด์แรก
var sld = pres.getSlides().get_Item(0);
// กำหนดค่าเริ่มต้นให้กับ TableEx ที่เป็น null
var tbl = null;
// วนลูปผ่านรูปร่างทั้งหมดและตั้งค่าอ้างอิงไปยังตาราง
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;
// ตั้งค่าแถวแรกของตารางเป็นส่วนหัว
tbl.setFirstRow(true);
}
}
// บันทึกงานนำเสนอไปยังดิสก์
pres.save("pres.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
คัดลอกแถวหรือคอลัมน์ของตาราง
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอ,
- ดึงอ้างอิงสไลด์ผ่านดัชนีของมัน
- กำหนดอาร์เรย์ของ
columnWidth - กำหนดอาร์เรย์ของ
rowHeight - เพิ่มอ็อบเจกต์ Table ไปยังสไลด์โดยใช้เมธอด addTable
- คัดลอกแถวของตาราง
- คัดลอกคอลัมน์ของตาราง
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด JavaScript นี้แสดงวิธีคัดลอกแถวหรือคอลัมน์ของตาราง PowerPoint:
// สร้างอินสแตนซ์ของคลาส Presentation
var pres = new aspose.slides.Presentation("Test.pptx");
try {
// เข้าถึงสไลด์แรก
var sld = pres.getSlides().get_Item(0);
// กำหนดคอลัมน์ด้วยความกว้างและแถวด้วยความสูง
var dblCols = java.newArray("double", [50, 50, 50]);
var dblRows = java.newArray("double", [50, 30, 30, 30, 30]);
// เพิ่มรูปร่างตารางลงในสไลด์
var table = sld.getShapes().addTable(100, 50, dblCols, dblRows);
// เพิ่มข้อความบางส่วนลงในแถว 1 เซลล์ 1
table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1");
// เพิ่มข้อความบางส่วนลงในแถว 1 เซลล์ 2
table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2");
// ทำการคัดลอกแถว 1 ไปยังส่วนท้ายของตาราง
table.getRows().addClone(table.getRows().get_Item(0), false);
// เพิ่มข้อความบางส่วนลงในแถว 2 เซลล์ 1
table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1");
// เพิ่มข้อความบางส่วนลงในแถว 2 เซลล์ 2
table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2");
// คัดลอกแถว 2 เป็นแถวที่ 4 ของตาราง
table.getRows().insertClone(3, table.getRows().get_Item(1), false);
// คัดลอกคอลัมน์แรกไปยังส่วนท้าย
table.getColumns().addClone(table.getColumns().get_Item(0), false);
// คัดลอกคอลัมน์ที่ 2 ไปยังตำแหน่งคอลัมน์ที่ 4
table.getColumns().insertClone(3, table.getColumns().get_Item(1), false);
// บันทึกงานนำเสนอไปยังดิสก์
pres.save("table_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
ลบแถวหรือคอลัมน์จากตาราง
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอ,
- ดึงอ้างอิงสไลด์ผ่านดัชนีของมัน
- กำหนดอาร์เรย์ของ
columnWidth - กำหนดอาร์เรย์ของ
rowHeight - เพิ่มอ็อบเจกต์ Table ไปยังสไลด์โดยใช้เมธอด addTable
- ลบแถวของตาราง
- ลบคอลัมน์ของตาราง
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด JavaScript นี้แสดงวิธีลบแถวหรือคอลัมน์จากตาราง:
var pres = new aspose.slides.Presentation();
try {
var slide = pres.getSlides().get_Item(0);
var colWidth = java.newArray("double", [100, 50, 30]);
var rowHeight = java.newArray("double", [30, 50, 30]);
var table = slide.getShapes().addTable(100, 100, colWidth, rowHeight);
table.getRows().removeAt(1, false);
table.getColumns().removeAt(1, false);
pres.save("TestTable_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
ตั้งค่าการจัดรูปแบบข้อความในระดับแถวของตาราง
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอ,
- ดึงอ้างอิงสไลด์ผ่านดัชนีของมัน
- เข้าถึงอ็อบเจกต์ Table ที่เกี่ยวข้องจากสไลด์
- ตั้งค่า setFontHeight(float value) ของเซลล์ในแถวแรก
- ตั้งค่า setAlignment(int value) และ setMarginRight(float value) ของเซลล์ในแถวแรก
- ตั้งค่า setTextVerticalType(byte value) ของเซลล์ในแถวที่สอง
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด JavaScript นี้แสดงการดำเนินการ
// สร้างอินสแตนซ์ของคลาส Presentation
var pres = new aspose.slides.Presentation();
try {
// สมมติว่ารูปร่างแรกบนสไลด์แรกเป็นตาราง
var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// ตั้งความสูงฟอนต์ของเซลล์ในแถวแรก
var portionFormat = new aspose.slides.PortionFormat();
portionFormat.setFontHeight(25);
someTable.getRows().get_Item(0).setTextFormat(portionFormat);
// ตั้งการจัดแนวข้อความและระยะขอบขวาของเซลล์ในแถวแรก
var paragraphFormat = new aspose.slides.ParagraphFormat();
paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getRows().get_Item(0).setTextFormat(paragraphFormat);
// ตั้งประเภทการวางแนวข้อความแนวตั้งของเซลล์ในแถวที่สอง
var textFrameFormat = new aspose.slides.TextFrameFormat();
textFrameFormat.setTextVerticalType(aspose.slides.TextVerticalType.Vertical);
someTable.getRows().get_Item(1).setTextFormat(textFrameFormat);
// บันทึกงานนำเสนอไปยังดิสก์
pres.save("result.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
ตั้งค่าการจัดรูปแบบข้อความในระดับคอลัมน์ของตาราง
- สร้างอินสแตนซ์ของคลาส Presentation และโหลดงานนำเสนอ,
- ดึงอ้างอิงสไลด์ผ่านดัชนีของมัน
- เข้าถึงอ็อบเจกต์ Table ที่เกี่ยวข้องจากสไลด์
- ตั้งค่า setFontHeight(float value) ของเซลล์ในคอลัมน์แรก
- ตั้งค่า setAlignment(int value) และ setMarginRight(float value) ของเซลล์ในคอลัมน์แรก
- ตั้งค่า setTextVerticalType(byte value) ของเซลล์ในคอลัมน์ที่สอง
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด JavaScript นี้แสดงการดำเนินการ:
// สร้างอินสแตนซ์ของคลาส Presentation
var pres = new aspose.slides.Presentation();
try {
// สมมติว่ารูปร่างแรกบนสไลด์แรกเป็นตาราง
var someTable = pres.getSlides().get_Item(0).getShapes().get_Item(0);
// ตั้งความสูงฟอนต์ของเซลล์ในคอลัมน์แรก
var portionFormat = new aspose.slides.PortionFormat();
portionFormat.setFontHeight(25);
someTable.getColumns().get_Item(0).setTextFormat(portionFormat);
// ตั้งการจัดแนวข้อความและระยะขอบขวาของเซลล์ในคอลัมน์แรกในคำสั่งเดียว
var paragraphFormat = new aspose.slides.ParagraphFormat();
paragraphFormat.setAlignment(aspose.slides.TextAlignment.Right);
paragraphFormat.setMarginRight(20);
someTable.getColumns().get_Item(0).setTextFormat(paragraphFormat);
// ตั้งประเภทการวางแนวข้อความแนวตั้งของเซลล์ในคอลัมน์ที่สอง
var textFrameFormat = new aspose.slides.TextFrameFormat();
textFrameFormat.setTextVerticalType(aspose.slides.TextVerticalType.Vertical);
someTable.getColumns().get_Item(1).setTextFormat(textFrameFormat);
pres.save("result.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
รับคุณสมบัติรูปแบบของตาราง
Aspose.Slides ให้คุณดึงคุณสมบัติรูปแบบของตารางเพื่อที่คุณจะได้ใช้รายละเอียดเหล่านั้นกับตารางอื่นหรือที่อื่น โค้ด JavaScript นี้แสดงวิธีดึงคุณสมบัติรูปแบบจากสไตล์ตารางที่กำหนดไว้ล่วงหน้า:
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);// เปลี่ยนธีมสไตล์พรีเซ็ตเริ่มต้น
pres.save("table.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Can I apply PowerPoint themes/styles to a table that’s already created?
ได้ ตารางสืบทอดธีมของสไลด์/เลย์เอาต์/มาสเตอร์ และคุณยังสามารถเขียนทับสีเติม, ขอบ, และสีข้อความเหนือธีมนั้นได้
Can I sort table rows like in Excel?
ไม่ได้ ตารางของ Aspose.Slides ไม่มีการจัดเรียงหรือการกรองในตัว จัดเรียงข้อมูลของคุณในหน่วยความจำก่อน แล้วจึงเติมแถวของตารางใหม่ตามลำดับนั้น
Can I have banded (striped) columns while keeping custom colors on specific cells?
ได้ เปิดคอลัมน์แบบเป็นแถบ แล้วเขียนทับเซลล์เฉพาะด้วยการจัดรูปแบบท้องถิ่น; การจัดรูปแบบในระดับเซลล์จะมีอำนาจเหนือสไตล์ของตาราง