Använda formler eller funktioner för att bearbeta data
Använda formler och funktioner
Aspose.Cells tillhandahåller en klass,Arbetsbok , som representerar en Microsoft Excel-fil. DeArbetsbok klass innehåller enArbetsblad samling som ger åtkomst till varje kalkylblad i Excel-filen. Ett arbetsblad representeras avArbetsblad klass. DeArbetsblad klass ger enCells samling. Varje objekt iCells samlingen representerar ett föremål förCellklass.
Det är möjligt att tillämpa formler på celler med hjälp av egenskaper och metoder som erbjuds avCellklass, diskuteras mer i detalj nedan.
- Använder inbyggda funktioner.
- Använda tilläggsfunktioner.
- Arbeta med matrisformler.
- Skapa en R1C1-formel.
Använda inbyggda funktioner
Inbyggda funktioner eller formler tillhandahålls som färdiga funktioner för att minska utvecklarnas ansträngningar och tid. Seren lista över inbyggda funktioner. Funktionerna är listade i alfabetisk ordning. Fler funktioner kommer att stödjas i framtiden.
Aspose.Cells stöder de flesta formler eller funktioner som erbjuds av Microsoft Excel. Utvecklare kan använda dessa formler genom API ellerdesignerkalkylblad. Aspose.Cells stöder en stor uppsättning matematiska formler, strängar, booleska formler, datum/tid, statistik, databas, uppslagsformler och referensformler.
AnvändFormelegendom avCell klass för att lägga till en formel 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. 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 avgränsa funktionsparametrar.
I exemplet nedan tillämpas en komplex formel på den första cellen i ett kalkylbladCells samling. Formeln använder en inbyggdOM funktionen tillhandahålls av Aspose.Cells.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Setting a complex formula on the 1st cell of the Cells collection of a worksheet | |
worksheet.getCells().get(0).setFormula("=H7*(1+IF(P7 =$L$3,$M$3, (IF(P7=$L$4,$M$4,0))))"); |
Använda tilläggsfunktioner
Vi kan ha några användardefinierade formler som vi vill inkludera som ett excel-tillägg. När du ställer inCell.Formula funktions inbyggda funktioner fungerar bra men det finns ett behov av att ställa in de anpassade funktionerna eller formlerna med hjälp av tilläggsfunktionerna.
Aspose.Cells tillhandahåller funktioner för att registrera tilläggsfunktioner med hjälp avWorksheets.RegisterAddInFunction(). Efteråt när vi sattCell.Formula anyFunctionFromAddIn, utdata Excel-filen innehåller det beräknade värdet från AddIn-funktionen.
Efter XLAM ska filen laddas ner för registrering av tilläggsfunktionen i nedanstående exempelkod. På samma sätt kan utdatafilen “test_udf.xlsx” laddas ner för att kontrollera utdata.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Create empty workbook | |
Workbook workbook = new Workbook(); | |
// Register macro enabled add-in along with the function name | |
int id = workbook.getWorksheets().registerAddInFunction(srcDir + "TESTUDF.xlam", "TEST_UDF", false); | |
// Register more functions in the file (if any) | |
workbook.getWorksheets().registerAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file | |
// Access first worksheet | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Access first cell | |
Cell cell = worksheet.getCells().get("A1"); | |
// Set formula name present in the add-in | |
cell.setFormula("=TEST_UDF()"); | |
// Save workbook to output XLSX format. | |
workbook.save(outDir + "test_udf.xlsx", SaveFormat.XLSX); |
Använda Array Formula
Matrisformler är formler som fungerar med matriser, istället för enskilda tal, som argument till funktionerna som utgör formeln. När en matrisformel visas är den omgiven av klammerparenteser ({}) som visas nedan.
Ställa in en matrisformel på cell G2
Vissa Microsoft Excel-funktioner returnerar matriser med värden. För att beräkna flera resultat med en matrisformel anger du matrisen i ett cellintervall med samma antal rader och kolumner som matrisargumenten.
Det är möjligt att tillämpa en matrisformel på en cell genom att anropaCell klass'setArrayFormula metod. DesetArrayFormula metod tar följande parametrar:
- Matrisformelmatrisformeln.
- Antal rader, antalet rader som ska fyllas i resultatet av matrisformeln.
- Antal kolumner, antalet kolumner som ska fyllas i resultatet av matrisformeln.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Setting an array formula on the cell "G2" | |
worksheet.getCells().get("G2").setArrayFormula("=LINEST(E2:E12,A2:D12,TRUE,TRUE)", 5, 3); |
Använder R1C1 Formel
Applicera enR1C1 referera stilformel till en cell medCell klass'setR1C1Formelfast egendom.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// Setting an R1C1 formula on the "A1" cell | |
worksheet.getCells().get("A1").setR1C1Formula("=SUM(R[1]C[3]:R[3]C[4])"); |