Apache POI Excel - 搜索和替换文本

3
我正在使用涉及将数据保存到Excel文件而不是保存到数据库的Java开发系统。这是客户的要求之一。
我已经使用Apache POI从Java创建了Excel文件,所以那方面没有问题。但现在我想要更便携的方法来完成这个任务。
我想要一个Excel模板,这样用户就可以设计自己的输出。数据将通过占位符替换插入到Excel中。
我的问题是,是否有一种方法可以使用Apache POI替换Excel中的一些文本?
谢谢!
1个回答

0

我认为POI没有内置此功能。它是一个低级API,可在任何环境中读写Excel,甚至在未安装或无法安装Excel的环境中(仅适用于二进制文件格式)。因此,您需要自己构建此功能,但并不太困难。

我们曾经制作过一个项目,用户可以使用特定值命名单元格,然后代码会查找这些单元格,并将其用作插入数据的提示。因此,这是可能的,但您需要根据要求自己编写代码来浏览前n行。

我们曾经解析前10行和50列以查找放置标题信息、摘要等的位置,然后是详细数据,并移动到另一个数据表中超过x行。它运行得非常好,为1个报告编写的代码可用于其他2个报告而无需进行修改。

对于数据库方面-必须定义查询,然后在另一个属性表中引用它们。

表示法类似于这样

q1=select c1,c2 ... where c1=p1 and c2=p2

q2=select c1,c2,c3 from ... where c1 = p3

p1,p2是来自配置、环境和屏幕的参数。

然后在表格中找到包含查询ID和列ID的字符{-和-}的位置,例如:

 {-q1.c1-}

如果只有一个结果(摘要数据),则解析它以获取查询ID和列编号,并替换为原位,否则在下面的行中也替换。

这些也可以是Excel公式的一部分 - 如果用户制作的Excel文件中公式无效,但是在我们替换值后,它们将开始工作。

如果当前的Excel在放置无效公式方面存在问题,则可以在属性表中接受模板 - 指定列ID和行号以及包括要用程序的值替换的字符串的Excel公式。


我已经阅读了你的答案,但某种程度上不符合我的要求。我们不会使用数据库服务器,因此我无法使用SQL查询。但是我理解你在项目中所做的工作。顺便说一下,我在发布这个问题一个小时后就解决了我的困惑。我会将它发布为答案,这样任何人都可以将其用作基础代码。同时,非常感谢你分享你的想法。 - Erieze Lagera
1
由于我的声望较低,我仍无法回答我的问题。我会在这里发布它,`我已经成功创建了一个包含占位符的Excel模板。通过这种方式,用户可以根据开发人员给定的占位符自定义他们的Excel报告。这是代码的链接: http://pastebin.com/kKfLTwcY使用pastebin发布整个类的源代码。如果您需要OSValidator的源代码, http://pastebin.com/ybVZR2yJ我希望这对每个人都有所帮助!` - Erieze Lagera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接