使用Apache POI在模板文件中复制宏?

问题描述:

我的问题:使用Apache POI在模板文件中复制宏?

我有两个工作簿。

Workbook1:从模板文件,宏

Workbook2构造:空

在循环中导出我的数据结构。在每一个循环中,我将模板复制到wokrbook2中,然后在其中写入数据,标记我下一个循环传递的行,然后再次执行相同的操作。

最后,我已经将模板复制到工作簿2并将数据写入相应的模板中多次(与数据集一样多次)。

我的问题:原始模板文件中有一个宏,当我打开新创建的文件时不见了。所有数据都被正确写入,只是缺少宏功能。

+0

你为什么不打开工作簿复印件1份,这些,与真实值替换模板值,并保存? – Gagravarr 2012-07-24 13:36:33

+1

问题解决了,也许不合逻辑,但它的工作原理。 我首先将模板复制到新的工作簿中,然后遍历所有行并将其扔掉。结果是一张空白表,但宏仍然存在。 然后,我成功地从模板工作簿复制模板行,并每次填充这些数据。 (在循环中) – dutchman79 2012-07-24 13:54:20

我不知道其他的解决方案,但有Apache的POI的一个限制是: Macros can not be created. However, reading and re-writing files containing macros will safely preserve the macros.

检查documentation

+0

问题解决。 – dutchman79 2012-07-24 13:50:26

+0

将它作为答案发布,无论你做了什么。这对其他人会有所帮助 – 2012-07-24 13:54:26

+0

我把它作为评论发布到我上面的原始问题上。 – dutchman79 2012-07-25 07:17:28

问题解决了,也许unlogical但它的作品。

我首先将模板复制到新的工作簿中,然后迭代所有行并将其扔掉。结果是一张空白表,但宏仍然存在。

然后我从模板工作簿复制模板行和填充数据每次