Cách xuất và lưu tài liệu Word trong .NET

Cách xuất và lưu tài liệu Word trong .NET

Hướng dẫn này chỉ cách xuất và lưu một tài liệu Word với Aspose.Words FOSS cho .NET: lưu với định dạng suy ra hoặc rõ ràng, cấu hình các tùy chọn lưu OOXML, xuất ra Markdown, xuất ra văn bản thuần, và phát hiện định dạng của tệp trước khi chuyển đổi. Aspose.Words FOSS cho .NET có sẵn qua NuGet hoặc bằng cách biên dịch từ mã nguồn.

Hướng dẫn từng bước

Bước 1: Lấy thư viện

Sao chép kho và biên dịch Aspose.Words.sln trong cấu hình Release, sau đó thêm tham chiếu dự án tới Aspose.Words.csproj từ dự án .NET của bạn, như mô tả trong Hướng dẫn cài đặt. Thêm using Aspose.Words; ở đầu bất kỳ tệp nào lưu tài liệu.


Bước 2: Lưu với định dạng suy ra hoặc rõ ràng

Document.Save(fileName) suy ra định dạng đích từ phần mở rộng của tệp. Save(fileName, saveFormat) làm cho định dạng trở nên rõ ràng bất kể phần mở rộng bằng cách nhận một giá trị enum SaveFormat, và Save(fileName, saveOptions) (hoặc các overload Stream tương ứng) nhận một lớp con SaveOptions để kiểm soát riêng cho định dạng. SaveOptions.CreateSaveOptions(saveFormat) là một nhà máy tĩnh trả về lớp con tùy chọn phù hợp với các giá trị mặc định đã được thiết lập cho một SaveFormat nhất định. Phiên bản này lưu hoàn toàn cả vào và từ DOCX, DOCM, DOTX, DOTM và Flat OPC (cùng với các biến thể hỗ trợ macro và mẫu), cũng như Markdown và văn bản thuần.


Bước 3: Cấu hình tùy chọn xuất OOXML

OoxmlSaveOptions cấu hình việc lưu vào bất kỳ biến thể Open XML nào. Thuộc tính SaveFormat của nó chọn DOCX, DOCM, DOTX, DOTM, hoặc Flat OPC một cách cụ thể; Password đặt mật khẩu mở cho tệp đã lưu, độc lập với hạn chế chỉnh sửa của Document.Protect; Compliance chọn mức độ nghiêm ngặt của OOXML; và CompressionLevel / Zip64Mode kiểm soát việc đóng gói ZIP nền tảng. Tạo một cái bằng new OoxmlSaveOptions(saveFormat) hoặc thông qua SaveOptions.CreateSaveOptions(saveFormat).


Bước 4: Xuất sang Markdown

MarkdownSaveOptions kiểm soát việc xuất Markdown: ListExportMode và LinkExportMode quyết định cách danh sách và siêu liên kết được hiển thị, ImagesFolder / ImagesFolderAlias kiểm soát nơi các hình ảnh đã trích xuất được lưu và cách chúng được tham chiếu, ExportImagesAsBase64 nhúng chúng vào nội dung thay vì ghi thành các tệp riêng, và TableContentAlignment ảnh hưởng đến đánh dấu bảng được tạo. Gửi một thể hiện MarkdownSaveOptions tới Document.Save(fileName, saveOptions) với tên tệp .md, hoặc đặt SaveFormat của nó một cách rõ ràng.


Bước 5: Xuất sang Văn bản Thuần

TxtSaveOptions (thông qua cơ sở chung TxtSaveOptionsBase, cũng được MarkdownSaveOptions sử dụng) kiểm soát việc xuất văn bản thuần: Encoding đặt mã ký tự, ParagraphBreak đặt chuỗi kết thúc dòng, MaxCharactersPerLine gói các dòng dài, SimplifyListLabels chuẩn hoá các dấu đầu mục và số của danh sách thành ký tự thuần, và PreserveTableLayout giữ cho các cột bảng được căn chỉnh bằng cách sử dụng khoảng trắng.


Bước 6: Phát hiện định dạng trước khi chuyển đổi

Trước khi chuyển đổi một tệp có định dạng không xác định, FileFormatUtil.DetectFileFormat(fileName) trả về một FileFormatInfo với LoadFormat đã phát hiện. Kết hợp nó với FileFormatUtil.LoadFormatToSaveFormat(loadFormat) để kiểm tra xem định dạng đó có thể quay lại qua các định dạng được hỗ trợ của phiên bản này trước khi gọi Document.Save. Một số thành viên enum SaveFormat tồn tại để hoàn thiện API nhưng tên các định dạng này đã được rút gọn, phiên bản mã nguồn mở không triển khai bộ đọc hoặc ghi hoạt động cho chúng; hãy dùng họ DOCX/DOCM/DOTX/DOTM/Flat OPC cùng với Markdown và văn bản thuần để có đầu ra đáng tin cậy.

Các vấn đề thường gặp và cách khắc phục

Save(fileName) viết sai định dạng. Phần mở rộng tệp không khớp với định dạng mong muốn. Sử dụng Save(fileName, saveFormat) or Save(fileName, saveOptions) để làm rõ định dạng thay vì phụ thuộc vào phần mở rộng.

Tập tin OOXML đã lưu sẽ không mở được khi có mật khẩu. OoxmlSaveOptions.Password không được đặt trước khi lưu. Tạo một OoxmlSaveOptions, đặt Password, và truyền nó cho Save.

Xuất Markdown phân tán các tệp hình ảnh một cách bất ngờ. Default MarkdownSaveOptions hành vi này trích xuất hình ảnh ra các tệp riêng. Đặt ExportImagesAsBase64 = true để có một tệp Markdown tự chứa, hoặc đặt ImagesFolder để kiểm soát nơi hình ảnh được đặt.

Xuất dạng văn bản thuần mất căn chỉnh cột bảng. TxtSaveOptions.PreserveTableLayout được để ở mặc định. Đặt PreserveTableLayout = true trước khi lưu.

Các câu hỏi thường gặp

Làm thế nào để lưu ở định dạng cụ thể bất kể phần mở rộng tệp?

Gọi Save(fileName, saveFormat) với một giá trị SaveFormat rõ ràng, hoặc Save(fileName, saveOptions) với một lớp con SaveOptions phù hợp.

Các định dạng nào có thể vòng quay cả hai chiều trong phiên bản này?

DOCX, DOCM, DOTX, DOTM, Flat OPC (cùng các biến thể hỗ trợ macro và mẫu), Markdown, và văn bản thuần.

Làm sao để tôi bảo vệ tệp đã lưu bằng mật khẩu sao cho không thể mở được?

Đặt Password trên một đối tượng OoxmlSaveOptions và truyền nó cho Document.Save(fileName, saveOptions).

Làm sao tôi có thể kiểm soát kết thúc dòng trong tệp văn bản đã xuất?

Đặt ParagraphBreak trên một đối tượng TxtSaveOptions trước khi lưu.

Làm sao tôi kiểm tra định dạng của tệp trước khi chuyển đổi nó?

Gọi FileFormatUtil.DetectFileFormat(fileName) và đọc FileFormatInfo.LoadFormat trả về.

Xem thêm

 Tiếng Việt