Thư viện .NET để tạo tài liệu xử lý văn bản

Đọc, Viết, Thao tác & Chuyển đổi tệp Word, Tạo Bảng trong DOCX thông qua API .NET mã nguồn mở.

Open XML SDK là một API mã nguồn mở, được phát triển bởi Microsoft và được phân phối theo mã nguồn mở của Microsoft để xử lý các Tài liệu Xử lý Văn bản bao gồm DOCX , DOTX , DOCM , DOTM

Sử dụng API, bạn có thể thêm văn bản, đầu trang, chân trang, chú thích cuối trang, chú thích cuối trang, kiểu, chủ đề và hơn thế nữa. Nó cho phép bạn tạo các tài liệu word hiệu suất cao và trích xuất dữ liệu từ chúng. API hỗ trợ các nền tảng .NET khác nhau bao gồm .NET 3.5, .NET 4.0, .NET 4.6 và .NET Standard 1.3.

Previous Next

Bắt đầu với Open XML SDK

Trước hết, bạn yêu cầu phải có .NET Framework 3.5 trở lên. Sau đó, vui lòng tải xuống kho lưu trữ theo cách thủ công từ GitHub hoặc cài đặt nó từ NuGet .

Cài đặt Open XML SDK từ NuGet

 Install-Package DocumentFormat.OpenXml

Thao tác với tệp DOCX bằng C #

Open XML SDK cho phép các lập trình viên .NET tạo cũng như sửa đổi quá trình xử lý văn bản từ các ứng dụng .NET của riêng họ. Để sửa đổi tệp hiện có, bạn có thể mở tệp hiện có và nối các thay đổi như văn bản, đoạn văn, bảng, v.v.

Thêm đoạn văn trong 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"));
}

Tạo bảng trong DOCX bằng C #

API cho phép các nhà phát triển thêm một bảng trong tài liệu Xử lý văn bản. Bạn có thể thêm bảng, đặt thuộc tính bảng, đặt lưới bảng và thuộc tính lưới cột. Hơn nữa, bạn có thể quản lý các ô và hàng trong bảng bằng cách sử dụng các lớp TableCell và TableRow tương ứng.

Tạo bảng trong 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);
}

Đầu trang & Chân trang trong Tài liệu Xử lý Văn bản

Việc tổ chức tài liệu hợp lý là rất quan trọng và là nhu cầu của mọi tổ chức. Đầu trang và chân trang là những phần quan trọng của tài liệu có thể giúp tổ chức hợp lý các tài liệu xử lý văn bản bằng cách đặt một số thông tin bổ sung như ngày tháng, chủ đề có liên quan, tên tác giả, hình ảnh, số trang, v.v. Nó cũng hỗ trợ việc thêm nhiều tiêu đề.

Quản lý tiêu đề trong tài liệu 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);
}

Quản lý chân trang trong tài liệu 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);
}
 Tiếng Việt