Tài liệu MS Word được sử dụng rộng rãi để lưu giữ và chia sẻ thông tin. Trong một số trường hợp, bạn có thể cần tách dữ liệu từ tài liệu Word có thể nằm trong các phần hoặc trang khác nhau. Ngoài ra, bạn có thể cần chia các trang của một tài liệu thành nhiều tài liệu. Theo các tình huống như vậy, bài viết này nhằm mục đích chỉ cho bạn cách chia tài liệu MS Word theo chương trình bằng C#.
- API C# để tách tài liệu MS Word
- Tách tài liệu Word theo phần bằng C#
- Tách trang tài liệu Word theo trang bằng C#
- Sử dụng Phạm vi Trang để Tách Tài liệu Word bằng C#
API C# để chia tài liệu MS Word
Aspose.Words for .NET là một API xử lý văn bản mạnh mẽ cho phép bạn tạo và thao tác với các tài liệu MS Word bằng C# hoặc VB.NET. Cùng với đó, nó cũng cho phép bạn chia tài liệu MS Word theo phần, trang hoặc phạm vi trang. Bạn có thể tải xuống API hoặc cài đặt nó trong ứng dụng của mình bằng NuGet.
PM> Install-Package Aspose.Words
Tách tài liệu Word theo phần bằng C#
Các phần đề cập đến các phần của tài liệu có thể áp dụng các định dạng khác nhau. Một phần có thể bao gồm một trang, một loạt các trang hoặc toàn bộ tài liệu. Dấu ngắt phần được sử dụng để chia tài liệu thành nhiều phần. Sau đây là các bước để phân chia tài liệu Word dựa trên các phần của nó bằng cách sử dụng Aspose.Words for .NET.
- Tải tài liệu Word bằng lớp Document.
- Lặp lại các phần của trang bằng thuộc tính Document.Sections.
- Sao chép phần này vào một đối tượng Section mới.
- Tạo một đối tượng Document mới.
- Thêm phần vào Document mới bằng phương thức Document.Sections.Add(Section).
- Lưu tài liệu bằng phương thức Document.Save(String).
Mẫu mã sau đây cho biết cách chia tài liệu MS Word theo các phần bằng C#.
// Mở một tài liệu Word
Document doc = new Document("document.docx");
for (int i = 0; i < doc.Sections.Count; i++)
{
// Chia tài liệu thành các phần nhỏ hơn, trong trường hợp này là chia theo phần
Section section = doc.Sections[i].Clone();
// Tạo một tài liệu mới
Document newDoc = new Document();
newDoc.Sections.Clear();
Section newSection = (Section)newDoc.ImportNode(section, true);
newDoc.Sections.Add(newSection);
// Lưu từng phần dưới dạng tài liệu riêng biệt
newDoc.Save($"splitted_{i}.docx");
}
Tách trang tài liệu Word theo trang bằng C#
Có thể xảy ra trường hợp tài liệu Word chứa một loại thông tin tương tự trên mỗi trang, chẳng hạn như hóa đơn hoặc biên lai. Trong trường hợp này, bạn có thể tách các trang của tài liệu để lưu từng hóa đơn thành một tài liệu riêng biệt. Để chia trang tài liệu theo trang, bạn có thể sử dụng lớp trợ giúp DocumentPageSplitter dựa trên Aspose.Words for .NET. Bạn có thể chỉ cần sao chép lớp trong dự án của mình và chia trang tài liệu Word theo từng trang bằng cách thực hiện theo các bước bên dưới.
- Tải tài liệu Word bằng lớp Document.
- Tạo một đối tượng của lớp DocumentPageSplitter và khởi tạo nó với đối tượng Document.
- Lặp lại qua các trang của tài liệu.
- Trích xuất từng trang thành một đối tượng Tài liệu mới bằng cách sử dụng phương thức DocumentPageSplitter.GetDocumentOfPage(int PageIndex).
- Lưu từng tài liệu bằng phương pháp Document.Save(String).
Mẫu mã sau đây cho biết cách chia tài liệu Word theo trang bằng C#.
// Mở một tài liệu Word
Document doc = new Document("Document.docx");
// Tạo và khởi tạo bộ chia trang tài liệu
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// Lưu từng trang dưới dạng một tài liệu riêng biệt
for (int page = 1; page <= doc.PageCount; page++)
{
Document pageDoc = splitter.GetDocumentOfPage(page);
pageDoc.Save($"spliteed_{page}.docx");
}
Tách tài liệu Word theo phạm vi trang bằng C#
Bạn cũng có thể chỉ định một phạm vi trang để tách nó ra khỏi tài liệu gốc bằng cách sử dụng lớp DocumentPageSplitter. Ví dụ: nếu bạn cần chia trang từ 2 thành 4, chỉ cần chỉ định chỉ mục của trang bắt đầu và trang kết thúc trong phương thức DocumentPageSplitter.GetDocumentOfPageRange(int StartIndex, int EndIndex).
Mẫu mã sau đây cho thấy cách tách một phạm vi trang từ tài liệu Word bằng C#.
// Mở một tài liệu Word
Document doc = new Document("document.docx");
// Tạo và khởi tạo bộ chia trang tài liệu
DocumentPageSplitter splitter = new DocumentPageSplitter(doc);
// Nhận phạm vi trang
Document pageDoc = splitter.GetDocumentOfPageRange(3, 6);
pageDoc.Save("splitted.docx");
Sự kết luận
Trong bài viết này, bạn đã học cách chia tài liệu MS Word theo chương trình bằng C#. Các tình huống chia nhỏ tài liệu Word theo phần, trang và phạm vi trang đã được thảo luận cùng với các mẫu mã. Bạn có thể khám phá thêm về Aspose.Words for .NET bằng cách sử dụng tài liệu.