نحوه کار با تنظیمات اصلی Workbook در .NET
FOSS Aspose.Cells برای .NET پیکربندی سطح کتابکار را از طریق Workbook.Settings (محلی و سیستم تاریخ)، Workbook.DocumentProperties (متادیتای نویسنده)، Workbook.LoadDiagnostics (گزارش تعمیر)، و SaveOptions (رفتار ذخیره) ارائه میدهد. با یک دستور dotnet add package نصب کنید.
راهنمای گام به گام
مرحله ۱: نصب بسته
dotnet add package Aspose.Cells.FOSSمرحله ۲: وارد کردن فضای نام
using Aspose.Cells_FOSS;
using System.Globalization;مرحله ۳: پیکربندی WorkbookSettings
Workbook.Settings یک شیء WorkbookSettings برمیگرداند. Date1904 = true را برای فایلهای تولید شده توسط macOS که از سیستم تاریخ 1904 استفاده میکنند تنظیم کنید. Culture را برای کنترل زبان تجزیه عدد و تاریخ تنظیم کنید.
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);مرحله ۴: تنظیم ویژگیهای سند
Workbook.DocumentProperties موارد Title، Subject، Author، Keywords، Comments، Category، Company و Manager را به عنوان خصوصیات رشتهای مستقیم افشا میکند.
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);مرحله ۵: استفاده از SaveOptions
Workbook.Save(path, SaveOptions) یک شیء SaveOptions را برای سفارشیسازی خروجی میپذیرد. ویژگیهای کلیدی: UseSharedStrings (اندازه فایل را برای صفحات با رشتههای تکراری کاهش میدهد)، ValidateBeforeSave (قبل از نوشتن اعتبارسنجی را اجرا میکند) و CompactStyles (استایلهای استفاده نشده را حذف میکند).
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.");مرحله ۶: خواندن LoadDiagnostics پس از تعمیر
پس از بارگذاری با TryRepairPackage = true، Workbook.LoadDiagnostics را بررسی کنید تا ببینید آیا تعمیراتی اعمال شده است یا خیر.
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}");مشکلات رایج و راهحلها
WorkbookSaveException when ValidateBeforeSave = true. دفتر کار دارای ناسازگاری ساختاری است. غیرفعال کنید ValidateBeforeSave بهطور موقت برای ذخیره و بررسی فایل، سپس محتوای مشکلدار را اصلاح کنید.
ویژگیهای سند در پنل اطلاعات فایل اکسل قابل مشاهده نیستند. اطمینان حاصل کنید که ویژگیها را روی Workbook.DocumentProperties، نه Workbook.Properties. مورد دوم فقط پرچمهای نمایش را نگه میدارد، نه رشتههای فراداده.
Date1904 = true مقادیر تاریخ را جابجا میکند. Date1904 دورهای که برای شمارههای سری تاریخ استفاده میشود را تغییر میدهد. فقط آن را تنظیم کنید به true برای فایلهایی که از Excel macOS با فعالسازی سیستم تاریخ 1904 ایجاد شدهاند؛ ترکیب سیستمها باعث خطاهای اختلاف 1462 روزی میشود.
پرسشهای متداول
تفاوت WorkbookSettings و WorkbookProperties چیست؟
WorkbookSettings (از طریق Workbook.Settings) مقادیر پیکربندی مانند Date1904 و Culture را نگه میدارد. WorkbookProperties (از طریق Workbook.Properties) پرچمهای نمایش OOXML مانند ShowObjects را ذخیره میکند. رشتههای متادیتای سند (عنوان، نویسنده و غیره) در Workbook.DocumentProperties قرار دارند.
آیا CompactStyles هرگز سبکهایی که نیاز دارم را حذف میکند؟
خیر. CompactStyles فقط سبکهایی را حذف میکند که توسط هیچ سلول یا قانون قالببندی در دفتر کار ارجاع نمیشوند.
آیا میتوانم LoadDiagnostics را حتی وقتی هیچ تعمیر انجام نشده است، بخوانم؟
بله. مجموعه Issues خالی خواهد بود و هر دو HasRepairs و HasDataLossRisk مقدار false را باز خواهند گرداند.