Formülleri dinamik olarak hesaplayın veya yeniden hesaplayın

formül hesaplama motor gömülüAspose.Cells. Yalnızca tasarımcı dosyasından içe aktarılan formülü yeniden hesaplamakla kalmaz, aynı zamanda çalışma zamanında eklenen formüllerin sonuçlarını hesaplamayı da destekler.

Formül Ekleme ve Sonuçları Hesaplama

Aspose.Cells, Microsoft Excel’in parçası olan formüllerin veya işlevlerin çoğunu destekler. Geliştiriciler, bu formülleri API veya Tasarımcı Elektronik Tablolarını kullanarak kullanabilir. Aspose.Excel, çok sayıda Matematiksel, Dize, Boolean, Tarih/Saat, İstatistiksel, Veritabanı, Arama ve Referans formüllerini destekler.

Bir hücreye formül eklemek için Cell sınıfının Formula özelliğini kullanın. Bir hücreye formül uygularken, Microsoft Excel’de formül oluştururken yaptığınız gibi dizeye her zaman eşittir işaretiyle (=) başlayın. İşlev parametrelerini ayırmak için virgül (,) kullanın.

Formüllerin sonuçlarını hesaplamak için Excel sınıfının bir Excel dosyasına katıştırılmış tüm formülleri işleyen CalculateFormula yöntemini çağırın. Okumakurl:CalculateFormula yöntemi tarafından desteklenen işlevlerin listesi.

 //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 Hesaplama

Kullanıcı, çalışma kitabı şablonu içindeki formüllerin değerlerini hesaplamak için Workbook.CalculateFormula() öğesini çağırdığında, Aspose.Cells bir hesaplama zinciri oluşturur. Formüller ikinci, üçüncü kez vb. hesaplandığında performansı artırır. Bununla birlikte, kullanıcı şablonu çok sayıda farklı formül içeriyorsa, ilk kez formül hesaplaması çok fazla CPU işlem süresi ve bellek tüketebilir.

Aspose.Cells, dosyanızın formüllerini yalnızca bir kez hesaplamak istediğiniz senaryolarda yararlı olan hesaplama zinciri oluşturmayı kapatmanıza olanak tanır.

Aspose.Cells ile formül hesaplamalarının performansını artırmak istiyor ve formül hesaplama zinciri oluşturmak istemiyorsanız, lütfenFormulaSettings.EnableCalculationChain olarakYANLIŞ . Varsayılan olarak, şu şekilde ayarlanmıştır:doğru.

 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ı

Formül hesaplama motoru Aspose.Cells içine gömülüdür. Ayrıca, tasarımcı dosyasından içe aktarılan formülün yeniden hesaplanmasının yanı sıra, Aspose.Cells, formül sonuçlarının doğrudan hesaplanmasını da destekler. Bazen formül sonuçlarını bir çalışma sayfasına eklemeden doğrudan hesaplamanız gerekir. Formülde kullanılan hücrelerin değerleri bir çalışma sayfasında zaten var ve ihtiyacınız olan tek şey, formülü bir çalışma sayfasına eklemeden bazı Ms-Excel formüllerine dayalı olarak bu değerlerin sonucunu bulmak.

Aspose.Cells Formül Hesaplama Motorunu kullanabilirsiniz API yani**worksheet.Calculate(dize formülü)**bu tür formüllerin sonuçlarını çalışma sayfasına fiilen eklemeden hesaplamak için.

 //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");

Örnek Kodu İndir