Formeln berechnen

Formeln hinzufügen und Ergebnisse berechnen

Aspose.Cells hat eine eingebettete Formelberechnungsmaschine. Es kann nicht nur aus Designervorlagen importierte Formeln neu berechnen, sondern unterstützt auch die Berechnung der Ergebnisse von zur Laufzeit hinzugefügten Formeln.

Aspose.Cells unterstützt die meisten Formeln oder Funktionen, die Teil von Microsoft Excel(Readeine Liste der Funktionen, die von der Berechnungsmaschine unterstützt werden). Diese Funktionen können über die APIs oder Designer-Tabellen verwendet werden. Aspose.Cells unterstützt eine große Auswahl an mathematischen, Zeichenfolgen-, booleschen, Datums-/Uhrzeit-, Statistik-, Datenbank-, Such- und Referenzformeln.

Verwenden Sie dieFormel Eigentum bzwSetFormel(…) Methoden derCellKlasse, um einer Zelle eine Formel hinzuzufügen. Beginnen Sie beim Anwenden einer Formel die Zeichenfolge immer mit einem Gleichheitszeichen (=), wie Sie es beim Erstellen einer Formel in Microsoft Excel tun, und verwenden Sie ein Komma (,), um Funktionsparameter zu trennen.

Um die Ergebnisse von Formeln zu berechnen, kann der Benutzer aufrufenBerechnenFormel Methode derArbeitsmappeKlasse, die alle in einer Excel-Datei eingebetteten Formeln verarbeitet. Oder der Benutzer kann die anrufenBerechnenFormel Methode derArbeitsblatt Klasse, die alle in ein Blatt eingebetteten Formeln verarbeitet. Oder der Benutzer kann auch anrufenBerechnung Methode derCellKlasse, die die Formel von Cell verarbeitet:

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

Wichtig zu wissen

Direkte Berechnung der Formel

Aspose.Cells hat eine eingebettete Formelberechnungsmaschine. Neben der Berechnung von Formeln, die aus einer Designerdatei importiert wurden, kann Aspose.Cells Formelergebnisse direkt berechnen.

Manchmal müssen Sie Formelergebnisse direkt berechnen, ohne sie in ein Arbeitsblatt einzufügen. Die Werte der in der Formel verwendeten Zellen sind bereits in einem Arbeitsblatt vorhanden, und alles, was Sie brauchen, ist, das Ergebnis dieser Werte basierend auf einer Microsoft-Excel-Formel zu finden, ohne die Formel in einem Arbeitsblatt hinzuzufügen.

Sie können die Formelberechnungs-Engine-APIs von Aspose.Cells für verwendenArbeitsblatt zuBerechnung die Ergebnisse solcher Formeln, ohne sie dem Arbeitsblatt hinzuzufügen:

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

Der obige Code erzeugt die folgende Ausgabe:

Value of A1: 20
Value of A2: 30
Result of Sum(A1:A2): 50.0

Formeln wiederholt berechnen

Wenn die Arbeitsmappe viele Formeln enthält und der Benutzer sie wiederholt berechnen muss, wobei nur ein kleiner Teil davon geändert werden muss, kann es für die Leistung hilfreich sein, die Formelberechnungskette zu aktivieren: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();

Wichtig zu wissen

Themen vorantreiben