ตารางในเอกสาร Word เป็นเครื่องมือที่มีประสิทธิภาพในการจัดระเบียบและนำเสนอข้อมูลในรูปแบบที่ชัดเจนและมีโครงสร้าง ตารางประกอบด้วยแถวและคอลัมน์ซึ่งตัดกันเพื่อสร้างเซลล์ที่สามารถประกอบด้วยข้อความ ตัวเลข รูปภาพ หรือองค์ประกอบอื่นๆ ในบทความนี้ เราจะเรียนรู้วิธีสร้างตารางในเอกสาร Word โดยทางโปรแกรมโดยใช้ C# บทความนี้แสดงวิธีการต่างๆ ในการสร้างตารางในไฟล์ DOCX ที่สนับสนุนโดยตัวอย่างโค้ด
บทความนี้ครอบคลุมหัวข้อต่อไปนี้:
- ไลบรารี C# เพื่อสร้างตารางในเอกสาร Word
- สร้างตารางในเอกสาร Word
- สร้างตารางที่ซ้อนกันในเอกสาร Word
- โคลนตารางที่มีอยู่ในเอกสาร Word
- สร้างตารางจาก HTML
ไลบรารี 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
- สร้างวัตถุของคลาสเอกสาร
- สร้างวัตถุของคลาส DocumentBuilder
- สร้างตารางใหม่โดยใช้เมธอด StartTable()
- แทรกเซลล์โดยใช้วิธี InsertCell()
- แทรกข้อความลงในเซลล์โดยใช้วิธี Write()
- ทำซ้ำการแทรกเซลล์และข้อความลงในเซลล์ตามต้องการ
- จบแถวโดยใช้เมธอด EndRow()
- จบตารางโดยใช้เมธอด EndTable()
- สุดท้าย ให้บันทึกเอกสาร 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");
สร้างตารางโดยใช้ Document Object Model (DOM)
Document Object Model (DOM) คือการแสดงในหน่วยความจำของเอกสาร Word ช่วยให้สามารถเข้าถึงโดยทางโปรแกรมเพื่ออ่าน จัดการ และแก้ไขเนื้อหาและการจัดรูปแบบของเอกสาร Word
โปรดทำตามขั้นตอนด้านล่างเพื่อสร้างตารางในเอกสาร Word โดยใช้ DOM
- สร้างวัตถุของคลาสเอกสาร
- สร้างตารางใหม่โดยใช้คลาส Table()
- เพิ่มตารางลงในเนื้อหาของเอกสารโดยใช้เมธอด AppendChild()
- สร้างวัตถุของคลาสแถวและแทรกลงในตารางโดยใช้เมธอด Table.AppendChild(Row)
- สร้างออบเจ็กต์ของคลาส Cell ตั้งค่าตัวเลือกการจัดรูปแบบ และเพิ่มข้อความลงในเซลล์
- แทรกเซลล์ลงในแถวโดยใช้วิธี Row.AppendChild(Cell)
- หลังจากนั้นให้ทำซ้ำตามจำนวนแถวที่คุณต้องการ
- สุดท้าย ให้บันทึกเอกสาร 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");
สร้างตารางที่ซ้อนกันในเอกสาร Word โดยใช้ C#
เรายังสามารถสร้างตารางใหม่ภายในเซลล์ของตารางได้ ต่อไปนี้เป็นขั้นตอนในการสร้างตารางที่ซ้อนกันในเอกสาร Word
- สร้างวัตถุของคลาสเอกสาร
- สร้างวัตถุของคลาส DocumentBuilder
- สร้างตารางโดยใช้เมธอด StartTable() และรับการอ้างอิงไปยังตารางในออบเจ็กต์
- แทรกเซลล์โดยใช้เมธอด InsertCell() และรับการอ้างอิงไปยังเซลล์ในวัตถุ
- แทรกข้อความลงในเซลล์โดยใช้เมธอด DocumentBuilder.Write()
- ทำซ้ำการแทรกเซลล์และข้อความลงในเซลล์ตามต้องการ
- สิ้นสุดตารางเมื่อคุณแทรกแถวทั้งหมดแล้ว
- ย้ายการควบคุมภายในเซลล์ที่ต้องการโดยใช้เมธอด MoveTo(cell.FirstParagraph)
- สร้างตารางอื่นโดยการแทรกเซลล์ และสิ้นสุดตารางเมื่อเสร็จแล้ว
- สุดท้าย ให้บันทึกเอกสาร 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 ได้โดยทำตามขั้นตอนด้านล่าง:
- โหลดเอกสารที่มีอยู่ด้วยตารางโดยใช้คลาสเอกสาร
- รับตารางในวัตถุโดยใช้เมธอด GetChild(NodeType.TABLE, int, boolean)
- โคลนตารางโดยใช้เมธอด Table.Clone(True)
- แทรกตารางโคลนโดยใช้เมธอด Table.ParentNode.InsertAfter()
- แทรกย่อหน้าว่างระหว่างตารางโดยใช้เมธอด Table.ParentNode.InsertAfter(new Paragraph(Document), Table)
- สุดท้าย ให้บันทึกเอกสาร 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 จาก HTML
นอกจากนี้เรายังสามารถสร้างตารางในเอกสาร Word โดยใช้สตริง HTML โดยทำตามขั้นตอนด้านล่าง:
- สร้างวัตถุของคลาสเอกสาร
- สร้างวัตถุของคลาส DocumentBuilder
- แทรกสตริง HTML ของตารางลงในเอกสารโดยใช้เมธอด DocumentBuilder.InsertHtml(String)
- สุดท้าย ให้บันทึกเอกสารโดยใช้เมธอด 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");
รับใบอนุญาต API ฟรี
คุณสามารถรับ ใบอนุญาตชั่วคราว เพื่อใช้ Aspose.Words for .NET โดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีสร้างตารางในเอกสาร Word โดยใช้ C# เราได้สำรวจวิธีการต่างๆ เพื่อสร้างตารางโดยทางโปรแกรมโดยใช้ C# นอกจากนี้เรายังได้เห็นวิธีการสร้างตารางที่ซ้อนกันหรือโคลนตารางที่มีอยู่ในเอกสาร Word แบบไดนามิก นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมและสำรวจคุณสมบัติอื่นๆ ที่หลากหลายของห้องสมุดได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรัมการสนับสนุนฟรี