สร้างตารางใน Word โดยใช้ C# | สร้างตารางที่ซ้อนกันใน C#

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

บทความนี้ครอบคลุมหัวข้อต่อไปนี้:

ไลบรารี C# เพื่อสร้างตารางในเอกสาร Word

สำหรับการทำงานกับตารางในเอกสาร Word เราจะใช้ไลบรารี Aspose.Words for .NET เป็นไลบรารีที่มีประสิทธิภาพซึ่งช่วยให้คุณสามารถสร้างและจัดการเอกสาร Word แบบไดนามิกโดยทางโปรแกรมได้โดยตรงภายในแอปพลิเคชัน .NET

โปรด ดาวน์โหลด DLL หรือติดตั้งจาก NuGet โดยใช้คำสั่งต่อไปนี้:

PM> Install-Package Aspose.Words

สร้างตารางในเอกสาร Word ใน C#

มีสองวิธีในการสร้างตารางในเอกสาร Word โดยใช้ Aspose.Words for .NET:

  • การใช้คลาส DocumentBuilder
  • การใช้ DOM (Document Object Model)

คุณสามารถเลือกวิธีการที่เหมาะกับความต้องการของคุณได้มากที่สุด เรามาสำรวจแต่ละวิธีโดยละเอียดกันดีกว่า

สร้างตารางโดยใช้ DocumentBuilder

คลาส DocumentBuilder ช่วยให้สามารถสร้างเอกสารแบบไดนามิกตั้งแต่เริ่มต้นหรือแก้ไขเอกสารที่มีอยู่ได้อย่างมีประสิทธิภาพและง่ายดาย ด้วยฟังก์ชันที่ครอบคลุม เราจึงสามารถแทรกองค์ประกอบเนื้อหาที่หลากหลายได้อย่างราบรื่น รวมถึงข้อความ กล่องกาเครื่องหมาย วัตถุ OLE ย่อหน้า รายการ ตาราง รูปภาพ และอื่นๆ อีกมากมาย

โปรดทำตามขั้นตอนด้านล่างเพื่อสร้างตารางในเอกสาร Word โดยใช้คลาส DocumentBuilder

  1. สร้างวัตถุของคลาสเอกสาร
  2. สร้างวัตถุของคลาส DocumentBuilder
  3. สร้างตารางใหม่โดยใช้เมธอด StartTable()
  4. แทรกเซลล์โดยใช้วิธี InsertCell()
  5. แทรกข้อความลงในเซลล์โดยใช้วิธี Write()
  6. ทำซ้ำการแทรกเซลล์และข้อความลงในเซลล์ตามต้องการ
  7. จบแถวโดยใช้เมธอด EndRow()
  8. จบตารางโดยใช้เมธอด EndTable()
  9. สุดท้าย ให้บันทึกเอกสาร Word โดยใช้เมธอด Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างตารางในเอกสาร Word โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการสร้างตารางในเอกสาร Word โดยใช้ C#
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// เริ่มสร้างโต๊ะ
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// สร้างเซลล์ที่สอง
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// เรียกวิธีการต่อไปนี้เพื่อสิ้นสุดแถวและเริ่มแถวใหม่
builder.EndRow();

// สร้างเซลล์แรกของแถวที่สอง
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// สร้างเซลล์ที่สอง
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// สัญญาณว่าเราสร้างโต๊ะเสร็จแล้ว
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
สร้างตารางใน Word โดยใช้ DocumentBuilder

สร้างตารางโดยใช้ DocumentBuilder

สร้างตารางโดยใช้ Document Object Model (DOM)

Document Object Model (DOM) คือการแสดงในหน่วยความจำของเอกสาร Word ช่วยให้สามารถเข้าถึงโดยทางโปรแกรมเพื่ออ่าน จัดการ และแก้ไขเนื้อหาและการจัดรูปแบบของเอกสาร Word

โปรดทำตามขั้นตอนด้านล่างเพื่อสร้างตารางในเอกสาร Word โดยใช้ DOM

  1. สร้างวัตถุของคลาสเอกสาร
  2. สร้างตารางใหม่โดยใช้คลาส Table()
  3. เพิ่มตารางลงในเนื้อหาของเอกสารโดยใช้เมธอด AppendChild()
  4. สร้างวัตถุของคลาสแถวและแทรกลงในตารางโดยใช้เมธอด Table.AppendChild(Row)
  5. สร้างออบเจ็กต์ของคลาส Cell ตั้งค่าตัวเลือกการจัดรูปแบบ และเพิ่มข้อความลงในเซลล์
  6. แทรกเซลล์ลงในแถวโดยใช้วิธี Row.AppendChild(Cell)
  7. หลังจากนั้นให้ทำซ้ำตามจำนวนแถวที่คุณต้องการ
  8. สุดท้าย ให้บันทึกเอกสาร Word โดยใช้เมธอด Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างตารางในเอกสาร Word โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการสร้างตารางในเอกสาร Word โดยใช้ DOM ใน C#
Document doc = new Document();

// เราเริ่มต้นด้วยการสร้างวัตถุตาราง โปรดทราบว่าเราต้องส่งวัตถุเอกสาร
// ไปยังตัวสร้างของแต่ละโหนด เนื่องจากทุกโหนดที่เราสร้างจะต้องเป็นของตัวเอง
// ไปยังเอกสารบางอย่าง
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// ที่นี่เราสามารถเรียก SureMinimum เพื่อสร้างแถวและเซลล์ให้เราได้ วิธีนี้ใช้
// เพื่อให้แน่ใจว่าโหนดที่ระบุนั้นถูกต้อง ในกรณีนี้ ตารางที่ถูกต้องควรมีอย่างน้อยหนึ่งแถวและหนึ่งเซลล์

