XLSX Dosyalarını C#’ta Akışlar Kullanarak Nasıl Karşılaştırılır – Tam Kılavuz
Excel elektronik tablolarını manuel olarak karşılaştırmak zahmetli ve hataya açıktır, özellikle büyük finansal raporları doğrulamanız veya veri setlerini denetlemeniz gerektiğinde. Bu öğreticide how to compare xlsx dosyalarını GroupDocs.Comparison for .NET ile akış tabanlı işleme kullanarak verimli bir şekilde nasıl karşılaştıracağınızı keşfedeceksiniz. Her adımı adım adım gösterecek, akışların neden önemli olduğunu açıklayacak ve kendi projelerinizde kopyalayabileceğiniz pratik ipuçları vereceğiz.
Hızlı Yanıtlar
- Excel karşılaştırmasını hangi kütüphane yönetir? GroupDocs.Comparison for .NET.
- Dosyaları diske kaydetmeden karşılaştırabilir miyim? Evet—akışları doğrudan bellek içi veriyle çalışmak için kullanın.
- Üretim için lisans gerekli mi? Ticari bir lisans zorunludur; ücretsiz bir deneme mevcuttur.
- Hangi .NET sürümleri destekleniyor? .NET Framework 4.5+, .NET Core 3.1+, .NET 5/6/7.
- Kaç Excel formatı kapsanıyor? .xls, .xlsx, .xlsm ve .csv dahil olmak üzere 20’den fazla format.
“how to compare xlsx” nedir?
“How to compare xlsx”, iki Excel çalışma kitabı dosyası arasındaki farkları programlı olarak tespit etmeyi ifade eder. GroupDocs.Comparison for .NET her çalışma kitabını okur, hücre‑seviyesindeki değişiklikleri değerlendirir ve ekleme, silme ve değişiklikleri gösteren vurgulanmış bir sonuç belgesi oluşturur. Karşılaştırma değişen hücreleri, satırları ve sayfaları vurgular, böylece farkları bir bakışta incelemek kolay olur.
Neden akış‑tabanlı karşılaştırma kullanmalı?
Akış işleme, dosyaları tüm çalışma kitabını RAM’e yüklemek yerine parçalar halinde okuyarak bellek baskısını azaltır. GroupDocs.Comparison 50 + giriş ve çıkış formatını işleyebilir ve çok sayfalı elektronik tabloları tipik sunucu donanımında en yüksek bellek kullanımını 100 MB’nin altında tutarak işleyebilir. Bu, web hizmetleri, mikro‑servisler ve yerinde toplu işler için ideal kılar.
Önkoşullar
- GroupDocs.Comparison for .NET – resmi siteden here indirin.
- C# development environment – Visual Studio 2022 veya .NET 6+ destekleyen herhangi bir IDE.
- Excel files – karşılaştırmak istediğiniz iki
.xlsxçalışma kitabı. - Basic understanding of streams – örnek boyunca kullanılan
System.IO.Streamkavramları.
Ad Alanlarını İçe Aktarma
Aşağıdaki ad alanları, karşılaştırma motoru ve akış yardımcı araçlarına erişim sağlar.
GroupDocs.Comparison ad alanı temel karşılaştırma sınıflarını içerirken, System.IO akış yönetimi için gerekli FileStream ve MemoryStream türlerini sağlar.
Adım‑Adım Uygulama Kılavuzu
Akışların kullanılması performansı nasıl etkiler?
File.OpenRead() ile her çalışma kitabını yükleyin ve elde edilen akışı doğrudan karşılaştırıcıya geçirin. Bu yaklaşım geçici dosyaları önler, SSD depolamada I/O süresini %30’a kadar azaltır ve işlemi tamamen bellek içinde tutar; bu, yüksek verimli web API’leri için kritik öneme sahiptir.
Adım 1: Çıktı Değişkenlerini Başlatma
Karşılaştırma sonucunun nerede saklanacağını tanımlayın. Path.Combine() kullanmak, Windows, Linux veya macOS’ta doğru dizin ayırıcıyı garanti eder.
Pro Tip: Üretimde, uygulama dizinini temiz tutmak için çıktıyı geçici bir klasöre veya bulut depolama kovasına yazın.
Adım 2: Comparer Nesnesi Oluşturma
Comparer sınıfı, iki veya daha fazla belgenin karşılaştırmasını yöneten merkezi bileşendir.
Kaynak çalışma kitabını File.OpenRead() ile açarak bir Comparer örneği oluşturun. using ifadesi, dosya akışının otomatik olarak kapanmasını sağlar ve dosya tutamağı sızıntılarını önler.
Adım 3: Hedef Belgeyi Ekleme
İkinci çalışma kitabını karşılaştırıcıya ekleyin. Bir ana dosyayı birden fazla varyantla karşılaştırmanız gerektiğinde ek hedefler zincirleyebilirsiniz—bölgesel raporlama veya sürüm kontrol senaryoları için faydalıdır.
Adım 4: Karşılaştırmayı Gerçekleştirme
Compare metodunu çağırarak fark belgesini oluşturun. Sonuç, File.Create() ile oluşturulan yeni bir akısa yazılır. Çıktı dosyası tüm değişen hücreleri, satırları ve sayfaları vurgular, böylece görsel inceleme basit olur.
Compare metodu karşılaştırmayı yürütür ve sonuç belgesini bir akış olarak döndürür.
Adım 5: Başarı Mesajını Görüntüleme
Karşılaştırma tamamlandıktan sonra, çıktı yolunu içeren kısa bir başarı mesajı kaydedin. Gerçek bir API’de, akışı çağırana döndürür veya daha sonra erişim için bulut depolamaya kaydedersiniz.
Yaygın Sorunlar ve Sorun Giderme
- Dosya‑kullanımda hataları: Diğer bir sürecin (Excel dahil) dosyayı açık tutmadığından emin olun.
File.OpenRead()ile açılan akışlar, çoğu çakışmayı azaltan yalnızca‑okunur paylaşım kilidi alır. - Büyük dosyalarda bellek dalgalanmaları: 100 MB’yi aşan çalışma kitapları için
ComparerOptionsEnableMemoryOptimizationbayrağını (varsa) etkinleştirin ve sürecin özel belleğini izleyin. - Karışık format karşılaştırmaları: GroupDocs.Comparison tutarlı format çiftlerini destekler; aynı işlemde bir
.xlsdosyasını.xlsxdosyasıyla karşılaştırmaktan kaçının, böylece düzen uyumsuzlukları önlenir. - Akış konumlandırması: Bir akışı yeniden kullanırken, karşılaştırıcıya geçirmeden önce her zaman
stream.Seek(0, SeekOrigin.Begin)ile sıfırlayın.
Sağlam hata yönetimi: Bozuk çalışma kitapları için ComparisonException yakalayın ve dosya adını daha sonra inceleme amacıyla kaydedin.ComparisonException, giriş belgesi bozuk olduğunda veya desteklenmeyen bir format kullandığında GroupDocs.Comparison tarafından atılır.
Performans ve En İyi Uygulamalar
- Akışları hemen serbest bırakın: Her
FileStreami birusingbloğu içinde sarın. - Toplu işleme: Birden fazla dosya çiftini aynı anda işlemek için async karşılaştırıcılarla
Parallel.ForEachkullanın, ancak CPU aşırı yüklenmesini önlemek için paralellik derecesini sınırlayın. - Sağlam hata yönetimi: Bozuk çalışma kitapları için
ComparisonExceptionyakalayın ve dosya adını daha sonra inceleme amacıyla kaydedin. - Giriş akışlarını doğrulayın: Karşılaştırmadan önce MIME tipini veya dosya başlığını kontrol ederek Excel olmayan yüklemeleri erken reddedin.
ComparerOptions, bellek optimizasyonu ve duyarlılık kontrolleri gibi karşılaştırma süreci için yapılandırma ayarları sağlar.
İleri Düzey Kullanım Senaryoları
- Veritabanı BLOB karşılaştırması: Excel BLOB’unu SQL Server’dan alın, bir
MemoryStreamiçine sarın ve doğrudan karşılaştırıcıya besleyin—geçici dosya gerekmez. - Bulut depolama entegrasyonu: Azure Blob Storage SDK’sını kullanarak bir
BlobStreamelde edin ve karşılaştırıcıya geçirin, tam sunucusuz iş akışlarını etkinleştirir. - Gerçek‑zamanlı API uç noktası: İki multipart/form‑data dosyasını kabul eden bir POST uç noktası açın, dosyaları anında karşılaştırın ve farkı indirilebilir bir akış olarak döndürün.
Sonuç
GroupDocs.Comparison’ın akış‑tabanlı API’sini kullanarak, C#’ta XLSX dosyalarını bellek‑verimli, güvenli ve ölçeklenebilir bir şekilde karşılaştırabilirsiniz. Bu kılavuz, kurulumdan ileri bulut senaryolarına kadar her şeyi kapsadı ve elektronik tablo karşılaştırmasını herhangi bir .NET çözümüne entegre etmek için sağlam bir temel sağladı.
Sıkça Sorulan Sorular
S: GroupDocs.Comparison for .NET tüm Excel formatlarıyla uyumlu mu?
C: Evet, .xls, .xlsx, .xlsm ve .csv dahil olmak üzere 20’den fazla Excel‑ile ilgili formatı destekler, böylece eski ve modern çalışma kitapları arasında geniş uyumluluk sağlar.
S: Karşılaştırma sonucunun görsel stilini özelleştirebilir miyim?
C: Kesinlikle. API, vurgulama renklerini ayarlamanıza, kenar stilini değiştirmenize ve ComparisonOptions aracılığıyla değişim duyarlılık seviyesini ayarlamanıza olanak tanır.
S: Üretim kullanımında ticari lisansa ihtiyacım var mı?
C: Herhangi bir ticari dağıtım için geçerli bir GroupDocs.Comparison lisansı gereklidir. Bir lisans here adresinden temin edilebilir.
S: Ücretsiz deneme mevcut mu?
C: Evet, satın almadan önce tüm özellikleri değerlendirebileceğiniz tam işlevsel bir deneme sürümünü here adresinden indirebilirsiniz.
S: Topluluk desteğini nereden alabilirim?
C: GroupDocs.Comparison forumu here, diğer geliştiricilere sorular sorabileceğiniz ve çözümler paylaşabileceğiniz aktif bir yerdir.
Son Güncelleme: 2026-06-21
Test Edilen Sürüm: GroupDocs.Comparison 23.10 for .NET
Yazar: GroupDocs
using System;
using System.IO;
string outputDirectory = "Your Document Directory";
string outputFileName = Path.Combine(outputDirectory, "result.xlsx");
using (Comparer comparer = new Comparer(File.OpenRead("source.xlsx")))
comparer.Add(File.OpenRead("target.xlsx"));
comparer.Compare(File.Create(outputFileName));
Console.WriteLine($"\nDocuments compared successfully.\nCheck output in {outputDirectory}.");