कोर वर्कबुक सेटिंग्स के साथ काम करना
कोर वर्कबुक सेटिंग्स के साथ काम करना
वर्कशीट ग्रिड से बाहर, एक वर्कबुक मेटाडेटा और कॉन्फ़िगरेशन ले जाता है जो यह निर्धारित करता है कि एक्सेल इसे कैसे समझता है: डेट सिस्टम, दस्तावेज़ लेखक, लोकेल, और क्या रीकवरी जानकारी संग्रहीत की जाती है। Workbook क्लास इनको Workbook.Settings, Workbook.Properties, और Workbook.LoadDiagnostics के माध्यम से उजागर करती है। सहेजने के व्यवहार को SaveOptions द्वारा नियंत्रित किया जाता है।
वर्कबुक सेटिंग्स
Workbook.Settings एक WorkbookSettings ऑब्जेक्ट लौटाता है। Date1904 को true पर सेट करें ताकि 1904 डेट सिस्टम का उपयोग किया जा सके (macOS एक्सेल से उत्पन्न फ़ाइलों में सामान्य)। Culture को एक CultureInfo इंस्टेंस पर सेट करें ताकि नंबर और डेट पार्सिंग लोकेल को नियंत्रित किया जा सके।
using Aspose.Cells_FOSS;
using System.Globalization;
var wb = new Workbook();
// Use 1904 date system
wb.Settings.Date1904 = true;
// Set culture for number/date formatting
wb.Settings.Culture = new CultureInfo("en-US");
wb.Worksheets[0].Cells["A1"].PutValue("Settings applied");
wb.Save("settings.xlsx");
var loaded = new Workbook("settings.xlsx");
Console.WriteLine("Date1904: " + loaded.Settings.Date1904);दस्तावेज़ गुण
Workbook.Properties एक WorkbookProperties ऑब्जेक्ट लौटाता है जिसमें डिस्प्ले-उन्मुख फ़्लैग्स जैसे ShowObjects और FilterPrivacy होते हैं। लेखन और वर्णनात्मक मेटाडेटा के लिए Workbook.DocumentProperties का उपयोग करें, जो Title, Subject, Author, Keywords, Comments, Category, Company, और Manager को सीधे स्ट्रिंग प्रॉपर्टीज़ के रूप में उजागर करता है।
using Aspose.Cells_FOSS;
var wb = new Workbook();
var doc = wb.DocumentProperties;
doc.Title = "Quarterly Report";
doc.Subject = "Sales Data";
doc.Author = "Reporting Team";
doc.Company = "Contoso Ltd";
doc.Keywords = "sales, quarterly, 2026";
doc.Comments = "Generated by automated pipeline";
wb.Worksheets[0].Cells["A1"].PutValue("See document properties");
wb.Save("properties.xlsx");
var loaded = new Workbook("properties.xlsx");
Console.WriteLine("Title: " + loaded.DocumentProperties.Title);
Console.WriteLine("Author: " + loaded.DocumentProperties.Author);लोड डायग्नोस्टिक्स
वर्कबुक लोड करने के बाद, Workbook.LoadDiagnostics जाँचें यह पता लगाने के लिए कि लाइब्रेरी ने कोई मरम्मत लागू की है या नहीं। LoadDiagnostics.HasRepairs true है यदि कम से कम एक संरचनात्मक मरम्मत की गई है। LoadDiagnostics.HasDataLossRisk true है यदि किसी मरम्मत ने डेटा को हटाया है। व्यक्तिगत DiagnosticEntry ऑब्जेक्ट्स तक पहुँचने के लिए LoadDiagnostics.Issues को इटररेट करें, जिसमें Code, Severity, Message, RepairApplied और DataLossRisk शामिल हैं।
using Aspose.Cells_FOSS;
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
try
{
var wb = new Workbook("possibly-corrupt.xlsx", opts);
var diag = wb.LoadDiagnostics;
if (diag.HasRepairs)
{
Console.WriteLine("Repairs applied: " + diag.HasRepairs);
Console.WriteLine("Data loss risk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
{
Console.WriteLine($" [{entry.Severity}] {entry.Code}: {entry.Message}");
Console.WriteLine($" RepairApplied={entry.RepairApplied}, DataLossRisk={entry.DataLossRisk}");
}
}
else
{
Console.WriteLine("File loaded cleanly.");
}
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Unrecoverable: " + ex.Message);
}सेव विकल्प
Workbook.Save(path, SaveOptions) एक SaveOptions ऑब्जेक्ट को स्वीकार करता है ताकि सहेजने के आउटपुट को अनुकूलित किया जा सके। UseSharedStrings नियंत्रित करता है कि स्ट्रिंग मान साझा स्ट्रिंग टेबल में संग्रहीत हों (बहुत सारी दोहराई गई स्ट्रिंग्स वाली शीट्स के लिए फ़ाइल आकार घटाता है)। ValidateBeforeSave लिखने से पहले आंतरिक वर्कबुक वैलिडेशन चलाता है। CompactStyles अप्रयुक्त स्टाइल्स को हटाता है। PreserveRecoveryMetadata नियंत्रित करता है कि ऑफिस रिकवरी मेटाडेटा संरक्षित रहे।
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 100; i++)
ws.Cells[i, 0].PutValue("Repeated string value");
var opts = new SaveOptions
{
UseSharedStrings = true,
ValidateBeforeSave = true,
CompactStyles = true,
PreserveRecoveryMetadata = false,
};
wb.Save("compact.xlsx", opts);
Console.WriteLine("Saved with SaveOptions.");टिप्स और सर्वोत्तम प्रथाएँ
- मरम्मत किए गए फ़ाइलों को लोड करने के बाद
LoadDiagnostics.HasDataLossRiskजांचें और उपयोगकर्ताओं को चेतावनी दें यदि डेटा हटाया गया हो सकता है। - एंड-यूज़र्स के साथ साझा की जाने वाली फ़ाइलों के लिए
DocumentProperties.AuthorऔरCompanyसेट करें — ये एक्सेल के फ़ाइल जानकारी पैनल में दिखाई देते हैं। UseSharedStrings = trueउन शीट्स के लिए लाभकारी है जिनमें कई दोहराई गई स्ट्रिंग मान होते हैं (जैसे स्थिति कॉलम); यह संख्यात्मक-भारी शीट्स पर न्यूनतम प्रभाव डालता है।- वर्कबुक्स के बीच सेल्स कॉपी करते समय तिथि-मान में विचलन से बचने के लिए स्रोत और लक्ष्य फ़ाइल में
Date1904समान होना चाहिए।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
LoadDiagnostics.Issues मरम्मत के बाद खाली है | कोई मरम्मत आवश्यक नहीं थी या TryRepair* सेट नहीं था | LoadOptions में TryRepairPackage = true और TryRepairXml = true सेट करें |
DocumentProperties.Title स्थायी नहीं रहा | DocumentProperties के बजाय WorkbookProperties का उपयोग किया जा रहा है | स्ट्रिंग मेटाडाटा तक Workbook.DocumentProperties के माध्यम से पहुँचें, Workbook.Properties के बजाय |
WorkbookSaveException को सहेजते समय | ValidateBeforeSave = true के साथ सत्यापन विफलता | अपवर्जन संदेश की जाँच करें; खराब डेटा को अलग करने के लिए सत्यापन अक्षम करें |
FAQ
WorkbookProperties और DocumentProperties में क्या अंतर है?
WorkbookProperties (Workbook.Properties के माध्यम से) OOXML डिस्प्ले फ्लैग्स रखता है (जैसे ShowObjects)। DocumentProperties (Workbook.DocumentProperties के माध्यम से) Dublin-Core-शैली के मेटाडेटा स्ट्रिंग्स रखता है: Title, Author, Company, आदि।
क्या CompactStyles उन शैलीयों को हटाता है जिनकी मुझे जरूरत है?
CompactStyles केवल उन शैलीयों को हटाता है जो किसी भी सेल, कंडीशनल फॉर्मेट, या नामित शैली द्वारा संदर्भित नहीं हैं। उपयोग में वाली शैलीयों को कभी नहीं हटाया जाता।
क्या मैं LoadDiagnostics को पढ़ सकता हूँ भले ही कोई मरम्मत प्रयास न किया गया हो?
हाँ। जब कोई मरम्मत प्रयास नहीं किया गया हो तो Issues संग्रह खाली होता है और दोनों HasRepairs और HasDataLossRisk false लौटाते हैं।
API Reference सारांश
| क्लास / प्रॉपर्टी | विवरण |
|---|---|
Workbook.Settings | वापस देता है WorkbookSettings |
WorkbookSettings.Date1904 | 1904 तिथि प्रणाली का उपयोग करें |
WorkbookSettings.Culture | संख्या/तारीख पार्सिंग के लिए लोकैल |
Workbook.DocumentProperties | लेखक, शीर्षक, कंपनी मेटाडेटा |
Workbook.LoadDiagnostics | लोड-के-बाद मरम्मत रिपोर्ट |
LoadDiagnostics.HasRepairs | true यदि कोई मरम्मत लागू की गई हो |
LoadDiagnostics.HasDataLossRisk | true यदि मरम्मत ने डेटा को त्याग दिया |
LoadDiagnostics.Issues | DiagnosticEntry वस्तुओं का संग्रह |
DiagnosticEntry.Code | संक्षिप्त मरम्मत कोड स्ट्रिंग |
DiagnosticEntry.Severity | DiagnosticSeverity enum मान |
DiagnosticEntry.Message | मानव-पठनीय मरम्मत विवरण |
SaveOptions.UseSharedStrings | स्ट्रिंग्स को साझा स्ट्रिंग टेबल में संग्रहीत करें |
SaveOptions.ValidateBeforeSave | लिखने से पहले आंतरिक वैधता जाँच चलाएँ |
SaveOptions.CompactStyles | अप्रयुक्त शैलियों को हटाएँ |