Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Like the Excel application, Aspose.Cells APIs provide the ability to specify a formula for a named range using its GetRefersTo() property. There could be numerous usability scenarios for this feature, a few of which are detailed as follows.
A simple formula could be a reference to another cell in the same (or different) worksheet. The following example creates a named range in a new spreadsheet and sets its reference to another cell.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create an instance of Workbook
Workbook book;
// Get the WorksheetCollection
WorksheetCollection worksheets = book.GetWorksheets();
// Add a new Named Range with name "NewNamedRange"
int index = worksheets.GetNames().Add(u"NewNamedRange");
// Access the newly created Named Range
Name name = worksheets.GetNames().Get(index);
// Set RefersTo property of the Named Range to a formula that references another cell in the same worksheet
name.SetRefersTo(u"=Sheet1!$A$3");
// Set the formula in cell A1 to refer to the newly created Named Range
worksheets.Get(0).GetCells().Get(u"A1").SetFormula(u"NewNamedRange");
// Insert the value in cell A3 which is being referenced in the Named Range
worksheets.Get(0).GetCells().Get(u"A3").PutValue(u"This is the value of A3");
// Calculate formulas
book.CalculateFormula();
// Save the result in XLSX format
book.Save(outDir + u"output_out.xlsx");
std::cout << "Named range created and formula calculated successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
A complex formula could be a dynamic range or a formula spanning multiple cells in different worksheets. The following example creates a dynamic range using the INDEX function to get a value from a list based on its location.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create an instance of Workbook
Workbook book;
// Get the WorksheetCollection
WorksheetCollection worksheets = book.GetWorksheets();
// Add a new Named Range with name "data"
int index = worksheets.GetNames().Add(u"data");
// Access the newly created Named Range from the collection
Name data = worksheets.GetNames().Get(index);
// Set RefersTo property of the Named Range to a cell range in the same worksheet
data.SetRefersTo(u"=Sheet1!$A$1:$A$10");
// Add another Named Range with name "range"
index = worksheets.GetNames().Add(u"range");
// Access the newly created Named Range from the collection
Name range = worksheets.GetNames().Get(index);
// Set RefersTo property to a formula that uses the Named Range data
range.SetRefersTo(u"=INDEX(data,Sheet1!$A$1,1):INDEX(data,Sheet1!$A$1,9)");
// Save the workbook
book.Save(outDir + u"output_out.xlsx");
std::cout << "Named ranges created and workbook saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Here is another example that uses a named range to sum values from two cells in different worksheets.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Create an instance of Workbook
Workbook book;
// Get the WorksheetCollection
WorksheetCollection worksheets = book.GetWorksheets();
// Insert some data in cell A1 of Sheet1
worksheets.Get(u"Sheet1").GetCells().Get(u"A1").PutValue(10);
// Add a new Worksheet and insert a value to cell A1
worksheets.Get(worksheets.Add()).GetCells().Get(u"A1").PutValue(10);
// Add a new Named Range with name "range"
int index = worksheets.GetNames().Add(u"range");
// Access the newly created Named Range from the collection
Name range = worksheets.GetNames().Get(index);
// Set RefersTo property of the Named Range to a SUM function
range.SetRefersTo(u"=SUM(Sheet1!$A$1,Sheet2!$A$1)");
// Insert the named range as a formula into the third worksheet
worksheets.Get(worksheets.Add()).GetCells().Get(u"A1").SetFormula(u"range");
// Calculate formulas
book.CalculateFormula();
// Save the result in XLSX format
book.Save(outDir + u"output_out.xlsx");
std::cout << "Output file saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.