Excel'de Programatik Olarak Dairesel Referans Algılama
giriiş
Excel dosyalarıyla çalışırken karşılaşabileceğiniz en sinir bozucu sorunlardan biri dairesel referanstır. Bu, bir formülün doğrudan veya dolaylı olarak kendi hücresine geri referans vermesiyle olur ve Excel’in hesaplama motorunu şaşırtabilecek bir döngü oluşturur. Ancak korkmayın! .NET için Aspose.Cells ile bu sinir bozucu dairesel referansları programatik olarak tespit edebilir, elektronik tablolarınızın işlevsel ve doğru kalmasını sağlayabilirsiniz. Bu kılavuzda, sizi adım adım bu süreçte yönlendireceğiz ve bunu çocuk oyuncağı haline getireceğiz.
Ön koşullar
Dairesel referansları tespit etmenin inceliklerine dalmadan önce, başlamak için ihtiyacınız olan her şeye sahip olduğunuzdan emin olalım:
- Visual Studio: Makinenizde Visual Studio’nun yüklü olduğundan emin olun. Bu sizin geliştirme ortamınız olacaktır.
- .NET Framework: .NET Framework’ün uyumlu bir sürümünü (en azından .NET Framework 4.0) kullandığınızdan emin olun.
- Aspose.Cells Kütüphanesi: Aspose.Cells kütüphanesine sahip olmanız gerekir. Bunu şuradan indirebilirsiniz:Aspose web sitesi.
- Temel C# Bilgisi: Bu dilde kod yazacağımız için C# programlamaya aşina olmanız faydalı olacaktır.
- Excel Dosyası: Test için dairesel referanslar içeren bir Excel dosyası hazırlayın. Basit bir tane oluşturabilir veya bir örnek indirebilirsiniz. Artık ön koşullarımız hazır olduğuna göre, eğlenceli kısma geçebiliriz!
Paketleri İçe Aktar
Kodlamaya başlamadan önce gerekli paketleri içe aktarmanız gerekir. İşte bunu nasıl yapacağınız:
Yeni Bir Proje Oluştur
- Visual Studio’yu açın ve yeni bir C# Konsol Uygulaması projesi oluşturun.
Aspose.Cells Referansını Ekle
- Çözüm Gezgini’nde projenizin üzerine sağ tıklayın.
- “NuGet Paketlerini Yönet” seçeneğini seçin.
- “Aspose.Cells”i arayın ve en son sürümü yükleyin.
Gerekli Ad Alanlarını İçe Aktar
En üstteProgram.cs
dosyaya gerekli ad alanlarını içe aktarın:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Artık her şeyi ayarladığımıza göre, bir Excel dosyasında dairesel referansları tespit etmek için koda dalalım.
Adım 1: Giriş Dizinini Tanımlayın
Öncelikle Excel dosyanızın bulunduğu dizini belirtmeniz gerekir. Excel dosyanızı buraya yükleyeceksiniz.
// Giriş dizini
string sourceDir = "Your Document Directory";
Yer değiştirmek"Your Document Directory"
Excel dosyanızın gerçek yolunu belirtin.
Adım 2: Çalışma Kitabını LoadOptions ile yükleyin
Sonra Excel çalışma kitabınızı yükleyeceksiniz. Sihir burada başlıyor!
LoadOptions loadOptions = new LoadOptions();
var objWB = new Aspose.Cells.Workbook(sourceDir + "Circular Formulas.xls", loadOptions);
Burada, yeni bir örnek oluşturuyoruzLoadOptions
ve belirtilen yoldan çalışma kitabını yükleyin. Excel dosya adınızın eşleştiğinden emin olun!
Adım 3: Yineleme Ayarlarını Etkinleştir
Dairesel referanslara izin vermek için çalışma kitabında yineleme ayarlarını etkinleştirmeniz gerekir.
objWB.Settings.Iteration = true;
Bu, Aspose.Cells’e hesaplama sırasında dairesel referanslara izin vermesini söyler.
Adım 4: Hesaplama Seçenekleri ve Dairesel Monitör Oluşturun
Şimdi hesaplama seçeneklerini ve özel dairesel monitörümüzü oluşturalım.
CalculationOptions copts = new CalculationOptions();
CircularMonitor cm = new CircularMonitor();
copts.CalculationMonitor = cm;
Burada, bir örnek oluşturuyoruzCalculationOptions
ve bir gelenekCircularMonitor
Bu monitör, hesaplamalar sırasında bulunan dairesel referansların izlenmesine yardımcı olacaktır.
Adım 5: Formülleri Hesaplayın
Şimdi çalışma kitabınızdaki formülleri hesaplamanın zamanı geldi.
objWB.CalculateFormula(copts);
Bu satır hesaplamayı gerçekleştirir ve dairesel referansları kontrol eder.
Adım 6: Dairesel Referansları Say
Hesaplamadan sonra kaç adet dairesel referans bulunduğunu sayabilirsiniz.
long lngCircularRef = cm.circulars.Count;
Console.WriteLine("Circular References found - " + lngCircularRef);
Bu, Excel dosyanızda tespit edilen dairesel referansların sayısını çıktı olarak verecektir.
Adım 7: Sonuçları Görüntüle
Son olarak sonuçları görüntüleyelim ve metodumuzun başarıyla çalıştığını doğrulayalım.
Console.WriteLine("DetectCircularReference executed successfully.\r\n");
Adım 8: CircularMonitor Sınıfını Uygulayın
İşlemi tamamlamak için aşağıdakileri uygulamanız gerekir:CircularMonitor
sınıf. Bu sınıf, şu sınıftan miras alacaktır:AbstractCalculationMonitor
ve dairesel referansların tespitini gerçekleştirir.
public class CircularMonitor : AbstractCalculationMonitor
{
public ArrayList circulars = new ArrayList();
public ArrayList Circulars { get { return circulars; } }
public override bool OnCircular(IEnumerator circularCellsData)
{
CalculationCell cc = null;
ArrayList cur = new ArrayList();
while (circularCellsData.MoveNext())
{
cc = (CalculationCell)circularCellsData.Current;
cur.Add(cc.Worksheet.Name + "!" + CellsHelper.CellIndexToName(cc.CellRow, cc.CellColumn));
}
circulars.Add(cur);
return true;
}
}
Bu sınıf, çalışma sayfası adı ve hücre dizini de dahil olmak üzere bulunan her dairesel referansın ayrıntılarını yakalar.
Çözüm
Aspose.Cells for .NET kullanarak Excel’de dairesel referansları tespit etmek, yönetilebilir adımlara böldüğünüzde basit bir işlemdir. Bu kılavuzu izleyerek, elektronik tablolarınızdaki dairesel referansları kolayca belirleyebilir ve işleyebilir, hesaplamalarınızın doğru ve güvenilir kalmasını sağlayabilirsiniz. İster deneyimli bir geliştirici olun, ister yeni başlıyor olun, Aspose.Cells Excel düzenleme yeteneklerinizi geliştirmek için güçlü araçlar sunar.
SSS
Excel’de dairesel başvuru nedir?
Döngüsel başvuru, bir formülün kendi hücresine geri dönmesiyle oluşur ve hesaplamalarda sonsuz bir döngüye neden olur.
Dairesel referansları programatik olarak nasıl tespit edebilirim?
.NET’te Aspose.Cells kütüphanesini kullanarak özel bir hesaplama izleyicisi uygulayarak dairesel referansları programlı olarak algılayabilirsiniz.
Aspose.Cells’i kullanmak için ön koşullar nelerdir?
Visual Studio, .NET Framework ve Aspose.Cells kütüphanesinin yüklü olması gerekiyor.
Aspose.Cells’i ücretsiz kullanabilir miyim?
Evet, Aspose.Cells özelliklerini keşfetmeniz için kullanabileceğiniz ücretsiz bir deneme sürümü sunuyor.
Aspose.Cells hakkında daha fazla bilgiyi nerede bulabilirim?
Ziyaret edebilirsinizAspose.Cells belgeleri Detaylı bilgi ve örnekler için.