.NET Library สำหรับสร้างเอกสารการประมวลผลคำ

อ่าน เขียน จัดการ และแปลงไฟล์ Word สร้างตารางใน DOCX ผ่าน Open Source .NET API

Open XML SDK เป็น API แบบโอเพ่นซอร์สที่พัฒนาโดย Microsoft และเผยแพร่ภายใต้หลักจรรยาบรรณโอเพ่นซอร์สของ Microsoft เพื่อจัดการกับเอกสารการประมวลผลคำรวมถึง DOCXDOTXDOCMDOTM รูปแบบไฟล์

เมื่อใช้ API คุณสามารถเพิ่มข้อความ ส่วนหัว ส่วนท้าย อ้างอิงท้ายเรื่อง เชิงอรรถ สไตล์ ธีม และอื่นๆ ได้ ช่วยให้คุณสร้างเอกสารคำประสิทธิภาพสูงและดึงข้อมูลจากเอกสารเหล่านั้น API รองรับแพลตฟอร์ม .NET ต่างๆ รวมถึง .NET 3.5, .NET 4.0, .NET 4.6 และ .NET Standard 1.3

Previous Next

เริ่มต้นใช้งาน Open XML SDK

ก่อนอื่น คุณต้องมี .NET Framework 3.5 ขึ้นไป หลังจากนั้น โปรดดาวน์โหลดที่เก็บด้วยตนเองจาก GitHub หรือติดตั้งจาก NuGet

การติดตั้ง Open XML SDK จาก NuGet

 Install-Package DocumentFormat.OpenXml

จัดการไฟล์ DOCX โดยใช้ C #

Open XML SDK ช่วยให้โปรแกรมเมอร์ .NET สร้างและแก้ไขการประมวลผลคำจากแอปพลิเคชัน .NET ของตนเองได้ ในการแก้ไขไฟล์ที่มีอยู่ คุณสามารถเปิดไฟล์ที่มีอยู่และผนวกการเปลี่ยนแปลงต่างๆ เช่น ข้อความ ย่อหน้า ตาราง และอื่นๆ

เพิ่มย่อหน้าใน DOCX - C #

// Open an existing word processing document
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open("fileformat.docx", true))
{
  Body body = wordprocessingDocument.MainDocumentPart.Document.Body;
  // Add paragraph
  Paragraph para = body.AppendChild(new Paragraph());
  Run run = para.AppendChild(new Run());
  run.AppendChild(new Text("File Format Developer Guide"));
}

สร้างตารางใน DOCX โดยใช้ C #

API ช่วยให้นักพัฒนาสามารถเพิ่มตารางในเอกสารการประมวลผลคำ คุณสามารถเพิ่มตาราง ตั้งค่าคุณสมบัติของตาราง ตั้งค่าคุณสมบัติตารางตาราง และคุณสมบัติของตารางคอลัมน์ นอกจากนี้ คุณสามารถจัดการเซลล์ตารางและแถวโดยใช้คลาส TableCell และ TableRow ตามลำดับ

สร้างตารางใน DOCX - C #

// Open an existing word processing document
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open("fileformat.docx", true))
{
  Body body = wordprocessingDocument.MainDocumentPart.Document.Body;
  // Create a table.
  Table table = new Table();
  // Set the style and width for the table.
  TableProperties tableProperties = new TableProperties();
  TableStyle tableStyle = new TableStyle() { Val = "TableGrid" };
  // Make the table width 100% of the page width.
  TableWidth tableWidth = new TableWidth() { Width = "5000", Type = TableWidthUnitValues.Pct };
  // Apply
  tableProperties.Append(tableStyle, tableWidth);
  table.AppendChild(tableProperties);
  // Add columns
  TableGrid tableGrid = new TableGrid(new GridColumn(), new GridColumn(), new GridColumn());
  table.AppendChild(tableGrid);
  // Create 1 row to the table.
  TableRow tableRow = new TableRow();
  // Add a cell to each column in the row.
  TableCell tableCell = new TableCell(new Paragraph(new Run(new Text("Column 1"))));
  TableCell tableCell1 = new TableCell(new Paragraph(new Run(new Text("Column 2"))));
  //Append data
  tableRow.Append(tableCell, tableCell1);
  // Add row to the table.
  table.AppendChild(tableRow);
  // Add the table to the document
  body.AppendChild(table);
}

ส่วนหัวและส่วนท้ายในเอกสารการประมวลผลคำ

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

จัดการส่วนหัวในเอกสาร Word

 
public static void ApplyHeader(WordprocessingDocument doc)
{
  // Get the main document part.
  MainDocumentPart mainDocPart = doc.MainDocumentPart;
  HeaderPart headerPart1 = mainDocPart.AddNewPart("r97");
  Header header1 = new Header();
  Paragraph paragraph1 = new Paragraph(){ };
  Run run1 = new Run();
  Text text1 = new Text();
  text1.Text = "Header stuff";
  run1.Append(text1);
  paragraph1.Append(run1);
  header1.Append(paragraph1);
  headerPart1.Header = header1;
  SectionProperties sectionProperties1 = mainDocPart.Document.Body.Descendants().FirstOrDefault();
  if (sectionProperties1 == null)
  {
  sectionProperties1 = new SectionProperties() { };
  mainDocPart.Document.Body.Append(sectionProperties1);
  }
  HeaderReference headerReference1 = new HeaderReference() { Type = HeaderFooterValues.Default, Id = "r97" };
  sectionProperties1.InsertAt(headerReference1,0);
}

จัดการส่วนท้ายในเอกสาร Word

 
public static void ApplyFooter(WordprocessingDocument doc)
{
  // Get the main document part.
  MainDocumentPart mainDocPart = doc.MainDocumentPart;
  FooterPart footerPart1 = mainDocPart.AddNewPart("r98");
  Footer footer1 = new Footer();
  Paragraph paragraph1 = new Paragraph() { };
  Run run1 = new Run();
  Text text1 = new Text();
  text1.Text = "Footer stuff";
  run1.Append(text1);
  paragraph1.Append(run1);
  footer1.Append(paragraph1);
  footerPart1.Footer = footer1;
  SectionProperties sectionProperties1 = mainDocPart.Document.Body.Descendants().FirstOrDefault();
  if (sectionProperties1 == null)
  {
    sectionProperties1 = new SectionProperties() { };
    mainDocPart.Document.Body.Append(sectionProperties1);
  }
  FooterReference footerReference1 = new FooterReference() { Type = DocumentFormat.OpenXml.Wordprocessing.HeaderFooterValues.Default, Id = "r98" };
  sectionProperties1.InsertAt(footerReference1, 0);
}
 ไทย