Formülleri Dinamik Olarak Hesaplayın veya Yeniden Hesaplayın
Formula Hesaplama motoru Aspose.Cells içine gömülüdür. Sadece tasarımcı dosyasından alınan formülleri yeniden hesaplamakla kalmaz, aynı zamanda çalışma zamanında eklenen formüllerin sonuçlarını hesaplama desteği de sunar.
Formüller Ekleyin ve Sonuçlarını Hesaplayın
Aspose.Cells, Microsoft Excel’in büyük bir kısmını oluşturan formülleri veya işlevleri destekler. Geliştiriciler, bu formülleri API veya Tasarımcı Elektronik Tablolar kullanarak kullanabilirler. Aspose.Excel, Matematik, Dize, Boolean, Tarih/Saat, İstatistiksel, Veritabanı, Arama ve Referans formüllerinin geniş bir setini destekler.
Hücre sınıfının Formula özelliğini kullanarak bir hücreye formül eklemek için kullanın. Bir hücreye formül uygularken, her zaman bir Microsoft Excel formülü oluştururken olduğu gibi eşittir işareti (=) ile başlayın. Bir virgül (,) işlev parametrelerini ayırmak için kullanın.
Formüllerin sonuçlarını hesaplamak için Excel sınıfının CalculateFormula yöntemini çağırın, bu işlemle bir Excel dosyasına gömülü tüm formülleri işler. url:CalculateFormula yöntemi tarafından desteklenen fonksiyonların listesini okuyun.
//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("Adding Formula.xls");
Formülleri Yalnızca Bir Kez Hesaplayın
Kullanıcı, Workbook.CalculateFormula() yöntemini çağırdığında, Aspose.Cells, bir hesaplama zinciri oluşturur. Formüller ikinci veya üçüncü kez hesaplandığında performansı artırır. Ancak, kullanıcı şablonu çok çeşitli formüller içeriyorsa, formül hesaplamanın ilk kez CPU işlem süresi ve bellek kullanımı çok fazla olabilir.
Aspose.Cells, sadece dosyanızın formüllerini bir kez hesaplamak istediğiniz senaryolarda hesaplama zinciri oluşturmayı devre dışı bırakmanıza olanak tanır.
Aspose.Cells formül hesaplamalarının performansını iyileştirmeyi ve formül hesaplama zinciri oluşturmak istemiyorsanız, lütfen FormulaSettings.EnableCalculationChain özelliğini false olarak ayarlayın. Varsayılan olarak bu true olarak ayarlıdır.
string FilePath = @"..\..\..\Sample Files\";
string FileName = FilePath + "Adding Formula.xlsx";
//Load the template workbook
Workbook workbook = new Workbook(FileName);
//Print the time before formula calculation
Console.WriteLine(DateTime.Now);
//Set the CreateCalcChain as false
workbook.Settings.FormulaSettings.EnableCalculationChain = false;
//Calculate the workbook formulas
workbook.CalculateFormula();
//Print the time after formula calculation
Console.WriteLine(DateTime.Now);
workbook.Save(FileName);
Formülün Doğrudan Hesaplanması
Aspose.Cells’e gömülü formül hesaplama motoru. Tasarımcı dosyasından alınan formülü yeniden hesaplamakla kalmaz, aynı zamanda formül sonuçlarını doğrudan hesaplama desteği de sunar. Bazı durumlarda, hücrelerin değerleri zaten bir elektronik tabloda mevcut olup bir Ms-Excel formülüne dayalı olarak bu değerlerin sonucunu bulmak istersiniz, fakat formülü elektronik tabloya eklemek zorunda değilsiniz. Bu tür formüllerin sonuçlarını hesaplamak için Aspose.Cells Formula Calculation Engine API’sini yani worksheet.Calculate(string formula) kullanabilirsiniz.
Aspose.Cells Formül Hesaplama Motoru API’sini, yani worksheet.Calculate(string formül)‘ü bu tür formüllerin sonuçlarını çalışsayfaya gerçekten eklemeksizin hesaplamak için kullanabilirsiniz.
//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)");
Cell cellA3 = worksheet.Cells["A3"];
cellA3.PutValue(results);
//Print the output
Debug.WriteLine("Value of A1: " + cellA1.StringValue);
Debug.WriteLine("Value of A2: " + cellA2.StringValue);
Debug.WriteLine("Result of Sum(A1:A2): " + results.ToString());
workbook.Save("Calulate Any Formulae.xls");