// แต่เราจะจัดการสร้างแถวและตารางเองแทน
// นี่จะเป็นวิธีที่ดีที่สุดหากเราสร้างตารางภายในอัลกอริทึม
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// ตอนนี้เราสามารถใช้การตั้งค่าการปรับให้พอดีอัตโนมัติได้แล้ว
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// ผนวกเซลล์
row.AppendChild(cell);

// จากนั้นเราจะทำซ้ำขั้นตอนนี้กับเซลล์และแถวอื่นๆ ในตาราง
// นอกจากนี้เรายังสามารถเร่งความเร็วได้ด้วยการโคลนเซลล์และแถวที่มีอยู่
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// บันทึกเอกสาร
doc.Save("InsertTableDirectly.docx");
สร้างตารางโดยใช้ Document Object Model (DOM)

สร้างตารางโดยใช้ Document Object Model (DOM)

สร้างตารางที่ซ้อนกันในเอกสาร Word โดยใช้ C#

เรายังสามารถสร้างตารางใหม่ภายในเซลล์ของตารางได้ ต่อไปนี้เป็นขั้นตอนในการสร้างตารางที่ซ้อนกันในเอกสาร Word

  1. สร้างวัตถุของคลาสเอกสาร
  2. สร้างวัตถุของคลาส DocumentBuilder
  3. สร้างตารางโดยใช้เมธอด StartTable() และรับการอ้างอิงไปยังตารางในออบเจ็กต์
  4. แทรกเซลล์โดยใช้เมธอด InsertCell() และรับการอ้างอิงไปยังเซลล์ในวัตถุ
  5. แทรกข้อความลงในเซลล์โดยใช้เมธอด DocumentBuilder.Write()
  6. ทำซ้ำการแทรกเซลล์และข้อความลงในเซลล์ตามต้องการ
  7. สิ้นสุดตารางเมื่อคุณแทรกแถวทั้งหมดแล้ว
  8. ย้ายการควบคุมภายในเซลล์ที่ต้องการโดยใช้เมธอด MoveTo(cell.FirstParagraph)
  9. สร้างตารางอื่นโดยการแทรกเซลล์ และสิ้นสุดตารางเมื่อเสร็จแล้ว
  10. สุดท้าย ให้บันทึกเอกสาร Word โดยใช้เมธอด Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างตารางที่ซ้อนกันในเอกสาร Word โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการสร้างตารางที่ซ้อนกันในเอกสาร Word โดยใช้ C#
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.FirstParagraph);

// สร้างโต๊ะด้านใน
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// บันทึกเอกสาร
doc.Save("NestedTable.docx");
สร้างตารางที่ซ้อนกันในเอกสาร Word โดยใช้ C#

สร้างตารางที่ซ้อนกันในเอกสาร Word โดยใช้ C#

โคลนตารางที่มีอยู่ในเอกสาร Word ใน C#

เราสามารถโคลนตารางที่มีอยู่ในเอกสาร Word ได้โดยทำตามขั้นตอนด้านล่าง:

  1. โหลดเอกสารที่มีอยู่ด้วยตารางโดยใช้คลาสเอกสาร
  2. รับตารางในวัตถุโดยใช้เมธอด GetChild(NodeType.TABLE, int, boolean)
  3. โคลนตารางโดยใช้เมธอด Table.Clone(True)
  4. แทรกตารางโคลนโดยใช้เมธอด Table.ParentNode.InsertAfter()
  5. แทรกย่อหน้าว่างระหว่างตารางโดยใช้เมธอด Table.ParentNode.InsertAfter(new Paragraph(Document), Table)
  6. สุดท้าย ให้บันทึกเอกสาร Word โดยใช้เมธอด Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการโคลนตารางในเอกสาร Word โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการโคลนตารางที่มีอยู่ในเอกสาร Word โดยใช้ C#
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// โคลนตารางและแทรกลงในเอกสารหลังต้นฉบับ
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// แทรกย่อหน้าว่างระหว่างสองตาราง
// ไม่เช่นนั้นจะรวมเป็นหนึ่งเดียวเมื่อบันทึก ซึ่งเกี่ยวข้องกับการตรวจสอบเอกสาร
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
โคลนตารางที่มีอยู่ในเอกสาร Word ใน C#

โคลนตารางที่มีอยู่ในเอกสาร Word ใน C#

สร้างตารางในเอกสาร Word จาก HTML

นอกจากนี้เรายังสามารถสร้างตารางในเอกสาร Word โดยใช้สตริง HTML โดยทำตามขั้นตอนด้านล่าง:

  1. สร้างวัตถุของคลาสเอกสาร
  2. สร้างวัตถุของคลาส DocumentBuilder
  3. แทรกสตริง HTML ของตารางลงในเอกสารโดยใช้เมธอด DocumentBuilder.InsertHtml(String)
  4. สุดท้าย ให้บันทึกเอกสารโดยใช้เมธอด Document.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแทรกตาราง HTML ในเอกสาร Word โดยใช้ C#

// ตัวอย่างโค้ดนี้สาธิตวิธีการแทรกตาราง HTML ในเอกสาร Word โดยใช้ C#
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("InsertTableFromHtml.docx");
สร้างตารางในเอกสาร Word จาก HTML

สร้างตารางในเอกสาร Word จาก HTML

รับใบอนุญาต API ฟรี

คุณสามารถรับ ใบอนุญาตชั่วคราว เพื่อใช้ Aspose.Words for .NET โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

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

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