نحوه کار با تنظیمات اصلی کتابکار در .NET
Aspose.Cells FOSS for .NET تنظیمات سطح کتابکار را از طریق Workbook.Settings (locale and date system)، Workbook.DocumentProperties (author metadata)، Workbook.LoadDiagnostics (repair report) و SaveOptions (save behaviour) در دسترس میگذارد. با dotnet add package Aspose.Cells_FOSS نصب کنید.
راهنمای گام به گام
مرحله 1: نصب بسته
dotnet add package Aspose.Cells_FOSSمرحله ۲: وارد کردن فضای نام
using Aspose.Cells_FOSS;
using System.Globalization;مرحله 3: پیکربندی 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);مرحله 5: از 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.");مرحله 6: خواندن 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 زمانی که ValidateBeforeSave = true.
دفتر کار شامل ناسازگاری ساختاری است. برای ذخیره و بررسی فایل، ValidateBeforeSave را موقتاً غیرفعال کنید، سپس محتوای مشکلدار را اصلاح کنید.
ویژگیهای سند در پنل اطلاعات فایل اکسل قابل مشاهده نیستند.
اطمینان حاصل کنید که ویژگیها را بر روی Workbook.DocumentProperties تنظیم میکنید، نه Workbook.Properties. مورد دوم پرچمهای نمایش را نگه میدارد، نه رشتههای متادیتا.
Date1904 = true باعث جابجایی مقادیر تاریخ میشود.
Date1904 دورهای که برای شمارههای سریال تاریخ استفاده میشود را تغییر میدهد. فقط برای فایلهایی که از Excel macOS با فعال بودن سیستم تاریخ 1904 آمدهاند، آن را به true تنظیم کنید؛ ترکیب سیستمها باعث خطاهای 1462‑روزه میشود.
سوالات متداول
تفاوت بین WorkbookSettings و WorkbookProperties چیست؟
WorkbookSettings (از طریق Workbook.Settings) مقادیر پیکربندی مانند Date1904 و Culture را نگه میدارد. WorkbookProperties (از طریق Workbook.Properties) پرچمهای نمایش OOXML مانند ShowObjects را نگه میدارد. رشتههای متادیتای سند (Title, Author, etc.) در Workbook.DocumentProperties قرار دارند.
آیا CompactStyles هرگز سبکهایی که نیاز دارم را حذف میکند؟
خیر. CompactStyles فقط سبکهایی را حذف میکند که توسط هیچ سلول یا قاعده قالببندی در کتابکار ارجاع داده نشدهاند.
آیا میتوانم LoadDiagnostics را بخوانم حتی وقتی هیچ تعمیر انجام نشده است؟
بله. مجموعه Issues خالی خواهد بود و هر دو HasRepairs و HasDataLossRisk false را برمیگردانند.