.NET में स्प्रेडशीट कैसे लोड करें
Aspose.Cells FOSS for .NET आपको एकल कंस्ट्रक्टर कॉल के साथ मौजूदा XLSX स्प्रेडशीट खोलने देता है और मामूली संरचनात्मक भ्रष्टाचार वाली फ़ाइलों के लिए एक दोष‑सहिष्णु लोडिंग पथ प्रदान करता है। NuGet से लाइब्रेरी स्थापित करें dotnet add package Aspose.Cells_FOSS.
चरण-दर-चरण गाइड
चरण 1: पैकेज स्थापित करें
dotnet add package Aspose.Cells_FOSSपैकेज मौजूद है, सत्यापित करें:
dotnet list package | grep Aspose.Cells_FOSSचरण 2: नेमस्पेस आयात करें
अपने C# फ़ाइल के शीर्ष पर यह निर्देश जोड़ें:
using Aspose.Cells_FOSS;चरण 3: एक XLSX फ़ाइल लोड करें
फ़ाइल पथ को Workbook कंस्ट्रक्टर को पास करें। लाइब्रेरी XLSX फ़ाइल को पढ़ती है और इन‑मेमोरी वर्कबुक ऑब्जेक्ट को भरती है।
using Aspose.Cells_FOSS;
var wb = new Workbook("data.xlsx");
Console.WriteLine("Loaded " + wb.Worksheets.Count + " sheet(s)");
Console.WriteLine("First sheet: " + wb.Worksheets[0].Name);
Console.WriteLine("A1 value: " + wb.Worksheets[0].Cells["A1"].StringValue);चरण 4: Fault‑Tolerant Repair Options के साथ लोड करें
ZIP या XML भ्रष्टाचार वाली फ़ाइलों के लिए, LoadOptions ऑब्जेक्ट प्रदान करें जिसमें TryRepairPackage और TryRepairXml को true पर सेट किया गया हो। फ़ाइल अपरिवर्तनीय होने की स्थिति में WorkbookLoadException के लिए कॉल को try/catch में लपेटें।
using Aspose.Cells_FOSS;
var opts = new LoadOptions
{
TryRepairPackage = true,
TryRepairXml = true,
};
try
{
var wb = new Workbook("possibly-corrupt.xlsx", opts);
Console.WriteLine("Loaded successfully");
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Unrecoverable file: " + ex.Message);
}चरण 5: लोड डायग्नॉस्टिक्स जांचें
लोड करने के बाद, Workbook.LoadDiagnostics की जाँच करें कि क्या लाइब्रेरी ने कोई मरम्मत लागू की है। HasRepairs true है यदि कोई मरम्मत लागू हुई हो; HasDataLossRisk true है यदि डेटा हटाया गया हो सकता है। व्यक्तिगत DiagnosticEntry रिकॉर्ड तक पहुँचने के लिए Issues को दोहराएँ।
using Aspose.Cells_FOSS;
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;
if (diag.HasRepairs)
{
Console.WriteLine("Repairs were applied. Data loss risk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
Console.WriteLine($" [{entry.Severity}] {entry.Code}: {entry.Message}");
}
else
{
Console.WriteLine("File loaded cleanly — no repairs.");
}चरण 6: कार्यपत्रक डेटा तक पहुँचें
लोड करने के बाद, इंडेक्स या नाम द्वारा वर्कशीट्स तक पहुँचें, और Cell.StringValue या Cell.Value का उपयोग करके सेल मान पढ़ें।
using Aspose.Cells_FOSS;
var wb = new Workbook("data.xlsx");
// By index
var sheet = wb.Worksheets[0];
Console.WriteLine("Sheet: " + sheet.Name);
Console.WriteLine("A1: " + sheet.Cells["A1"].StringValue);
// By name
var named = wb.Worksheets["Report"];
if (named != null)
Console.WriteLine("Report!B2: " + named.Cells["B2"].StringValue);सामान्य समस्याएँ और समाधान
WorkbookLoadException को मरम्मत विकल्प सक्षम होने पर भी फेंका जाता है।
इसका अर्थ है कि फ़ाइल की ZIP संरचना इतनी क्षतिग्रस्त है कि मरम्मत एल्गोरिदम इसे पुनः प्राप्त नहीं कर सकते। फ़ाइल एक वैध ZIP अभिलेख है या नहीं, इसकी पुष्टि करें (उदाहरण के लिए unzip -t file.xlsx आज़माएँ)। यदि फ़ाइल पूरी तरह से भ्रष्ट है, तो इसे किसी भी लाइब्रेरी द्वारा खोला नहीं जा सकता।
लोड किया गया वर्कबुक अपेक्षा से कम शीट्स रखता है।
एक मरम्मत ऑपरेशन ने उन वर्कशीट्स को हटा दिया हो सकता है जो गायब भागों का संदर्भ देती थीं। LoadDiagnostics.Issues में उन प्रविष्टियों की जाँच करें जिनमें DataLossRisk = true है और उपयोगकर्ता को सूचित करें।
लोड करने के बाद सेल मान खाली हैं।
सुनिश्चित करें कि आप सही वर्कशीट इंडेक्स या नाम तक पहुँच रहे हैं। अपेक्षित शीटों की संख्या की पुष्टि करने के लिए wb.Worksheets.Count का उपयोग करें। यह भी जांचें कि XLSX फ़ाइल पासवर्ड‑सुरक्षित नहीं है (पासवर्ड‑सुरक्षित फ़ाइलें वर्तमान में समर्थित नहीं हैं)।
Workbook कंस्ट्रक्टर बड़े फ़ाइल पर अटक जाता है।
कंस्ट्रक्टर सिंक्रोनस है और पूरी फ़ाइल को मेमोरी में लोड करता है। बहुत बड़ी फ़ाइलों के लिए, UI को प्रतिक्रियाशील रखने हेतु लोड को बैकग्राउंड थ्रेड पर चलाएँ।
DiagnosticEntry.Severity दिखाता है Error लेकिन HasRepairs है false।
HasRepairs यह दर्शाता है कि मरम्मत सफलतापूर्वक लागू हुई या नहीं, न कि त्रुटियों का पता चला या नहीं। एक Error-गंभीरता प्रविष्टि जिसमें RepairApplied = false है, इसका अर्थ है कि समस्या का पता चला लेकिन उसे ठीक नहीं किया जा सका — इसे संभावित डेटा अखंडता चेतावनी के रूप में मानें।
अक्सर पूछे जाने वाले प्रश्न
क्या मैं फ़ाइल पथ के बजाय स्ट्रीम से XLSX फ़ाइल लोड कर सकता हूँ?
हाँ। Workbook कंस्ट्रक्टर में ओवरलोड्स होते हैं जो Stream ऑब्जेक्ट को स्वीकार करते हैं। यदि फॉल्ट‑टॉलरेंट लोडिंग की आवश्यकता हो तो अपने स्ट्रीम को LoadOptions इंस्टेंस के साथ पास करें।
क्या लाइब्रेरी पासवर्ड-प्रोटेक्टेड XLSX फ़ाइलों को लोड करने का समर्थन करती है?
पासवर्ड-संरक्षित फ़ाइलें वर्तमान API सतह में नहीं हैं। एक को लोड करने का प्रयास करने पर WorkbookLoadException प्राप्त होगा।
लोड किए गए वर्कबुक में कौन-सा शीट सक्रिय है, इसे मैं कैसे जांचूँ?
फ़ाइल सहेजे जाने पर अंतिम सक्रिय शीट का नाम प्राप्त करने के लिए Workbook.Worksheets.ActiveSheetName पढ़ें।
क्या मैं एक साथ कई XLSX फ़ाइलें लोड कर सकता हूँ?
हाँ। प्रत्येक Workbook उदाहरण स्वतंत्र है। आप कई Workbook वस्तुओं को अलग-अलग थ्रेड्स पर बिना साझा स्थिति के इंस्टैंटिएट कर सकते हैं।
यदि कोई फ़ॉर्मूला सेल लोड किया जाता है और कैश्ड परिणाम अनुपस्थित है तो क्या होता है?
Cell.StringValue एक खाली स्ट्रिंग लौटाता है। Cell.Formula अभी भी फ़ॉर्मूला स्ट्रिंग लौटाता है। कैश किया गया मान केवल तब भरा जाता है जब Excel (या कोई संगत एप्लिकेशन) फ़ाइल को खोलता और सहेजता है।