如何通过poi注册function?

有谁知道如何注册一个不能由poi实现的函数? 例如:拦截?

答案取决于你想实现什么样的function。 它是一个Excel的内置函数有一个特殊的文件格式预定义的ID,目前POI目前没有实现? 或者是用户定义的function? (一些更新的Excel函数实际上是以文件格式实现的UDF)

如果是后者,那么关于如何在POI网站上做到这一点的优秀文档 – 我build议你遵循它 ,你应该没问题!

如果是前者,那就有点棘手了。 您最好的select是自己实施配方,在POI Bugzilla中打开一个增强bug并附加您的实现,然后在您的修补程序中包含每晚构build。 为了testing,您需要编辑函数元数据文件,以便根据函数的文件格式ID注册您的类。 这有点儿烦琐,但是如果每个人都为POI贡献了一个缺失的function,那么我们将立即在那里!

更新:关于实现内置函数的更多信息。 首先,在functionMetadata.txt (你的情况下为311)中find函数的ID。 接下来,执行该function。 现在,自定义org.apache.poi.ss.formula.eval.FunctionEval并在适当的索引处添加你的函数。 最后,提交一个补丁! (这是半刻意难以覆盖的内置function,部分是为了鼓励人们贡献缺失的!)