Gérer les formules des fichiers Excel
Introduction
L’une des caractéristiques convaincantes d’Excel Microsoft est sa capacité à traiter des données avec des formules et des fonctions. Microsoft Excel fournit un ensemble de fonctions et de formules intégrées qui aident les utilisateurs à effectuer rapidement des calculs complexes. Aspose.Cells fournit également un vaste ensemble de fonctions et de formules intégrées qui aident les développeurs à calculer facilement les valeurs. Aspose.Cells prend également en charge les fonctions complémentaires. De plus, Aspose.Cells prend en charge le tableau et les formules R1C1 dans Aspose.Cells.
Utiliser des formules et des fonctions
Aspose.Cells fournit une classe,Cahier , qui représente un fichier Excel Microsoft. LeCahier classe contient unFeuilles de travail collection qui permet d’accéder à chaque feuille de calcul dans le fichier Excel. Une feuille de calcul est représentée par leFeuille de travail classe. LeFeuille de travail la classe offre uneCells le recueil. Chaque pièce de la collection Cells représente un objet de laCell classe.
Il est possible d’appliquer des formules aux cellules en utilisant les propriétés et les méthodes offertes par leCell classe, discuté plus en détail ci-dessous.
- Utilisation des fonctions intégrées.
- Utilisation des fonctions complémentaires.
- Travailler avec des formules matricielles.
- Création d’une formule R1C1.
Utilisation des fonctions intégrées
Les fonctions ou formules intégrées sont fournies sous forme de fonctions prêtes à l’emploi pour réduire les efforts et le temps des développeurs. Voirune liste de fonctions intégrées pris en charge par Aspose.Cells. Les fonctions sont répertoriées par ordre alphabétique. D’autres fonctions seront prises en charge à l’avenir.
Aspose.Cells prend en charge la plupart des formules ou fonctions proposées par Microsoft Excel. Les développeurs peuvent utiliser ces formules via le API oufeuille de calcul de concepteur. Aspose.Cells prend en charge un vaste ensemble de formules mathématiques, de chaîne, booléennes, de date/heure, statistiques, de base de données, de recherche et de référence.
Utilisez leCell classe'Formulepropriété pour ajouter une formule à une cellule.Formules complexes, par exemple
= H7*(1+IF(P7 = $L$3,$M$3, (IF(P7=$L$4,$M$4,0))))
, sont également pris en charge dans Aspose.Cells. Lorsque vous appliquez une formule à une cellule, commencez toujours la chaîne par un signe égal (=) comme vous le faites lors de la création d’une formule dans Microsoft Excel et utilisez une virgule (,) pour délimiter les paramètres de la fonction.
Dans l’exemple ci-dessous, une formule complexe est appliquée à la première cellule d’une feuille de calculCells le recueil. La formule utilise une fonction intégréeSI fonction fournie par 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"); |
Utilisation des fonctions complémentaires
Nous pouvons avoir des formules définies par l’utilisateur que nous souhaitons inclure en tant que complément Excel. Lors de la définition de la fonction cell.Formula, les fonctions intégrées fonctionnent correctement, mais il est nécessaire de définir les fonctions ou formules personnalisées à l’aide des fonctions complémentaires.
Aspose.Cells fournit des fonctionnalités pour enregistrer des fonctions supplémentaires à l’aide deFeuilles de calcul.RegisterAddInFunction(). Ensuite, lorsque nous définissons cell.Formula = anyFunctionFromAddIn, le fichier Excel de sortie contient la valeur calculée à partir de la fonction AddIn.
Le fichier XLAM suivant doit être téléchargé pour enregistrer la fonction complémentaire dans l’exemple de code ci-dessous. De même, le fichier de sortie “test_udf.xlsx” peut être téléchargé pour vérifier la sortie.
// 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); |
Utilisation de la formule matricielle
Les formules matricielles sont des formules qui prennent des tableaux, au lieu de nombres individuels, comme arguments des fonctions qui composent la formule. Lorsqu’une formule matricielle est affichée, elle est entourée d’accolades ({}).
Certaines fonctions Excel Microsoft renvoient des tableaux de valeurs. Pour calculer plusieurs résultats avec une formule matricielle, entrez le tableau dans une plage de cellules avec le même nombre de lignes et de colonnes que les arguments du tableau.
Il est possible d’appliquer une formule matricielle à une cellule en appelant laCell classe'SetArrayFormula méthode. LeSetArrayFormula méthode prend les paramètres suivants :
- Formule matriciellela formule matricielle.
- Nombre de rangées, le nombre de lignes à remplir résultat de la formule matricielle.
- Le nombre de colonnesle nombre de colonnes à remplir résultat de la formule matricielle.
// 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"); |
Utilisation de la formule R1C1
Ajouter unR1C1 formule de style de référence à une cellule avec leCell classe'Formule R1C1 la propriété.
// 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"); |
Sujets avancés
- Antécédents et personnes à charge
- Définir des liens externes dans les formules
- Propager automatiquement la formule dans le tableau ou l’objet de liste lors de la saisie de données dans de nouvelles lignes
- Définition de la formule pour la plage nommée
- Définition des formules - Avis pour les utilisateurs non anglophones
- Définition d’une formule partagée
- Spécifier le nombre maximal de lignes de formule partagée
- Fonctions Excel prises en charge