Formeln von Excel Dateien verwalten
Einführung
Eine der überzeugendsten Funktionen von Microsoft Excel ist die Fähigkeit, Daten mit Formeln und Funktionen zu verarbeiten. Microsoft Excel bietet eine Reihe von integrierten Funktionen und Formeln, die Benutzern helfen, komplexe Berechnungen schnell durchzuführen. Aspose.Cells bietet ebenfalls eine große Anzahl von integrierten Funktionen und Formeln, die Entwicklern die Berechnung von Werten erleichtern. Aspose.Cells unterstützt auch Add-In-Funktionen. Darüber hinaus unterstützt Aspose.Cells Array- und R1C1-Formeln in Aspose.Cells.
Wie man Formeln und Funktionen verwendet
Aspose.Cells bietet eine Klasse, Workbook, die eine Microsoft Excel-Datei repräsentiert. Die Klasse Workbook enthält eine Worksheets-Sammlung, die Zugriff auf jedes Arbeitsblatt in der Excel-Datei ermöglicht. Ein Arbeitsblatt wird durch die Klasse Worksheet repräsentiert. Die Klasse Worksheet bietet eine Cells-Sammlung. Jedes Element in der Cells-Sammlung repräsentiert ein Objekt der Klasse Cell.
Es ist möglich, Formeln auf Zellen anzuwenden, indem Eigenschaften und Methoden verwendet werden, die von der Klasse Cell angeboten werden, die im Folgenden näher erläutert werden.
- Verwendung von integrierten Funktionen.
- Verwendung von Add-In-Funktionen.
- Arbeit mit Array-Formeln.
- Erstellen einer R1C1-Formel.
Verwendung von integrierten Funktionen
Integrierte Funktionen oder Formeln werden als fertige Funktionen bereitgestellt, um die Bemühungen und die Zeit der Entwickler zu reduzieren. Siehe eine Liste der integrierten Funktionen, die von Aspose.Cells unterstützt werden. Die Funktionen sind alphabetisch aufgelistet. In Zukunft werden weitere Funktionen unterstützt.
Aspose.Cells unterstützt die meisten Formeln oder Funktionen, die von Microsoft Excel angeboten werden. Entwickler können diese Formeln über die API oder die Designtabelle verwenden. Aspose.Cells unterstützt eine große Anzahl von mathematischen, alphanumerischen, logischen, Datum/Zeit-, statistischen, Datenbank-, Such- und Verweisformeln.
Verwenden Sie die Cell-Eigenschaft der Klasse Formula, um einer Zelle eine Formel hinzuzufügen. Komplexe Formeln, zum Beispiel
= H7*(1+IF(P7 = $L$3,$M$3, (IF(P7=$L$4,$M$4,0))))
, werden auch von Aspose.Cells unterstützt. Beim Anwenden einer Formel auf eine Zelle beginnen Sie immer die Zeichenfolge mit einem Gleichheitszeichen (=), wie Sie es bei der Erstellung einer Formel in Microsoft Excel tun, und verwenden ein Komma (,) zur Trennung der Funktionsparameter.
Im folgenden Beispiel wird eine komplexe Formel auf die erste Zelle der Cells-Sammlung eines Arbeitsblatts angewendet. Die Formel verwendet eine integrierte IF-Funktion von Aspose.Cells.
// 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[0]; | |
// 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"); |
Verwendung von Add-in-Funktionen
Es können benutzerdefinierte Formeln definiert werden, die als Excel-Add-In eingebunden werden sollen. Beim Setzen der Zell.Formel-Funktion funktionieren integrierte Funktionen gut, jedoch ist es erforderlich, benutzerdefinierte Funktionen oder Formeln unter Verwendung von Add-In-Funktionen zu setzen.
Aspose.Cells bietet Funktionen zur Registrierung von Add-In-Funktionen mit Worksheets.RegisterAddInFunction(). Anschließend, wenn wir cell.Formula = anyFunctionFromAddIn setzen, enthält die Ausgabedatei Excel den berechneten Wert aus der AddIn-Funktion.
Die folgende XLAM-Datei soll zum Registrieren der Add-In-Funktion verwendet werden im untenstehenden Beispielcode. Ebenso kann die Ausgabedatei “test_udf.xlsx” heruntergeladen werden, um die Ausgabe zu überprüfen.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create empty workbook | |
Workbook workbook = new Workbook(); | |
// Register macro enabled add-in along with the function name | |
int id = workbook.Worksheets.RegisterAddInFunction(sourceDir + @"TESTUDF.xlam", "TEST_UDF", false); | |
// Register more functions in the file (if any) | |
workbook.Worksheets.RegisterAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Access first cell | |
var cell = worksheet.Cells["A1"]; | |
// Set formula name present in the add-in | |
cell.Formula = "=TEST_UDF()"; | |
// Save workbook to output XLSX format. | |
workbook.Save(outputDir + @"test_udf.xlsx", Aspose.Cells.SaveFormat.Xlsx); |
Verwendung von Array-Formel
Array-Formeln sind Formeln, die Arrays anstelle von einzelnen Zahlen als Argumente für die Funktionen, die die Formel bilden, verwenden. Wenn eine Array-Formel angezeigt wird, ist sie von geschweiften Klammern ({}) umgeben.
Einige Microsoft Excel-Funktionen geben Arrays von Werten zurück. Um mehrere Ergebnisse mit einer Array-Formel zu berechnen, geben Sie das Array in einen Zellenbereich mit derselben Anzahl von Zeilen und Spalten wie die Array-Argumente ein.
Es ist möglich, einer Zelle eine Array-Formel durch Aufruf der Methode SetArrayFormula der Klasse Cell anzuwenden. Die Methode SetArrayFormula nimmt die folgenden Parameter an:
- Array-Formel, die Array-Formel.
- Anzahl der Zeilen, die Anzahl der Zeilen zum Ausfüllen des Ergebnisses der Array-Formel.
- Anzahl der Spalten, die Anzahl der Spalten zum Ausfüllen des Ergebnisses der Array-Formel.
// 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 value to B1 | |
worksheet.Cells["B1"].PutValue(4); | |
// Adding a value to "B2" cell | |
worksheet.Cells["B2"].PutValue(5); | |
// Adding a value to "B3" cell | |
worksheet.Cells["B3"].PutValue(6); | |
// Adding a value to C1 | |
worksheet.Cells["C1"].PutValue(7); | |
// Adding a value to "C2" cell | |
worksheet.Cells["C2"].PutValue(8); | |
// Adding a value to "C3" cell | |
worksheet.Cells["C3"].PutValue(9); | |
// Adding a SUM formula to "A4" cell | |
worksheet.Cells["A6"].SetArrayFormula("=LINEST(A1:A3,B1:C3,TRUE,TRUE)", 5, 3); | |
// Calculating the results of formulas | |
workbook.CalculateFormula(); | |
// Get the calculated value of the cell | |
string value = worksheet.Cells["A6"].Value.ToString(); | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); |
Verwendung der R1C1-Formel
Fügen Sie einer Zelle mit der Cell Klasse die Eigenschaft R1C1Formula hinzu.
// 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); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "Book1.xls"); | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Setting an R1C1 formula on the "A11" cell, | |
// Row and Column indeces are relative to destination index | |
worksheet.Cells["A11"].R1C1Formula = "=SUM(R[-10]C[0]:R[-7]C[0])"; | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); |
Erweiterte Themen
- Vorgänger und Abhängige
- Externe Verknüpfungen in Formeln festlegen
- Formel in Tabelle oder List-Objekt automatisch propagieren, während neue Zeilen eingegeben werden
- Formel für benanntes Bereich setzen
- Formeln einstellen - Hinweis für nicht englischsprachige Benutzer
- Gemeinsame Formel festlegen
- Maximale Zeilen der gemeinsamen Formel angeben
- Unterstützte Excel-Funktionen