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
- Fügen Sie Cells zu Microsoft Excel-Formel-Überwachungsfenster hinzu
- Berechnung der IFNA-Funktion mit Aspose.Cells
- Berechnung der Array-Formel von Datentabellen
- Berechnung von Excel 2016 MINIFS- und MAXIFS-Funktionen
- Verringern Sie die Berechnungszeit von Cell. Berechnungsmethode
- Zirkuläre Referenz erkennen
- Direkte Berechnung der benutzerdefinierten Funktion, ohne sie in ein Arbeitsblatt zu schreiben
- Implementieren Sie eine benutzerdefinierte Berechnungs-Engine, um die Standard-Berechnungs-Engine von Aspose.Cells zu erweitern
- Unterbrechen oder brechen Sie die Formelberechnung der Arbeitsmappe ab
- Zurückgeben eines Wertebereichs mit AbstractCalculationEngine
- Zurückgeben eines Wertebereichs mit ICustomFunction
- Festlegen des Formelberechnungsmodus der Arbeitsmappe
- Verwendung der FormulaText-Funktion in Aspose.Cells
- Verwenden der ICustomFunction-Funktion