Hantera formler för Excel filer
Introduktion
En av de mest övertygande funktionerna i Microsoft Excel är dess förmåga att bearbeta data med formler och funktioner. Microsoft Excel tillhandahåller ett antal inbyggda funktioner och formler som hjälper användare att snabbt utföra komplexa beräkningar. Aspose.Cells för Python via .NET erbjuder också ett stort antal inbyggda funktioner och formler som hjälper utvecklare att enkelt beräkna värden. Aspose.Cells för Python via .NET stödjer även tilläggsfunktions. Dessutom stöder Aspose.Cells för Python via .NET array och R1C1-formler.
Hur man Använder formler och funktioner
Aspose.Cells för Python via .NET tillhandahåller en klass, Workbook, som representerar en Microsoft Excel-fil. Klassen Workbook innehåller en worksheets-samling som ger tillgång till varje arbetsblad i Excel-filen. Ett arbetsblad representeras av klassen Worksheet. Klassen Worksheet tillhandahåller en cells-samling. Varje objekt i Cells-samlingen representerar ett objekt av klassen Cell.
Det är möjligt att använda formler på celler med egenskaper och metoder som erbjuds av Cell-klassen, som diskuteras mer detaljerat nedan.
- Använda inbyggda funktioner.
- Använda tilläggsfunktioner.
- Arbeta med matrisformler.
- Skapa en R1C1-formel.
Hur man Använder Inbyggda Funktioner
Inbyggda funktioner eller formler tillhandahålls som färdiga funktioner för att minska utvecklarnas insats och tid. Se en lista över inbyggda funktioner som stöds av Aspose.Cells för Python via .NET. Funktionerna listas i alfabetisk ordning. Fler funktioner kommer att stödjas i framtiden.
Aspose.Cells för Python via .NET stöder de flesta av formlerna eller funktionerna som erbjuds av Microsoft Excel. Utvecklare kan använda dessa formler via API:et eller designer kalkylblad. Aspose.Cells för Python via .NET stöder ett stort antal matematiska, sträng-, booleska, datum/tid-, statistik-, databas-, uppslags- och referensformler.
Använd Cell-klassens formula-egenskap för att lägga till en formula i en cell. Komplexa formler, till exempel
= H7*(1+IF(P7 = $L$3,$M$3, (IF(P7=$L$4,$M$4,0))))
, stöds också i Aspose.Cells för Python via .NET. När du tillämpar en formel på en cell, börja alltid strängen med ett likhetstecken (=) som du gör när du skapar en formel i Microsoft Excel och använd ett kommatecken (,) för att separera funktionsparametrar.
I nedanstående exempel tillämpas en komplex formel på den första cellen i ett kalkylblads cells-samling. Formeln använder en inbyggd IF-funktion som tillhandahålls av Aspose.Cells för Python via .NET.
from aspose.cells import Workbook | |
from os import os, path | |
# 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 directory if it is not already present. | |
IsExists = path.isdir(dataDir) | |
if notIsExists: | |
os.makedirs(dataDir) | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Excel object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[0] | |
# Adding a value to "A1" cell | |
worksheet.cells.get("A1").put_value(1) | |
# Adding a value to "A2" cell | |
worksheet.cells.get("A2").put_value(2) | |
# Adding a value to "A3" cell | |
worksheet.cells.get("A3").put_value(3) | |
# Adding a SUM formula to "A4" cell | |
worksheet.cells.get("A4").formula = "=SUM(A1:A3)" | |
# Calculating the results of formulas | |
workbook.calculate_formula() | |
# Get the calculated value of the cell | |
value = str(worksheet.cells.get("A4").value) | |
# Saving the Excel file | |
workbook.save(dataDir + "output.xls") |
Hur man Använder Tilläggsfunktioner
Vi kan ha några användardefinierade formler som vi vill inkludera som en excel-tillägg. När du ställer in cell.Formula-funktionen fungerar inbyggda funktioner bra, men det finns ett behov av att ställa in de anpassade funktionerna eller formlerna med tilläggsfunktionerna.
Aspose.Cells för Python via .NET tillhandahåller funktioner för att registrera tilläggsfunktionsanvändning med worksheets.register_add_in_function(). Därefter, när vi sätter cell.Formula = någonFunktionFrånTillägget, innehåller den utdata excelfilen det beräknade värdet från Tilläggsfunktionen.
Följande XLAM-fil ska laddas ned för att registrera tilläggsfunktionen enligt nedanstående provkod. På samma sätt kan den resulterande filen “test_udf.xlsx” laddas ned för att kontrollera resultatet.
from aspose.cells import SaveFormat, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Create empty workbook | |
workbook = Workbook() | |
# Register macro enabled add-in along with the function name | |
id = workbook.worksheets.register_add_in_function(sourceDir + str(r"TESTUDF.xlam"), "TEST_UDF", False) | |
# Register more functions in the file (if any) | |
workbook.worksheets.register_add_in_function(id, "TEST_UDF1") | |
# Access first worksheet | |
worksheet = workbook.worksheets[0] | |
# Access first cell | |
cell = worksheet.cells.get("A1") | |
# Set formula name present in the add-in | |
cell.formula = "=TEST_UDF()" | |
# Save workbook to output XLSX format. | |
workbook.save(outputDir + str(r"test_udf.xlsx"), SaveFormat.XLSX) |
Hur man Använder Matrisformel
Matrisformler är formler som tar matriser, istället för enskilda nummer, som argument till de funktioner som utgör formeln. När en matrisformel visas, omges den av måsvingar ({ }).
Vissa Microsoft Excel-funktioner returnerar matriser med värden. För att beräkna flera resultat med en arrayformel, ange matrisen i en cellintervall med samma antal rader och kolumner som matrisargumenten.
Det är möjligt att tillämpa en matrisformel på en cell genom att anropa Cell-klassens set_array_formula-metod. set_array_formula-metoden tar följande parametrar:
- Arrayformel, arrayformeln.
- Antal rader, antalet rader för att fylla resultatet av arrayformeln.
- Antal kolumner, antalet kolumner för att fylla resultatet av matrisformeln.
from aspose.cells import Workbook | |
from os import os, path | |
# 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 directory if it is not already present. | |
IsExists = path.isdir(dataDir) | |
if notIsExists: | |
os.makedirs(dataDir) | |
# Instantiating a Workbook object | |
workbook = Workbook() | |
# Adding a new worksheet to the Excel object | |
sheetIndex = workbook.worksheets.add() | |
# Obtaining the reference of the newly added worksheet by passing its sheet index | |
worksheet = workbook.worksheets[sheetIndex] | |
# Adding a value to "A1" cell | |
worksheet.cells.get("A1").put_value(1) | |
# Adding a value to "A2" cell | |
worksheet.cells.get("A2").put_value(2) | |
# Adding a value to "A3" cell | |
worksheet.cells.get("A3").put_value(3) | |
# Adding a value to B1 | |
worksheet.cells.get("B1").put_value(4) | |
# Adding a value to "B2" cell | |
worksheet.cells.get("B2").put_value(5) | |
# Adding a value to "B3" cell | |
worksheet.cells.get("B3").put_value(6) | |
# Adding a value to C1 | |
worksheet.cells.get("C1").put_value(7) | |
# Adding a value to "C2" cell | |
worksheet.cells.get("C2").put_value(8) | |
# Adding a value to "C3" cell | |
worksheet.cells.get("C3").put_value(9) | |
# Adding a SUM formula to "A4" cell | |
worksheet.cells.get("A6").set_array_formula("=LINEST(A1:A3,B1:C3,TRUE,TRUE)", 5, 3) | |
# Calculating the results of formulas | |
workbook.calculate_formula() | |
# Get the calculated value of the cell | |
value = str(worksheet.cells.get("A6").value) | |
# Saving the Excel file | |
workbook.save(dataDir + "output.xls") |
Hur man Använder R1C1-formel
Lägg till en formel med referensstil R1C1 i en cell med klassens Cell r1c1_formula-egenskap.
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(".") | |
# Instantiating a Workbook object | |
workbook = Workbook(dataDir + "Book1.xls") | |
worksheet = workbook.worksheets[0] | |
# Setting an R1C1 formula on the "A11" cell, | |
# Row and Column indeces are relative to destination index | |
worksheet.cells.get("A11").r1c1_formula = "=SUM(R[-10]C[0]:R[-7]C[0])" | |
# Saving the Excel file | |
workbook.save(dataDir + "output.xls") |
Fortsatta ämnen
- Föregångare och efterföljande
- Ange externa länkar i formler
- Sprid formel i tabell eller listobjekt automatiskt när du matar in data i nya rader
- Ange formel för namngivet område
- Inställning av formler - Meddelande för användare som inte talar engelska
- Inställning av delad formel
- Ange maximala rader för delad formel
- Stödda Excel-funktioner