java - Apache POI Excel - 搜索和替换文本

标签 java excel apache-poi portability

我正在使用 Java 开发系统,该系统涉及将数据保存到 Excel 文件而不是保存到数据库。这是客户的要求之一。

我已经使用 Java 中的 Apache POI 创建了 Excel 文件,因此存在问题。但现在我想要有更便携的方式来做到这一点。

我想要一个Excel模板,这样用户就可以设计自己的输出。数据将通过占位符替换插入到 Excel 中。

我的问题是,有没有办法使用 Apache POI 替换 Excel 中的某些文本?

谢谢!

最佳答案

我认为 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 时,该公式将毫无值(value),但在我们替换这些值后,它们将开始工作。

如果当前 Excel 在放置 invalued 公式时出现问题,您可以接受属性表中的模板 - 指定 inf 列 ID 和行号,以及包含要替换为程序值的字符串的 Excel 公式

关于java - Apache POI Excel - 搜索和替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466575/

相关文章:

java - 关于 bufferedModels 和键盘输入的 JGoodies Binding bug 问题

java - 从Excel中读取表格数据并在Java中显示唯一的列组合数

java - 我需要将 Apache POI 图片从 word 文档转换为 html 文件

java - 使用 Java、Apache POI 写入单词表单元格?

Excel - 当值不相邻时如何突出显示自己行中的重复值

java - 泽西网络服务

java - 如何在运行时创建xml文件?

java - Json字符串解析为具有多个对象的java对象

vba - 使用 VBA 从列表中消除重复项并将结果复制到单独的工作表中

vba - 可以在 Excel VBA 中全局声明工作表对象吗?