Direktberäkning av anpassad funktion utan att skriva den i ett kalkylblad med Node.js via C++
Direkt beräkning av anpassad funktion utan att skriva den i en kalkylblad
Denna artikel förklarar hur du kan direkt beräkna dina anpassade funktioner utan att först skriva dem i ett kalkylblad. Använd metod Worksheet.calculateFormula(formula, opts) för detta ändamål.
Se följande exempelkod som illustrerar användningen av denna metod. Vi har använt en anpassad funktion som heter MyCompany.CustomFunction() och beräknar dess värde som “Aspose.Cells.” på egen hand och sedan konkateneras detta värde automatiskt med värdet för cell A1, vilket är “Välkommen till " av beräkningsmotorn och det slutliga beräknade värdet returneras som “Välkommen till Aspose.Cells.”. Som du kan se i koden har vi inte skrivit vår anpassade funktion någonstans i en arbetsbok och den beräknas direkt av vår egen anpassade logik.
Programmeringsexempel
const AsposeCells = require("aspose.cells.node");
class CustomEngine extends AsposeCells.AbstractCalculationEngine {
// Override the Calculate method with custom logic
calculate(data) {
// Check the formula name and calculate it yourself
if (data.getFunctionName() === "MyCompany.CustomFunction") {
// This is our calculated value
data.setCalculatedValue("Aspose.Cells.");
}
}
}
class ImplementDirectCalculationOfCustomFunction {
static run() {
// Create a workbook
const wb = new AsposeCells.Workbook();
// Access first worksheet
const ws = wb.getWorksheets().get(0);
// Add some text in cell A1
ws.getCells().get("A1").putValue("Welcome to ");
// Create a calculation options with custom engine
const opts = new AsposeCells.CalculationOptions();
opts.setCustomEngine(new CustomEngine());
// This line shows how you can call your own custom function without
// a need to write it in any worksheet cell
// After the execution of this line, it will return
// Welcome to Aspose.Cells.
const ret = ws.calculateFormula("=A1 & MyCompany.CustomFunction()", opts);
// Print the calculated value
console.log("Calculated Value: " + ret);
}
}
// Example invocation
ImplementDirectCalculationOfCustomFunction.run();
Konsoloutput
Nedan är konsol utmatningen av ovanstående provkod.
Calculated Value: Welcome to Aspose.Cells.