สร้างตารางในเอกสาร word โดยใช้ Java

Microsoft Word เป็นแอปพลิเคชันประมวลผลคำยอดนิยมที่ใช้ในการสร้างเอกสารประเภทต่างๆ เอกสารเหล่านี้อาจมีองค์ประกอบหลายประเภท รวมถึงข้อความ รูปภาพ ตาราง และแผนภูมิ เมื่อพูดถึงการสร้างและจัดการเอกสารใน Java โดยอัตโนมัติ คุณอาจต้องใช้โซลูชันที่ง่ายดายในการสร้างตารางภายในเอกสาร Word ดังนั้นในบล็อกโพสต์นี้ เราจะสำรวจวิธีสร้างตารางในเอกสาร Word ในแอปพลิเคชัน Java

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");

ต่อไปนี้เป็นภาพหน้าจอของตารางที่เราสร้างขึ้นโดยใช้ตัวอย่างโค้ดด้านบน

ตารางในเอกสาร Word

สร้างตารางโดยใช้ 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");

ต่อไปนี้เป็นภาพหน้าจอของตารางแบบซ้อนที่เราสร้างขึ้นด้านบน

Nested Table in a Word Document

สร้างตารางคำจาก 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 โปรดสำรวจ เอกสารประกอบ และ ตัวอย่าง ที่ครอบคลุม ในกรณีที่มีคำถามใดๆ โปรดแจ้งให้เราทราบผ่านทาง ฟอรั่ม ของเรา

ดูสิ่งนี้ด้วย