Microsoft Word เป็นแอปพลิเคชันประมวลผลคำยอดนิยมที่ใช้ในการสร้างเอกสารประเภทต่างๆ เอกสารเหล่านี้อาจมีองค์ประกอบหลายประเภท รวมถึงข้อความ รูปภาพ ตาราง และแผนภูมิ เมื่อพูดถึงการสร้างและจัดการเอกสารใน Java โดยอัตโนมัติ คุณอาจต้องใช้โซลูชันที่ง่ายดายในการสร้างตารางภายในเอกสาร Word ดังนั้นในบล็อกโพสต์นี้ เราจะสำรวจวิธีสร้างตารางในเอกสาร Word ในแอปพลิเคชัน Java
- Java Library เพื่อสร้างตารางในเอกสาร Word
- สร้างตารางในเอกสาร Word
- แทรกตารางที่ซ้อนกันในเอกสาร Word
- สร้างตารางจาก HTML
Java Library เพื่อสร้างตารางในเอกสาร Word
Aspose.Words for Java เป็น API ที่ช่วยให้นักพัฒนา Java สามารถทำงานกับเอกสาร Microsoft Word โดยทางโปรแกรม โดยมีคุณสมบัติที่หลากหลายสำหรับการสร้าง ปรับเปลี่ยน และจัดการเอกสาร Word ทำให้เป็นเครื่องมือที่มีค่าสำหรับการสร้างและประมวลผลเอกสารอัตโนมัติ เราจะใช้ไลบรารีนี้เพื่อแทรกตารางลงในเอกสาร Word
คุณสามารถ ดาวน์โหลด ไลบรารีหรือติดตั้งโดยใช้การกำหนดค่า Maven ต่อไปนี้
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>23.10</version>
<classifier>jdk17</classifier>
</dependency>
สร้างตารางในเอกสาร Word ใน Java
มีสองวิธีในการสร้างตารางในเอกสาร Word โดยใช้ Aspose.Words for Java:
- การใช้ DocumentBuilder
- การใช้ DOM (โมเดลวัตถุเอกสาร)
คุณสามารถเลือกวิธีการที่เหมาะสมกับความต้องการของคุณมากที่สุด เรามาสำรวจแต่ละวิธีโดยละเอียดกันดีกว่า
สร้างตารางโดยใช้ DocumentBuilder
คลาส DocumentBuilder ช่วยให้คุณสร้างเอกสารแบบไดนามิกตั้งแต่เริ่มต้นหรือประมวลผลเอกสารที่มีอยู่ได้อย่างรวดเร็วและง่ายดาย มีฟังก์ชันต่างๆ มากมายสำหรับการแทรกองค์ประกอบเนื้อหาต่างๆ เช่น ข้อความ กล่องกาเครื่องหมาย วัตถุ OLE ย่อหน้า รายการ ตาราง รูปภาพ และอื่นๆ
ต่อไปนี้เป็นขั้นตอนที่ใช้คลาส DocumentBuilder เพื่อสร้างตารางในเอกสาร Word ใน Java
- สร้างวัตถุของคลาสเอกสารเพื่อโหลดหรือสร้างเอกสาร Word
- สร้างวัตถุของคลาส DocumentBuilder
- เริ่มตารางโดยใช้เมธอด DocumentBuilder.startTable()
- แทรกเซลล์โดยใช้เมธอด DocumentBuilder.insertCell()
- (ไม่บังคับ) นำการจัดรูปแบบไปใช้กับเซลล์ เช่น แบบอักษรและการจัดแนว
- แทรกข้อความลงในเซลล์โดยใช้เมธอด DocumentBuilder.write()
- ทำซ้ำการแทรกเซลล์และข้อความลงในเซลล์ตามต้องการ
- สิ้นสุดแถวเมื่อคุณแทรกเซลล์โดยใช้เมธอด DocumentBuilder.endRow()
- สิ้นสุดตารางเมื่อคุณแทรกแถวทั้งหมดโดยใช้เมธอด DocumentBuilder.endTable()
- บันทึกเอกสาร Word โดยใช้เมธอด Document.save()
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสร้างตารางในเอกสาร Word โดยใช้ Java
// สร้างหรือโหลดเอกสาร
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// สร้างตารางใหม่และแทรกเซลล์
Table table = builder.startTable();
builder.insertCell();
// ต้องใช้การจัดรูปแบบทั้งตารางหลังจากมีอย่างน้อยหนึ่งแถวในตาราง
table.setLeftIndent(20.0);
// ตั้งค่าความสูงและกำหนดกฎความสูงสำหรับแถวส่วนหัว
builder.getRowFormat().setHeight(40.0);
builder.getRowFormat().setHeightRule(HeightRule.AT_LEAST);
builder.getCellFormat().getShading().setBackgroundPatternColor(new Color((198), (217), (241)));
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
builder.getFont().setSize(16.0);
builder.getFont().setName("Arial");
builder.getFont().setBold(true);
builder.getCellFormat().setWidth(100.0);
builder.write("Header Row,\n Cell 1");
// เราไม่จำเป็นต้องระบุความกว้างของเซลล์นี้เนื่องจากสืบทอดมาจากเซลล์ก่อนหน้า
builder.insertCell();
builder.write("Header Row,\n Cell 2");
builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Header Row,\n Cell 3");
builder.endRow();
builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE);
builder.getCellFormat().setWidth(100.0);
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);
// รีเซ็ตความสูงและกำหนดกฎความสูงอื่นสำหรับเนื้อหาของตาราง
builder.getRowFormat().setHeight(30.0);
builder.getRowFormat().setHeightRule(HeightRule.AUTO);
builder.insertCell();
// รีเซ็ตการจัดรูปแบบตัวอักษร
builder.getFont().setSize(12.0);
builder.getFont().setBold(false);
builder.write("Row 1, Cell 1 Content");
builder.insertCell();
builder.write("Row 1, Cell 2 Content");
builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 1, Cell 3 Content");
builder.endRow();
builder.insertCell();
builder.getCellFormat().setWidth(100.0);
builder.write("Row 2, Cell 1 Content");
builder.insertCell();
builder.write("Row 2, Cell 2 Content");
builder.insertCell();
builder.getCellFormat().setWidth(200.0);
builder.write("Row 2, Cell 3 Content.");
builder.endRow();
// ท้ายตาราง.
builder.endTable();
// บันทึกเอกสาร
doc.save("table.docx");
ต่อไปนี้เป็นภาพหน้าจอของตารางที่เราสร้างขึ้นโดยใช้ตัวอย่างโค้ดด้านบน
สร้างตารางโดยใช้ DOM
Document Object Model (DOM) คือการแสดงในหน่วยความจำของเอกสาร Word ที่ช่วยให้คุณสามารถอ่าน จัดการ และแก้ไขเนื้อหาและการจัดรูปแบบของเอกสาร Word โดยทางโปรแกรม ขั้นตอนต่อไปนี้สาธิตวิธีการสร้างตารางในเอกสาร Word โดยใช้ DOM
- สร้างวัตถุของคลาสเอกสารเพื่อโหลดหรือสร้างเอกสาร Word
- สร้างอ็อบเจ็กต์ของคลาส Table และแทรกตารางลงในเอกสารโดยใช้เมธอด Document.getFirstSection().getBody().appendChild(Table)
- สร้างวัตถุของคลาส Row และแทรกลงในตารางโดยใช้เมธอด Table.appendChild(Row)
- สร้างออบเจ็กต์ของคลาส Cell ตั้งค่าตัวเลือกการจัดรูปแบบ และเพิ่มข้อความลงในเซลล์
- แทรกเซลล์ลงในแถวโดยใช้วิธี Row.appendChild(Cell)
- ทำซ้ำขั้นตอนนี้กับแถวมากเท่าที่คุณต้องการ
- บันทึกเอกสาร Word โดยใช้เมธอด Document.save()
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสร้างตารางในเอกสาร Word ใน Java
// สร้างหรือโหลดเอกสาร
Document doc = new Document();
// เราเริ่มต้นด้วยการสร้างวัตถุตาราง โปรดทราบว่าเราต้องส่งวัตถุเอกสาร
// ไปยังตัวสร้างของแต่ละโหนด เนื่องจากทุกโหนดที่เราสร้างจะต้องเป็นของตัวเอง
// ไปยังเอกสารบางอย่าง
Table table = new Table(doc);
doc.getFirstSection().getBody().appendChild(table);
// ที่นี่เราสามารถเรียก SureMinimum เพื่อสร้างแถวและเซลล์ให้เราได้ วิธีนี้ใช้
// เพื่อให้แน่ใจว่าโหนดที่ระบุนั้นถูกต้อง ในกรณีนี้ ตารางที่ถูกต้องควรมีอย่างน้อยหนึ่งแถวและหนึ่งเซลล์
// แต่เราจะจัดการสร้างแถวและตารางเองแทน
// นี่จะเป็นวิธีที่ดีที่สุดหากเราสร้างตารางภายในอัลกอริทึม
Row row = new Row(doc);
row.getRowFormat().setAllowBreakAcrossPages(true);
table.appendChild(row);
// ตอนนี้เราสามารถใช้การตั้งค่าการปรับให้พอดีอัตโนมัติได้แล้ว
table.autoFit(AutoFitBehavior.FIXED_COLUMN_WIDTHS);
Cell cell = new Cell(doc);
cell.getCellFormat().getShading().setBackgroundPatternColor(Color.BLUE);
cell.getCellFormat().setWidth(80.0);
cell.appendChild(new Paragraph(doc));
cell.getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 1 Text"));
row.appendChild(cell);
// จากนั้นเราจะทำซ้ำขั้นตอนนี้กับเซลล์และแถวอื่นๆ ในตาราง
// นอกจากนี้เรายังสามารถเร่งความเร็วได้ด้วยการโคลนเซลล์และแถวที่มีอยู่
row.appendChild(cell.deepClone(false));
row.getLastCell().appendChild(new Paragraph(doc));
row.getLastCell().getFirstParagraph().appendChild(new Run(doc, "Row 1, Cell 2 Text"));
// บันทึกเอกสาร
doc.save("table.docx");
แทรกตารางที่ซ้อนกันในเอกสาร Word
อาจมีกรณีที่คุณจำเป็นต้องสร้างตารางแบบซ้อนซึ่งอยู่ภายในเซลล์ของตารางหลัก คุณสามารถทำได้โดยไม่ต้องผ่านกระบวนการที่ซับซ้อน ขั้นแรก สร้างตารางหลัก จากนั้นเรียกใช้เมธอด DocumentBuilder.moveTo(Cell.getFirstParagraph()) เพื่อย้ายตัวควบคุมภายในเซลล์ที่ต้องการของตารางหลัก เมื่อเสร็จแล้วให้สร้างตารางใหม่ในลักษณะเดียวกัน
ข้อมูลโค้ดต่อไปนี้แสดงวิธีสร้างตารางที่ซ้อนกันในเอกสาร Word โดยใช้ Java
// สร้างหรือโหลดเอกสาร
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// แทรกเซลล์
Cell cell = builder.insertCell();
builder.writeln("Outer Table Cell 1");
builder.insertCell();
builder.writeln("Outer Table Cell 2");
// การเรียกนี้มีความสำคัญต่อการสร้างตารางที่ซ้อนกันภายในตารางแรก
// หากไม่มีการเรียกนี้ เซลล์ที่แทรกด้านล่างจะถูกผนวกเข้ากับตารางด้านนอก
builder.endTable();
// ย้ายไปยังเซลล์แรกของตารางด้านนอก
builder.moveTo(cell.getFirstParagraph());
// สร้างโต๊ะด้านใน
builder.insertCell();
builder.writeln("Inner Table Cell 1");
builder.insertCell();
builder.writeln("Inner Table Cell 2");
builder.endTable();
// บันทึกเอกสาร
doc.save("table.docx");
ต่อไปนี้เป็นภาพหน้าจอของตารางแบบซ้อนที่เราสร้างขึ้นด้านบน
สร้างตารางคำจาก HTML ใน Java
คุณยังสามารถสร้างตารางในเอกสาร Word โดยใช้สตริง HTML และนี่คือขั้นตอนที่ต้องปฏิบัติตาม
- สร้างวัตถุของคลาสเอกสารเพื่อโหลดหรือสร้างเอกสาร Word
- สร้างวัตถุของคลาส DocumentBuilder
- แทรกสตริง HTML ของตารางลงในเอกสารโดยใช้เมธอด DocumentBuilder.insertHtml(String)
- สุดท้าย ให้บันทึกเอกสารโดยใช้เมธอด Document.save()
ด้านล่างนี้คือข้อมูลโค้ดสำหรับสร้างตาราง Word จากสตริง HTML
// สร้างหรือโหลดเอกสาร
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// โปรดทราบว่า AutoFitSettings ใช้ไม่ได้กับตารางที่แทรกจาก HTML
builder.insertHtml("<table>" +
"<tr>" +
"<td>Row 1, Cell 1</td>" +
"<td>Row 1, Cell 2</td>" +
"</tr>" +
"<tr>" +
"<td>Row 2, Cell 2</td>" +
"<td>Row 2, Cell 2</td>" +
"</tr>" +
"</table>");
// บันทึกเอกสาร
doc.save("table.docx");
รับใบอนุญาตฟรี
คุณสามารถรับ ใบอนุญาตชั่วคราว เพื่อใช้ Aspose.Words for Java ได้โดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบล็อกโพสต์นี้ เราได้สำรวจวิธีสร้างตารางในเอกสาร Word โดยใช้ Java คุณได้เห็นวิธีการสร้างตารางโดยใช้ตัวสร้างเอกสารหรือ DOM, สร้างตารางที่ซ้อนกัน และสร้างตารางจากสตริง HTML ด้วยการติดตั้งไลบรารีและปฏิบัติตามคำแนะนำ คุณสามารถรวมคุณสมบัติการสร้างตารางเข้ากับแอปพลิเคชัน Java ของคุณได้อย่างง่ายดาย
Aspose.Words for Java มีคุณสมบัติและตัวเลือกการจัดรูปแบบอื่นๆ มากมาย ช่วยให้คุณสร้างเอกสารที่ซับซ้อนและซับซ้อนได้อย่างง่ายดาย หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Words for Java โปรดสำรวจ เอกสารประกอบ และ ตัวอย่าง ที่ครอบคลุม ในกรณีที่มีคำถามใดๆ โปรดแจ้งให้เราทราบผ่านทาง ฟอรั่ม ของเรา