Ich versuche, wie unten eine Funktion zu registrieren:Erste Illegal: Unbekannte Funktion während einer Funktion Apache poi Registrierung
String[] functionNames = { "removeExtraChar" } ;
FreeRefFunction[] functionImpls = { new RemoveExtraChar() } ;
UDFFinder udfToolpack = new DefaultUDFFinder(functionNames, functionImpls) ;
// register the user-defined function in the workbook
workbook.addToolPack(udfToolpack);
System.out.println("Registered function");
Function func = new Function() {
public ValueEval evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex) {
return ErrorEval.NA;
}
};
WorkbookEvaluator.registerFunction("testRemoveExtraChar", func);
Aber ich bin immer Illegal wie unten:
java.lang.IllegalArgumentException: Unknown function: testRemoveExtraChar
at org.apache.poi.ss.formula.eval.FunctionEval.registerFunction(FunctionEval.java:354)
at org.apache.poi.ss.formula.WorkbookEvaluator.registerFunction(WorkbookEvaluator.java:773)
Beachten Sie, dass die Ausnahme sagt "Unbekannte Funktion". Ich bin mir nicht sicher, was ich hier falsch mache. Jede Hilfe wird geschätzt.
Dank
Wir haben die von Ihnen vorgeschlagene Änderung vorgenommen, aber die Funktion "removeExtraChar" ist im Excel nicht verfügbar. Irgendwelche Hinweise, warum wir removeExtraChar nicht in generated excel sehen können? – Raj
irgendein Update auf diesem ?? – Raj
Ich glaube nicht, dass die Excel-Datei die Funktion danach "enthalten" wird. Sie haben die Funktion in Java implementiert, Excel unterstützt nur VBA. Die Absicht hier ist, Ihre VBA-Funktion neu zu implementieren, so dass POI die Datei in ähnlicher Weise wie Excel verarbeiten kann. – centic