.NET'te Bir Elektronik Tablo Nasıl Yüklenir
Aspose.Cells FOSS for .NET, tek bir yapıcı çağrısı ile mevcut XLSX elektronik tablolarını açmanıza olanak tanır ve küçük yapısal bozulmalara sahip dosyalar için hataya toleranslı bir yükleme yolu sağlar. Kütüphaneyi NuGet üzerinden dotnet add package Aspose.Cells_FOSS ile kurun.
Adım Adım Kılavuz
Adım 1: Paketi Yükleyin
dotnet add package Aspose.Cells_FOSSPaketi mevcut olduğunu doğrulayın:
dotnet list package | grep Aspose.Cells_FOSSAdım 2: Ad alanını içe aktar
C# dosyanızın en üstüne bu yönergeyi ekleyin:
using Aspose.Cells_FOSS;Adım 3: Bir XLSX Dosyası Yükle
Dosya yolunu Workbook yapıcıya geçirin. Kütüphane XLSX dosyasını okur ve bellek içi çalışma kitabı nesnesini doldurur.
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);Adım 4: Hata Toleranslı Onarım Seçenekleriyle Yükle
ZIP veya XML bozulması olabilecek dosyalar için, LoadOptions nesnesini TryRepairPackage ve TryRepairXml‘yi true olarak ayarlayarak sağlayın. Dosya kurtarılamaz durumda olursa, WorkbookLoadException için try/catch içinde çağrıyı sarmalayın.
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);
}Adım 5: Yük Tanılamalarını Kontrol Et
Yükleme sonrası, kütüphanenin herhangi bir onarım uygulayıp uygulamadığını görmek için Workbook.LoadDiagnostics inceleyin. HasRepairs, bir onarım uygulanmışsa true; veri atılmış olabilecekse HasDataLossRisk, true. Tek tek DiagnosticEntry kayıtlarına erişmek için Issues yineleyin.
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.");
}Adım 6: Çalışma Sayfası Verilerine Erişim
Yükleme işleminden sonra, çalışma sayfalarına dizin veya ad ile erişin ve hücre değerlerini Cell.StringValue veya Cell.Value kullanarak okuyun.
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);Yaygın Sorunlar ve Çözümler
WorkbookLoadException onarım seçenekleri etkin olsa bile atılır.
Bu, dosyanın ZIP yapısının onarım algoritmalarının kurtarması için çok hasar gördüğü anlamına gelir. Dosyanın geçerli bir ZIP arşivi olduğunu doğrulayın (ör. unzip -t file.xlsx deneyin). Dosya tamamen bozuksa, hiçbir kütüphane tarafından açılamaz.
Yüklenen çalışma kitabı beklenenden daha az sayfa içeriyor.
Bir onarım işlemi, eksik bölümlere başvuran çalışma sayfalarını düşürmüş olabilir. LoadDiagnostics.Issues içinde DataLossRisk = true içeren girişleri kontrol edin ve kullanıcıyı bilgilendirin.
Yükleme sonrası hücre değerleri boş.
Doğru çalışma sayfası dizini veya adını kullandığınızdan emin olun. Beklenen sayfa sayısını doğrulamak için wb.Worksheets.Count kullanın. Ayrıca XLSX dosyasının şifre korumalı olmadığını kontrol edin (şifre korumalı dosyalar şu anda desteklenmemektedir).
Workbook yapıcı büyük bir dosyada takılıyor.
Yapıcı senkronizedir ve tüm dosyayı belleğe yükler. Çok büyük dosyalar için, UI’nin yanıt vermeye devam etmesi amacıyla yüklemeyi arka plan iş parçacığında çalıştırın.
DiagnosticEntry.Severity gösterir Error ancak HasRepairs, false‘dir.HasRepairs, bir onarımın başarılı bir şekilde uygulanıp uygulanmadığını, hataların tespit edilip edilmediğini değil, gösterir. An Error-ciddiyetli giriş, RepairApplied = false ile birlikte, sorunun tespit edildiği ancak onarılamadığı anlamına gelir — bunu olası bir veri bütünlüğü uyarısı olarak ele alın.
Sıkça Sorulan Sorular
Bir dosya yolu yerine bir Stream’ten XLSX dosyası yükleyebilir miyim?
Evet. Workbook yapıcı, bir Stream nesnesini kabul eden aşırı yüklemelere sahiptir. Hata toleranslı yükleme gerekiyorsa akışınızı bir LoadOptions örneğiyle birlikte geçirin.
Kütüphane, şifre korumalı XLSX dosyalarını yüklemeyi destekliyor mu?
Şifre korumalı dosyalar mevcut API yüzeyinde bulunmamaktadır. Birini yüklemeye çalışmak WorkbookLoadException hatasına yol açar.
Yüklenen çalışma kitabında aktif olan sayfayı nasıl kontrol ederim?
Dosya kaydedildiğinde en son etkin olan sayfanın adını almak için Workbook.Worksheets.ActiveSheetName‘yi okuyun.
Birden fazla XLSX dosyasını aynı anda yükleyebilir miyim?
Evet. Her Workbook örneği bağımsızdır. Paylaşılan durum olmadan ayrı iş parçacıklarında birden fazla Workbook nesnesi oluşturabilirsiniz.
Bir formül hücresi yüklendiğinde ve önbelleğe alınmış sonuç yoksa ne olur?
Cell.StringValue boş bir dize döndürür. Cell.Formula hâlâ formül dizesini döndürür. Önbelleğe alınan değer yalnızca Excel (veya uyumlu bir uygulama) dosyayı açıp kaydettiğinde doldurulur.