Définition de la formule pour la plage nommée

Définition de la formule pour la plage nommée

Comme l’application Excel, les API Aspose.Cells offrent la possibilité de spécifier une formule pour une plage nommée tout en utilisant sonFait référence àla propriété. Il peut y avoir de nombreux scénarios d’utilisation pour cette fonctionnalité, dont quelques-uns sont détaillés ci-dessous.

Définition d’une formule simple pour une plage nommée

Une formule simple peut être une référence à une autre cellule dans la même feuille de calcul (ou différente). L’exemple suivant crée une plage nommée dans une nouvelle feuille de calcul et définit sa référence à une autre cellule.

// 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 an instance of Workbook
Workbook book = new Workbook();
// Get the WorksheetCollection
WorksheetCollection worksheets = book.Worksheets;
// Add a new Named Range with name "NewNamedRange"
int index = worksheets.Names.Add("NewNamedRange");
// Access the newly created Named Range
Name name = worksheets.Names[index];
// Set RefersTo property of the Named Range to a formula. Formula references another cell in the same worksheet
name.RefersTo = "=Sheet1!$A$3";
// Set the formula in the cell A1 to the newly created Named Range
worksheets[0].Cells["A1"].Formula = "NewNamedRange";
// Insert the value in cell A3 which is being referenced in the Named Range
worksheets[0].Cells["A3"].PutValue("This is the value of A3");
// Calculate formulas
book.CalculateFormula();
// Save the result in XLSX format
book.Save(dataDir + "output_out.xlsx");

Définition d’une formule complexe pour une plage nommée

Une formule complexe peut être quelque chose comme une plage dynamique ou une formule couvrant plusieurs cellules dans différentes feuilles de calcul. L’exemple suivant crée une plage dynamique à l’aide de la fonction INDEX pour obtenir la valeur d’une liste en fonction de son emplacement.

// 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 an instance of Workbook
Workbook book = new Workbook();
// Get the WorksheetCollection
WorksheetCollection worksheets = book.Worksheets;
// Add a new Named Range with name "data"
int index = worksheets.Names.Add("data");
// Access the newly created Named Range from the collection
Name data = worksheets.Names[index];
// Set RefersTo property of the Named Range to a cell range in same worksheet
data.RefersTo = "=Sheet1!$A$1:$A$10";
// Add another Named Range with name "range"
index = worksheets.Names.Add("range");
// Access the newly created Named Range from the collection
Name range = worksheets.Names[index];
// Set RefersTo property to a formula using the Named Range data
range.RefersTo = "=INDEX(data,Sheet1!$A$1,1):INDEX(data,Sheet1!$A$1,9)";
// Save the workbook
book.Save(dataDir + "output_out.xlsx");

Voici un autre exemple qui utilise une plage nommée pour additionner les valeurs de 2 cellules dans différentes feuilles de calcul.

// 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 an instance of Workbook
Workbook book = new Workbook();
// Get the WorksheetCollection
WorksheetCollection worksheets = book.Worksheets;
// Insert some data in cell A1 of Sheet1
worksheets["Sheet1"].Cells["A1"].PutValue(10);
// Add a new Worksheet and insert a value to cell A1
worksheets[worksheets.Add()].Cells["A1"].PutValue(10);
// Add a new Named Range with name "range"
int index = worksheets.Names.Add("range");
// Access the newly created Named Range from the collection
Name range = worksheets.Names[index];
// Set RefersTo property of the Named Range to a SUM function
range.RefersTo = "=SUM(Sheet1!$A$1,Sheet2!$A$1)";
// Insert the Named Range as formula to 3rd worksheet
worksheets[worksheets.Add()].Cells["A1"].Formula = "range";
// Calculate formulas
book.CalculateFormula();
// Save the result in XLSX format
book.Save(dataDir + "output_out.xlsx");