จัดการแถวและคอลัมน์ในตาราง PowerPoint บน Android
บทนำ
Aspose.Slides for Android via Java ช่วยให้คุณจัดการโครงสร้างและการจัดรูปแบบตารางในงานนำเสนอ PowerPoint ผ่านคลาส Table และอินเทอร์เฟซ ITable คุณสามารถกำหนดแถวหัวเรื่อง, คัดลอกหรือเอาแถวและคอลัมน์ออก, และใช้การจัดรูปแบบข้อความกับแถวหรือคอลัมน์ทั้งหมดได้
บทความนี้อธิบายการดำเนินการเหล่านี้ด้วยตัวอย่าง Java นอกจากนี้ยังแสดงวิธีดึงสไตล์ที่ตั้งล่วงหน้าของตารางเพื่อให้คุณนำกลับมาใช้ใหม่ได้ ดัชนีแถวและคอลัมน์ของตารางเริ่มจากศูนย์
ควบคุมความสูงของแถว
ใช้ IRow.setMinimalHeight เพื่อตั้งความสูงขั้นต่ำของแถวเป็นจุด ซึ่งเป็นค่าล่างสุด ไม่ใช่ความสูงคงที่ IRow.getHeight จะคืนค่าความสูงจริง การเข้าถึงแถวทำได้ผ่าน ITable.getRows
ตัวอย่างโหลดไฟล์ row-height-input.pptx ซึ่งมีตารางเป็นรูปร่างแรกบนสไลด์แรก แถวแรกเริ่มที่ 70 จุด เซลล์ใช้ข้อความ Arial 18 จุด, มีการตัดบรรทัดอัตโนมัติและระยะขอบบนและล่าง 6 จุด; ข้อความยาวในคอลัมน์ที่สองตัดบรรทัดหลายบรรทัด ตัวอย่างเพิ่มค่าขั้นต่ำเป็น 100 จุด แล้วลดลงเหลือ 20 จุด พิมพ์ความสูงจริงหลังแต่ละครั้งและบันทึกผลลัพธ์ทั้งสอง
import com.aspose.slides.*;
Presentation presentation = new Presentation("row-height-input.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
ITable table = (ITable)slide.getShapes().get_Item(0);
IRow row = table.getRows().get_Item(0);
row.setMinimalHeight(100);
System.out.printf("Increased: minimum = %.1f, actual = %.1f pt%n", row.getMinimalHeight(), row.getHeight());
presentation.save("row-height-increased.pptx", SaveFormat.Pptx);
row.setMinimalHeight(20);
System.out.printf("Decreased: minimum = %.1f, actual = %.1f pt%n", row.getMinimalHeight(), row.getHeight());
presentation.save("row-height-decreased.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ด้วยงานนำเสนอที่ให้มา การเพิ่มค่าขั้นต่ำจะเพิ่มช่องว่างให้กับแถว การลดค่าขั้นต่ำจะลบช่องว่างนั้นออก แต่ความสูงจริงยังคงมากกว่า 20 จุด เนื่องจากข้อความและระยะขอบของเซลล์ต้องการพื้นที่มากกว่านั้น การลดค่าขั้นต่ำเพียงอย่างเดียวไม่สามารถบังคับให้แถวต่ำกว่าพื้นที่ที่เนื้อหาต้องการได้
หลายปัจจัยส่งผลต่อความสูงจริง:
- ข้อความและขนาดฟอนต์: ข้อความยาว, การขึ้นบรรทัดใหม่โดยสมัครใจ, หรือฟอนต์ที่ใหญ่กว่าอาจต้องการพื้นที่แนวตั้งเพิ่ม
- การตัดบรรทัดและความกว้างคอลัมน์: เมื่อเปิดการตัดบรรทัด, การลดความกว้างคอลัมน์ด้วย IColumn.setWidth จะทำให้เกิดบรรทัดเพิ่มขึ้น คอลัมน์กว้างขึ้นสามารถลดพื้นที่แนวตั้งที่ต้องการ
- ระยะขอบของเซลล์: ICell.setMarginTop และ ICell.setMarginBottom เพิ่มช่องว่างแนวตั้ง ICell.setMarginLeft และ ICell.setMarginRight ลดความกว้างที่ใช้สำหรับข้อความและอาจทำให้เกิดการตัดบรรทัดเพิ่มเติม
สำหรับตารางนี้ที่ไม่มีการผสานเซลล์ เซลล์ที่ต้องการพื้นที่แนวตั้งมากที่สุดจะกำหนดขอบเขตล่างโดยเนื้อหา สำหรับทำให้แถวสั้นลง คุณอาจต้องย่อข้อความ, ลดขนาดฟอนต์หรือระยะขอบ, หรือเพิ่มความกว้างของคอลัมน์
รูปภาพด้านล่างแสดงตารางเดียวกันในสเกลเดียวกัน ในผลลัพธ์ที่แสดง ความสูงจริงคือ 70, 100, และ 55.2 จุด: แถวสุดท้ายยังคงสูงกว่าค่าขั้นต่ำ 20 จุด การวัดข้อความอาจแตกต่างตามฟอนต์ที่มีในสภาพแวดล้อมของคุณ ดาวน์โหลดผลลัพธ์ที่บันทึกไว้: increased minimum และ decreased minimum
| ต้นฉบับ: ความสูงขั้นต่ำ 70 pt, ความสูงจริง 70 pt | เพิ่ม: ความสูงขั้นต่ำ 100 pt, ความสูงจริง 100 pt | ลด: ความสูงขั้นต่ำ 20 pt, ความสูงจริง 55.2 pt |
|---|---|---|
![]() |
![]() |
![]() |
กำหนดแถวแรกเป็นหัวเรื่อง
ใช้เมธอด setFirstRow เพื่อทำเครื่องหมายแถวแรกสำหรับการจัดรูปแบบหัวเรื่อง การปรากฏของแถวขึ้นอยู่กับสไตล์ตารางที่ใช้กับตาราง
- โหลดงานนำเสนอด้วยคลาส Presentation
- เข้าถึงสไลด์แรก
- เข้าถึงตารางที่เก็บเป็นรูปร่างแรกบนสไลด์
- เปิดใช้การจัดรูปแบบหัวเรื่องสำหรับแถวแรก
- บันทึกงานนำเสนอที่แก้ไขแล้ว
ตัวอย่างต้องการไฟล์ table.pptx ที่มีตารางเป็นรูปร่างแรกบนสไลด์แรก เปิดใช้การจัดรูปแบบหัวเรื่องสำหรับแถวแรกและบันทึกเป็น First_row_header.pptx
import com.aspose.slides.*;
Presentation presentation = new Presentation("table.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
ITable table = (ITable)slide.getShapes().get_Item(0);
table.setFirstRow(true);
presentation.save("First_row_header.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
คัดลอกแถวหรือคอลัมน์ของตาราง
คัดลอกแถวหรือคอลัมน์เพื่อใช้ซ้ำเนื้อหาและการจัดรูปแบบ คุณสามารถเพิ่มสำเนาที่ตำแหน่งสุดท้ายของตารางหรือแทรกลงในตำแหน่งที่กำหนด
- โหลดงานนำเสนอด้วยคลาส Presentation
- เข้าถึงสไลด์แรก
- กำหนดความกว้างของคอลัมน์และความสูงของแถว
- เพิ่มตารางด้วยเมธอด addTable
- คัดลอกแถวที่ต้องการ
- คัดลอกคอลัมน์ที่ต้องการ
- บันทึกงานนำเสนอที่แก้ไขแล้ว
ตัวอย่างต้องการไฟล์ Test.pptx ที่มีอย่างน้อยหนึ่งสไลด์ สร้างตารางที่มีสามคอลัมน์และห้าแถว โดยระบุขนาดเป็นจุด เพิ่มสำเนาของแถวแรกและคอลัมน์แรก แล้วแทรกสำเนาของแถวที่สองและคอลัมน์ที่สองที่ตำแหน่งดัชนี 3 (ตำแหน่งที่สี่) ตารางที่ได้จะมีเจ็ดแถวและห้าคอลัมน์ อาร์กิวเมนต์ false ปิดการคัดลอกเข้าแถวหรือคอลัมน์ที่ผสานอยู่; ตารางนี้ไม่มีเซลล์ที่ผสาน
import com.aspose.slides.*;
Presentation presentation = new Presentation("Test.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
double[] columnWidths = new double[] { 50, 50, 50 };
double[] rowHeights = new double[] { 50, 30, 30, 30, 30 };
ITable table = slide.getShapes().addTable(100, 50, columnWidths, rowHeights);
table.get_Item(0, 0).getTextFrame().setText("Row 1 Cell 1");
table.get_Item(1, 0).getTextFrame().setText("Row 1 Cell 2");
table.getRows().addClone(table.getRows().get_Item(0), false);
table.get_Item(0, 1).getTextFrame().setText("Row 2 Cell 1");
table.get_Item(1, 1).getTextFrame().setText("Row 2 Cell 2");
table.getRows().insertClone(3, table.getRows().get_Item(1), false);
table.getColumns().addClone(table.getColumns().get_Item(0), false);
table.getColumns().insertClone(3, table.getColumns().get_Item(1), false);
presentation.save("table_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ลบแถวหรือคอลัมน์ออกจากตาราง
ลบแถวหรือคอลัมน์ที่ไม่ต้องการอีกต่อไป การลบรายการจะทำให้ดัชนีของแถวหรือคอลัมน์ที่ตามมาถูกเลื่อน
- สร้างงานนำเสนอด้วยคลาส Presentation
- เข้าถึงสไลด์แรก
- กำหนดความกว้างของคอลัมน์และความสูงของแถว
- เพิ่มตารางด้วยเมธอด addTable
- ลบแถวที่สองและคอลัมน์ที่สอง
- บันทึกงานนำเสนอที่แก้ไขแล้ว
ตัวอย่างนี้สร้างตาราง 3x3 และลบแถวและคอลัมน์ที่ดัชนี 1 ทำให้เหลือตาราง 2x2 ในไฟล์ TestTable_out.pptx ขนาดเป็นจุด อาร์กิวเมนต์ false ปิดการลบแถวหรือคอลัมน์ที่ผสานอยู่; ตารางนี้ไม่มีเซลล์ที่ผสาน
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
double[] columnWidths = new double[] { 100, 50, 30 };
double[] rowHeights = new double[] { 30, 50, 30 };
ITable table = slide.getShapes().addTable(100, 100, columnWidths, rowHeights);
table.getRows().removeAt(1, false);
table.getColumns().removeAt(1, false);
presentation.save("TestTable_out.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
กำหนดการจัดรูปแบบข้อความระดับแถวของตาราง
ใช้การจัดรูปแบบข้อความกับแถวทั้งหมดเพื่อให้เซลล์ที่อยู่ในแถวนั้นสอดคล้องกัน คุณสามารถตั้งค่าคุณสมบัติฟอนต์, การจัดรูปแบบย่อหน้า, และทิศทางข้อความโดยไม่ต้องจัดรูปแบบแต่ละเซลล์แยกกัน
- โหลดงานนำเสนอด้วยคลาส Presentation
- เข้าถึงตารางบนสไลด์แรก
- ใช้เมธอด setFontHeight สำหรับแถวแรก
- ใช้เมธอด setAlignment และ setMarginRight สำหรับแถวแรก
- ใช้เมธอด setTextVerticalType สำหรับแถวที่สอง
- บันทึกงานนำเสนอที่แก้ไขแล้ว
ตัวอย่างต้องการไฟล์ table.pptx ที่มีตารางเป็นรูปร่างแรกบนสไลด์แรกและมีอย่างน้อยสองแถว ใช้ข้อความ 25 จุด, จัดแนวขวา, และระยะขอบย่อหน้าขวา 20 จุดกับแถวแรก แล้วตั้งค่าให้ข้อความเป็นแนวตั้งในแถวที่สอง
import com.aspose.slides.*;
Presentation presentation = new Presentation("table.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
ITable table = (ITable)slide.getShapes().get_Item(0);
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
table.getRows().get_Item(0).setTextFormat(portionFormat);
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
table.getRows().get_Item(0).setTextFormat(paragraphFormat);
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
table.getRows().get_Item(1).setTextFormat(textFrameFormat);
presentation.save("row_formatting.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
กำหนดการจัดรูปแบบข้อความระดับคอลัมน์ของตาราง
ใช้การจัดรูปแบบข้อความกับคอลัมน์ทั้งหมดเพื่อให้เซลล์ในคอลัมน์นั้นสอดคล้องกัน คุณสามารถตั้งค่าคุณสมบัติฟอนต์, การจัดรูปแบบย่อหน้า, และทิศทางข้อความโดยไม่ต้องจัดรูปแบบแต่ละเซลล์แยกกัน
- โหลดงานนำเสนอด้วยคลาส Presentation
- เข้าถึงตารางบนสไลด์แรก
- ใช้เมธอด setFontHeight สำหรับคอลัมน์แรก
- ใช้เมธอด setAlignment และ setMarginRight สำหรับคอลัมน์แรก
- ใช้เมธอด setTextVerticalType สำหรับคอลัมน์ที่สอง
- บันทึกงานนำเสนอที่แก้ไขแล้ว
ตัวอย่างต้องการไฟล์ table.pptx ที่มีตารางเป็นรูปร่างแรกบนสไลด์แรกและมีอย่างน้อยสองคอลัมน์ ใช้ข้อความ 25 จุด, จัดแนวขวา, และระยะขอบย่อหน้าขวา 20 จุดกับคอลัมน์แรก แล้วตั้งค่าให้ข้อความเป็นแนวตั้งในคอลัมน์ที่สอง
import com.aspose.slides.*;
Presentation presentation = new Presentation("table.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
ITable table = (ITable)slide.getShapes().get_Item(0);
PortionFormat portionFormat = new PortionFormat();
portionFormat.setFontHeight(25);
table.getColumns().get_Item(0).setTextFormat(portionFormat);
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.setAlignment(TextAlignment.Right);
paragraphFormat.setMarginRight(20);
table.getColumns().get_Item(0).setTextFormat(paragraphFormat);
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.setTextVerticalType(TextVerticalType.Vertical);
table.getColumns().get_Item(1).setTextFormat(textFrameFormat);
presentation.save("column_formatting.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
รับคุณสมบัติสไตล์ของตาราง
ใช้เมธอด getStylePreset เพื่อดึงสไตล์ที่ตั้งล่วงหน้าที่ใช้กับตารางและนำกลับไปใช้กับตารางอื่น วิธีนี้ระบุสไตล์ล่วงหน้าแทนการเขียนทับการจัดรูปแบบของเซลล์เดี่ยว
ตัวอย่างสร้างตาราง, ใช้ TableStylePreset.DarkStyle1 แล้วอ่านค่าสไตล์กลับมา พิมพ์ค่าตัวเลขที่สอดคล้องกับ DarkStyle1 และบันทึกตารางในไฟล์ table.pptx
import com.aspose.slides.*;
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
double[] columnWidths = new double[] { 100, 150 };
double[] rowHeights = new double[] { 5, 5, 5 };
ITable table = slide.getShapes().addTable(10, 10, columnWidths, rowHeights);
table.setStylePreset(TableStylePreset.DarkStyle1);
int stylePreset = table.getStylePreset();
System.out.println(stylePreset);
presentation.save("table.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
คำถามที่พบบ่อย
ฉันสามารถใช้ธีมหรือสไตล์ของ PowerPoint กับตารางที่สร้างไว้แล้วได้หรือไม่?
ใช่. ตารางสืบทอดธีมจากสไลด์/เลเอาต์/มาสเตอร์, และคุณยังสามารถเขียนทับการเติม, เส้นขอบ, และสีข้อความได้เหนือธีมนั้น
ฉันสามารถเรียงลำดับแถวของตารางแบบใน Excel ได้หรือไม่?
ไม่ได้, ตารางของ Aspose.Slides ไม่มีการเรียงลำดับหรือฟิลเตอร์ในตัว คุณต้องจัดเรียงข้อมูลในหน่วยความจำก่อน แล้วค่อยใส่แถวตารางตามลำดับนั้นใหม่
ฉันสามารถทำคอลัมน์ลายขวาง (striped) พร้อมสีที่กำหนดไว้สำหรับเซลล์บางเซลล์ได้หรือไม่?
ได้. เปิดใช้งานคอลัมน์ลายขวาง, แล้วเขียนทับสีของเซลล์เฉพาะด้วยการจัดรูปแบบระดับเซลล์; การจัดรูปแบบระดับเซลล์จะมีลำดับความสำคัญเหนือสไตล์ของตาราง


