Cách làm việc với Core Workbook Settings trong .NET

Cách làm việc với Core Workbook Settings trong .NET

Aspose.Cells FOSS for .NET cung cấp cấu hình cấp sổ làm việc thông qua Workbook.Settings (địa phương và hệ thống ngày), Workbook.DocumentProperties (siêu dữ liệu tác giả), Workbook.LoadDiagnostics (báo cáo sửa chữa), và SaveOptions (hành vi lưu). Cài đặt với dotnet add package Aspose.Cells_FOSS.

Hướng Dẫn Từng Bước

Bước 1: Cài đặt gói

dotnet add package Aspose.Cells_FOSS

Bước 2: Nhập không gian tên

using Aspose.Cells_FOSS;
using System.Globalization;

Bước 3: Cấu hình WorkbookSettings

Workbook.Settings trả về một đối tượng WorkbookSettings. Đặt Date1904 = true cho các tệp xuất phát từ macOS sử dụng hệ thống ngày 1904. Đặt Culture để kiểm soát ngôn ngữ khu vực cho việc phân tích số và ngày.

using Aspose.Cells_FOSS;
using System.Globalization;

var wb = new Workbook();
wb.Settings.Date1904 = false;
wb.Settings.Culture = new CultureInfo("en-US");
wb.Worksheets[0].Cells["A1"].PutValue("Settings configured");
wb.Save("settings.xlsx");

var loaded = new Workbook("settings.xlsx");
Console.WriteLine("Date1904: " + loaded.Settings.Date1904);

Bước 4: Đặt Thuộc tính Tài liệu

Workbook.DocumentProperties công khai Title, Subject, Author, Keywords, Comments, Category, CompanyManager dưới dạng các thuộc tính chuỗi trực tiếp.

using Aspose.Cells_FOSS;

var wb = new Workbook();
wb.DocumentProperties.Title = "Quarterly Report";
wb.DocumentProperties.Author = "Reporting Team";
wb.DocumentProperties.Company = "Contoso Ltd";
wb.DocumentProperties.Keywords = "quarterly, sales, 2026";
wb.Save("properties.xlsx");

var loaded = new Workbook("properties.xlsx");
Console.WriteLine("Title: " + loaded.DocumentProperties.Title);
Console.WriteLine("Author: " + loaded.DocumentProperties.Author);

Bước 5: Sử dụng SaveOptions

Workbook.Save(path, SaveOptions) chấp nhận một đối tượng SaveOptions để tùy chỉnh đầu ra. Các thuộc tính chính: UseSharedStrings (giảm kích thước tệp cho các trang tính có chuỗi lặp lại), ValidateBeforeSave (thực hiện kiểm tra hợp lệ trước khi ghi), và CompactStyles (loại bỏ các kiểu không sử dụng).

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 50; i++)
    ws.Cells[i, 0].PutValue("Repeated text");

var opts = new SaveOptions
{
    UseSharedStrings = true,
    ValidateBeforeSave = true,
    CompactStyles = true,
};

wb.Save("compact.xlsx", opts);
Console.WriteLine("Saved with SaveOptions.");

Bước 6: Đọc LoadDiagnostics Sau Khi Sửa chữa

Sau khi tải bằng TryRepairPackage = true, hãy kiểm tra Workbook.LoadDiagnostics để xem có bất kỳ sửa chữa nào đã được áp dụng hay không.

using Aspose.Cells_FOSS;

var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;

Console.WriteLine("HasRepairs: " + diag.HasRepairs);
Console.WriteLine("HasDataLossRisk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
    Console.WriteLine($"  [{entry.Severity}] {entry.Code}: {entry.Message}");

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

WorkbookSaveException khi ValidateBeforeSave = true.
Sổ làm việc chứa một sự không nhất quán cấu trúc. Vô hiệu hoá ValidateBeforeSave tạm thời để lưu và kiểm tra tệp, sau đó sửa nội dung gây vấn đề.

Thuộc tính tài liệu không hiển thị trong bảng Thông tin Tệp của Excel.
Đảm bảo bạn đang đặt thuộc tính trên Workbook.DocumentProperties, không phải Workbook.Properties. Cái sau chứa các cờ hiển thị, không phải chuỗi siêu dữ liệu.

Date1904 = true gây ra sự dịch chuyển giá trị ngày.
Date1904 thay đổi epoch được sử dụng cho các số serial ngày. Chỉ đặt nó thành true cho các tệp xuất phát từ macOS Excel với hệ thống ngày 1904 được bật; việc trộn lẫn các hệ thống gây ra lỗi lệch 1462 ngày.

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

Sự khác biệt giữa WorkbookSettingsWorkbookProperties là gì?

WorkbookSettings (thông qua Workbook.Settings) chứa các giá trị cấu hình như Date1904Culture. WorkbookProperties (thông qua Workbook.Properties) chứa các cờ hiển thị OOXML như ShowObjects. Các chuỗi siêu dữ liệu tài liệu (Tiêu đề, Tác giả, v.v.) nằm trong Workbook.DocumentProperties.

Có bao giờ CompactStyles xóa các kiểu tôi cần không?

Không. CompactStyles chỉ xóa các kiểu không được tham chiếu bởi bất kỳ ô hoặc quy tắc định dạng nào trong sổ làm việc.

Tôi có thể đọc LoadDiagnostics ngay cả khi không có nỗ lực sửa chữa nào không?

Có. Bộ sưu tập Issues sẽ trống và cả HasRepairsHasDataLossRisk sẽ trả về false.

Xem thêm

 Tiếng Việt