Formülleri Hesapla
Formüller Ekleyin ve Sonuçlarını Hesaplayın
Aspose.Cells, yerleşik bir formül hesaplama motoruna sahiptir. Sadece tasarımcı şablonlarından içe aktarılan formülleri yeniden hesaplayabileceği gibi, çalışma zamanında eklenen formül sonuçlarını da hesaplama desteği sağlar.
Aspose.Cells, Microsoft Excel’in bir parçası olan çoğu formül veya işlevi destekler (Okumak için hesaplama motoru tarafından desteklenen fonksiyonların listesi). Bu işlevler API’ler veya tasarımcı elektronik tablolar aracılığıyla kullanılabilir. Aspose.Cells, matematiksel, dize, mantıksal, tarih/saat, istatistiksel, veritabanı, arama ve referans formüllerinin büyük bir setini destekler.
Bir hücreye formül eklemek için Cell sınıfının Formula özelliğini veya SetFormula(…) yöntemlerini kullanın. Bir formül uygularken, her zaman bir eşittir işareti ile ( = ) başlayın, Microsoft Excel’de bir formül oluştururken yaptığınız gibi ve bir virgül ( , ) kullanarak fonksiyon parametrelerini sınırlayın.
Formüllerin sonuçlarını hesaplamak için, kullanıcı, Workbook sınıfının CalculateFormula yöntemini çağırabilir, bir Excel dosyasına gömülü olan tüm formülleri işleyen. Veya, kullanıcı, Worsheet sınıfının CalculateFormula yöntemini çağırabilir, bir sayfaya gömülü olan tüm formülleri işleyen. Ya da, kullanıcı, Cell sınıfının Calculate yöntemini çağırabilir, bir Hücrenin formülünü işleyen:
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Adding a new worksheet to the Excel object | |
int sheetIndex = workbook.Worksheets.Add(); | |
// Obtaining the reference of the newly added worksheet by passing its sheet index | |
Worksheet worksheet = workbook.Worksheets[sheetIndex]; | |
// Adding a value to "A1" cell | |
worksheet.Cells["A1"].PutValue(1); | |
// Adding a value to "A2" cell | |
worksheet.Cells["A2"].PutValue(2); | |
// Adding a value to "A3" cell | |
worksheet.Cells["A3"].PutValue(3); | |
// Adding a SUM formula to "A4" cell | |
worksheet.Cells["A4"].Formula = "=SUM(A1:A3)"; | |
// Calculating the results of formulas | |
workbook.CalculateFormula(); | |
// Get the calculated value of the cell | |
string value = worksheet.Cells["A4"].Value.ToString(); | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); |
Formüller İçin Bilinmesi Gerekenler
Formülün Doğrudan Hesaplanması
Aspose.Cells, gömülü bir formül hesaplama motoruna sahiptir. Bir tasarımcı dosyasından içe aktarılmış formülleri hesaplamanın yanı sıra, Aspose.Cells, formül sonuçlarını doğrudan hesaplamayı da destekler.
Bazen, bir elektronik tabloya formül eklemadan, formülde kullanılan hücre değerlerinin sonuçlarını, Microsoft Excel formülüne dayalı olarak bulmanız gerekebilir. Formülde kullanılan hücrelerin değerleri zaten bir elektronik tabloda mevcutsa ve ihtiyacınız olan tek şey bir elektronik tabloya formül eklemek değilse, Aspose.Cells’in formül hesaplama motoru API’lerini kullanarak bu tür formüllerin sonuçlarını {0} için {1} hesaplayabilirsiniz.
Yukarıdaki kod aşağıdaki çıktıyı üretir:
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Create a workbook | |
Workbook workbook = new Workbook(); | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Put 20 in cell A1 | |
Cell cellA1 = worksheet.Cells["A1"]; | |
cellA1.PutValue(20); | |
// Put 30 in cell A2 | |
Cell cellA2 = worksheet.Cells["A2"]; | |
cellA2.PutValue(30); | |
// Calculate the Sum of A1 and A2 | |
var results = worksheet.CalculateFormula("=Sum(A1:A2)"); | |
// Print the output | |
System.Console.WriteLine("Value of A1: " + cellA1.StringValue); | |
System.Console.WriteLine("Value of A2: " + cellA2.StringValue); | |
System.Console.WriteLine("Result of Sum(A1:A2): " + results.ToString()); |
Formülleri Tekrarlı Hesaplamak İçin Nasıl
Value of A1: 20
Value of A2: 30
Result of Sum(A1:A2): 50.0
Formülleri tekrar tekrar hesaplama
Çalışma kitabında çok sayıda formül bulunduğunda ve kullanıcının bunların bir kısmını tekrarlanacak şekilde sık sık hesaplaması gerektiğinde, formül hesaplama zincirini etkinleştirmek, yalnızca bir elektronik tablo kısmını değiştirerek tekrarlamak için formül hesaplama zincirini etkinleştirmek performans için yararlı olabilir: FormulaSettings.EnableCalculationChain.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Load the template workbook | |
Workbook workbook = new Workbook(dataDir + "book1.xls"); | |
// Print the time before formula calculation | |
Console.WriteLine(DateTime.Now); | |
// Set the CreateCalcChain as tue | |
workbook.Settings.FormulaSettings.EnableCalculationChain = true; | |
// Calculate the workbook formulas | |
workbook.CalculateFormula(); | |
// Print the time after formula calculation | |
Console.WriteLine(DateTime.Now); | |
//change the value of one cell | |
workbook.Worksheets[0].Cells["A1"].PutValue("newvalue"); | |
//re-calculate those formulas which depend on cell A1 | |
workbook.CalculateFormula(); |
Bilinmesi Gerekenler
Gelişmiş Konular
- Microsoft Excel Formül İzleme Penceresine Hücreler Ekleme
- Aspose.Cells ile IFNA işlevinin hesaplanması
- Veri Tablolarının Dizi Formül Hesaplama
- Excel 2016 MINIFS ve MAXIFS işlevlerinin hesaplanması
- Hücre.Calculate yönteminin Hesaplama Süresini Azaltma
- Dairesel Referansı Algılama
- Özel işlevin çalışma tablosuna yazılmadan doğrudan hesaplanması
- Aspose.Cells’in Varsayılan Hesaplama Motorunu Genişletmek için Özel Hesaplama Motoru Uygulamak
- Çalışma Kitabının Formül Hesaplamasını Kesmek veya İptal Etmek
- AbstractCalculationEngine Kullanarak Bir Değer Aralığı Döndürme
- ICustomFunction Kullanarak Bir Değer Aralığı Döndürme
- Çalışma Kitabının Formül Hesaplama Modunu Ayarlama
- Aspose.Cells’te FormulaText Fonksiyonu Kullanma
- ICustomFunction Özelliğinin Kullanımı