Formeln dynamisch berechnen oder neu berechnen
Formelberechnung: Der Motor für die Formelberechnung ist in Aspose.Cells eingebettet. Es kann nicht nur die Formel aus der Designerdatei neu berechnen, sondern es unterstützt auch die Berechnung von Formelergebnissen, die zur Laufzeit hinzugefügt wurden.
Hinzufügen von Formeln & Berechnen von Ergebnissen
Aspose.Cells unterstützt die meisten Formeln oder Funktionen, die Teil von Microsoft Excel sind. Entwickler können diese Formeln über die API oder Designer-Tabellenkalkulation verwenden. Aspose.Excel unterstützt eine große Menge mathematischer, string-, boolescher, Datum-/Zeit-, statistischer, Datenbank-, Such- und Verweisformeln.
Verwenden Sie die Formel-Eigenschaft der Zellenklasse, um einer Zelle eine Formel hinzuzufügen. Wenn Sie eine Formel auf eine Zelle anwenden, beginnen Sie die Zeichenkette immer mit einem Gleichheitszeichen (=), genauso wie beim Erstellen einer Formel in Microsoft Excel. Verwenden Sie ein Komma (,) zur Trennung von Funktionsparametern.
Um die Ergebnisse der Formeln zu berechnen, rufen Sie die CalculateFormula-Methode der Excel-Klasse auf, die alle in einer Excel-Datei eingebetteten Formeln verarbeitet. Lesen Sie die URL: Liste der Funktionen, die von der CalculateFormula-Methode unterstützt werden.
//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");
Einmaliges Berechnen von Formeln
Wenn der Benutzer Workbook.CalculateFormula() aufruft, um die Werte der Formeln innerhalb der Arbeitsmappenvorlage zu berechnen, erstellt Aspose.Cells eine Berechnungskette. Dies erhöht die Leistung, wenn Formeln zum zweiten oder dritten Mal berechnet werden usw. Wenn die Benutzervorlage viele verschiedene Formeln enthält, kann die erste Berechnung der Formel viel CPU-Verarbeitungszeit und Speicher verbrauchen.
Aspose.Cells ermöglicht es Ihnen, die Erstellung einer Berechnungskette zu deaktivieren, was in Szenarien nützlich ist, in denen Sie die Formeln Ihrer Datei nur einmal berechnen möchten.
Wenn Sie die Leistung der Formelberechnungen mit Aspose.Cells verbessern möchten und keine Formelberechnungskette erstellen möchten, setzen Sie bitte FormulaSettings.EnableCalculationChain auf false. Standardmäßig ist es auf true gesetzt.
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);
Direkte Berechnung von Formeln
Die Formel-Berechnungs-Engine ist in Aspose.Cells eingebettet. Neben der Neuberechnung der aus der Designer-Datei importierten Formel unterstützt Aspose.Cells auch die direkte Berechnung der Formelergebnisse. Manchmal müssen Sie die Ergebnisse von Formeln direkt berechnen, ohne sie tatsächlich in einem Arbeitsblatt hinzuzufügen. Die Werte der in der Formel verwendeten Zellen existieren bereits in einem Arbeitsblatt, und alles, was Sie benötigen, ist das Ergebnis dieser Werte basierend auf einigen MS-Excel-Formeln zu finden, ohne die Formel in einem Arbeitsblatt hinzuzufügen.
Sie können die Aspose.Cells Formula Calculation Engine API d.h. worksheet.Calculate(string formula) verwenden, um die Ergebnisse solcher Formeln zu berechnen, ohne sie tatsächlich in einem Arbeitsblatt hinzuzufügen.
//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");