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

时间:2012-07-24 12:10:58

标签: java apache-poi

我的问题:

我有两本工作簿。

Workbook1:从带有宏

的模板文件构建

工作簿2:空

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

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

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

2 个答案:

答案 0 :(得分:0)

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

检查documentation

答案 1 :(得分:0)

问题解决了,可能是不合逻辑的但是有效。

我首先将模板复制到新工作簿,然后遍历所有行并将其丢弃。结果是一个空工作表,但宏仍然存在。

然后我从模板工作簿中复制模板行,每次用数据

填充这些行