Java 如何通过poi注册函数?

Java 如何通过poi注册函数?,java,excel,apache-poi,Java,Excel,Apache Poi,有人知道如何注册poi无法实现的函数吗? 例如:intercept?答案取决于您想要实现的功能类型。它是excel内置函数之一,具有文件格式的特殊预定义ID,POI当前没有实现该ID吗?还是针对用户定义的函数?(一些较新的excel函数实际上是以文件格式作为UDF实现的) 如果是后者,那么就有很好的文档说明如何在上这样做-我建议你,你应该没事 如果是前者,那就有点棘手了。你最好自己实现这个公式,在中打开一个增强bug并附加你的实现,然后抓取一个包含修复的夜间构建。对于测试,您需要编辑函数元数据文

有人知道如何注册poi无法实现的函数吗?
例如:intercept?

答案取决于您想要实现的功能类型。它是excel内置函数之一,具有文件格式的特殊预定义ID,POI当前没有实现该ID吗?还是针对用户定义的函数?(一些较新的excel函数实际上是以文件格式作为UDF实现的)

如果是后者,那么就有很好的文档说明如何在上这样做-我建议你,你应该没事

如果是前者,那就有点棘手了。你最好自己实现这个公式,在中打开一个增强bug并附加你的实现,然后抓取一个包含修复的夜间构建。对于测试,您需要编辑函数元数据文件,以便根据函数的文件格式ID注册类。这有点复杂,但如果每个人都为POI贡献了一个缺失的函数,那么我们很快就会到达那里


更新:关于实现内置函数的更多信息。首先,在(311)中找到函数的ID。接下来,实现该功能。现在,定制
org.apache.poi.ss.formula.eval.FunctionEval
,并将函数添加到适当的索引中。最后,提交一个补丁!(覆盖内置函数很难,部分原因是为了鼓励人们贡献缺失的函数!)

我想实现函数“intercept”,它是一个常规excel函数,而不是客户函数,poi现在无法对其进行评估。我在poi网站上找到了“svn.apache.org/repos/asf/poi/trunk/src/resources/main/org/apache/poi/ss/formula/function/functionMetadata.txt”,该函数被定义为“BIFF4中的新内置表函数”,但我不知道如何使用它。非常感谢。但是我不能清楚地理解你。你能更具体地解释一下吗?我应该自己编写函数吗?是的。如果您想使用POI当前没有实现的函数,那么您需要自己编写,然后请将其贡献回来!我只需要截取函数。你是说我必须自己写截取函数吗?functionMetada.txt的意思是什么?该文件中列出的函数是否已实现?是的,您需要自己编写,目前尚未实现。FunctionMetadata告诉您函数应该具有的ID、参数等