3

有谁知道如何注册一个 poi 无法实现的功能?例如:拦截?

4

1 回答 1

1

答案取决于你想要实现什么样的功能。它是 Excel 内置函数之一,在文件格式中具有特殊的预定义 ID,POI 目前没有实现吗?还是用于用户定义的功能?(最近的一些excel函数实际上是作为文件格式的UDF实现的)

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

如果是前者,那就有点棘手了。最好的办法是自己实现公式,在POI Bugzilla中打开一个增强错误并附加您的实现,然后获取包含您的修复的每晚构建。为了进行测试,您需要编辑函数元数据文件,以根据函数的文件格式 ID 注册您的类。这有点繁琐,但如果每个人都为 POI 贡献了一个缺失的功能,那么我们很快就会到达那里!

更新:有关实现内置功能的更多信息。首先,在 functionMetadata.txt 中找到函数的 ID 您的情况为 311)。接下来,实现功能。现在,org.apache.poi.ss.formula.eval.FunctionEval在适当的索引处自定义并添加您的函数。最后,提交补丁!(重写内置函数是半刻意的,部分原因是为了鼓励人们贡献缺失的函数!)

于 2012-09-02T06:14:25.787 回答