Verwalten Sie Formeln von Excel-Dateien

Einführung

Eines der überzeugenden Merkmale von Microsoft Excel ist die Fähigkeit, Daten mit Formeln und Funktionen zu verarbeiten. Microsoft Excel bietet eine Reihe integrierter Funktionen und Formeln, mit denen Benutzer komplexe Berechnungen schnell durchführen können. Aspose.Cells bietet auch eine große Auswahl an integrierten Funktionen und Formeln, die Entwicklern helfen, Werte einfach zu berechnen. Aspose.Cells unterstützt auch Add-in-Funktionen. Darüber hinaus unterstützt Aspose.Cells Array- und R1C1-Formeln in Aspose.Cells.

Verwenden von Formeln und Funktionen

Aspose.Cells bietet eine Klasse,Arbeitsmappe , die eine Microsoft Excel-Datei darstellt. DasArbeitsmappe Klasse enthält aArbeitsblätter Sammlung, die den Zugriff auf jedes Arbeitsblatt in der Excel-Datei ermöglicht. Ein Arbeitsblatt wird durch dargestelltArbeitsblatt Klasse. DasArbeitsblatt Klasse bietet aCells Sammlung. Jeder Artikel in der Sammlung Cells repräsentiert ein Objekt derCell Klasse.

Es ist möglich, Formeln auf Zellen anzuwenden, indem Sie Eigenschaften und Methoden verwenden, die von angeboten werdenCell Klasse, die weiter unten ausführlicher besprochen wird.

  • Verwendung integrierter Funktionen.
  • Verwenden von Add-In-Funktionen.
  • Arbeiten mit Matrixformeln.
  • Erstellen einer R1C1-Formel.

Verwenden von integrierten Funktionen

Integrierte Funktionen oder Formeln werden als vorgefertigte Funktionen bereitgestellt, um den Aufwand und die Zeit der Entwickler zu reduzieren. Seheneine Liste der integrierten Funktionen unterstützt von Aspose.Cells. Die Funktionen sind in alphabetischer Reihenfolge aufgelistet. In Zukunft werden weitere Funktionen unterstützt.

Aspose.Cells unterstützt die meisten Formeln oder Funktionen von Microsoft Excel. Entwickler können diese Formeln über die API oder verwendenDesigner-Tabelle. Aspose.Cells unterstützt eine große Menge mathematischer, Zeichenfolgen-, Boolean-, Datums-/Uhrzeit-, Statistik-, Datenbank-, Such- und Referenzformeln.

Verwenden Sie dieCell Klasse'Formel-Eigenschaft, 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 in Aspose.Cells unterstützt. Wenn Sie eine Formel auf eine Zelle anwenden, beginnen Sie 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 begrenzen.

Im folgenden Beispiel wird eine komplexe Formel auf die erste Zelle eines Arbeitsblatts angewendetCells Sammlung. Die Formel verwendet eine eingebauteWENN Funktion bereitgestellt 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");

Verwenden von Add-In-Funktionen

Wir können einige benutzerdefinierte Formeln haben, die wir als Excel-Add-In einfügen möchten. Beim Festlegen der cell.Formula-Funktion funktionieren die integrierten Funktionen einwandfrei, es ist jedoch erforderlich, die benutzerdefinierten Funktionen oder Formeln mithilfe der Add-In-Funktionen festzulegen.

Aspose.Cells bietet Funktionen zum Registrieren von ZusatzfunktionenArbeitsblätter.RegisterAddInFunction(). Wenn wir danach cell.Formula = anyFunctionFromAddIn setzen, enthält die Excel-Ausgabedatei den berechneten Wert aus der AddIn-Funktion.

Die folgende XLAM-Datei muss heruntergeladen werden, um die Add-In-Funktion im folgenden Beispielcode zu registrieren. Ebenso kann die Ausgabedatei “test_udf.xlsx” heruntergeladen werden, um die Ausgabe zu überprüfen.

TestUDF.xlam

test_udf.xlsx

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

Array-Formel verwenden

Array-Formeln sind Formeln, die Arrays anstelle einzelner Zahlen als Argumente für die Funktionen verwenden, aus denen die Formel besteht. Wenn eine Matrixformel 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 Zellbereich mit der gleichen Anzahl von Zeilen und Spalten wie die Array-Argumente ein.

Es ist möglich, eine Matrixformel auf eine Zelle anzuwenden, indem Sie die aufrufenCell Klasse'SetArrayFormula Methode. DasSetArrayFormula Die Methode nimmt die folgenden Parameter an:

  • Array-Formeldie Matrixformel.
  • Anzahl der Reihen, die Anzahl der Zeilen, die das Ergebnis der Matrixformel füllen sollen.
  • Anzahl der Spaltendie Anzahl der Spalten, die das Ergebnis der Matrixformel füllen sollen.
// 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");

Verwenden der R1C1-Formel

Fügen Sie ein hinzuR1C1 Referenzstilformel auf eine Zelle mit demCell Klasse'R1C1Formel Eigentum.

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

Themen vorantreiben