Ange formel för namngivet område

Ange formel för namngivet område

Precis som Excel-appen, ger Aspose.Cells för Python via .NET API:erna möjlighet att ange en formel för ett namngivet område medan du använder dess Range.refers_to-egenskap. Det finns många användbarhetsscenarier för denna funktion, några av vilka är detaljerade nedan.

Ange enkel formel för namngivet område

Enkel formel skulle kunna vara en hänvisning till en annan cell i samma (eller annan) kalkylblad. Följande exempel skapar ett namngivet område i en ny kalkyl och anger dess hänvisning till en annan cell.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create an instance of Workbook
book = Workbook()
# Get the WorksheetCollection
worksheets = book.worksheets
# Add a new Named Range with name "NewNamedRange"
index = worksheets.names.add("NewNamedRange")
# Access the newly created Named Range
name = worksheets.names[index]
# Set RefersTo property of the Named Range to a formula. Formula references another cell in the same worksheet
name.refers_to = "=Sheet1!$A$3"
# Set the formula in the cell A1 to the newly created Named Range
worksheets[0].cells.get("A1").formula = "NewNamedRange"
# Insert the value in cell A3 which is being referenced in the Named Range
worksheets[0].cells.get("A3").put_value("This is the value of A3")
# Calculate formulas
book.calculate_formula()
# Save the result in XLSX format
book.save(dataDir + "output_out.xlsx")

Ange komplex formel för namngivet område

En komplex formel kan vara vad som helst, till exempel en dynamiskt område eller en formel som sträcker sig över flera celler i olika kalkylblad. Följande exempel skapar ett dynamiskt område med hjälp av INDEX-funktionen för att hämta värdet från en lista baserat på dess plats.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create an instance of Workbook
book = Workbook()
# Get the WorksheetCollection
worksheets = book.worksheets
# Add a new Named Range with name "data"
index = worksheets.names.add("data")
# Access the newly created Named Range from the collection
data = worksheets.names[index]
# Set RefersTo property of the Named Range to a cell range in same worksheet
data.refers_to = "=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
range = worksheets.names[index]
# Set RefersTo property to a formula using the Named Range data
range.refers_to = "=INDEX(data,Sheet1!$A$1,1):INDEX(data,Sheet1!$A$1,9)"
# Save the workbook
book.save(dataDir + "output_out.xlsx")

Här är ytterligare ett exempel som använder ett namngivet område för att summera värden från 2 celler i olika kalkylblad.

from aspose.cells import Workbook
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET
# The path to the documents directory.
dataDir = RunExamples.GetDataDir(".")
# Create an instance of Workbook
book = Workbook()
# Get the WorksheetCollection
worksheets = book.worksheets
# Insert some data in cell A1 of Sheet1
worksheets.get("Sheet1").cells.get("A1").put_value(10)
# Add a new Worksheet and insert a value to cell A1
worksheets[worksheets.add()].cells.get("A1").put_value(10)
# Add a new Named Range with name "range"
index = worksheets.names.add("range")
# Access the newly created Named Range from the collection
range = worksheets.names[index]
# Set RefersTo property of the Named Range to a SUM function
range.refers_to = "=SUM(Sheet1!$A$1,Sheet2!$A$1)"
# Insert the Named Range as formula to 3rd worksheet
worksheets[worksheets.add()].cells.get("A1").formula = "range"
# Calculate formulas
book.calculate_formula()
# Save the result in XLSX format
book.save(dataDir + "output_out.xlsx")