我需要一些关于如何处理特定问题的建议我正在尝试构建一个解决方案,但是在两个糟糕的选项之间找到自己。应用程序有大量的word doc模板集合。该应用程序将动态生成其中一个模板并填写已添加书签的值。
我有几个方法可以解决这个问题......
使用Interop库:我很容易用Interop库填写一个实际的模板化文档,通过浏览并抓取所有书签并填写并再次保存文档。
问题:我需要能够支持2003-2010版本的Word;版本成为一个问题...如果我链接错误版本的Interop.Word,可能会导致旧版本用户的兼容性问题?我没有太多要在这里测试,所以我不确定......
VBA Macro:我之前实际上已经使用此方法构建excel电子表格;将字段写入csv,读入通过VBA从模板生成的新文档,以及新文档ta-da。
问题:最终用户PC上的安全设置可能非常严格。 VBA很可能被禁用。
有没有更好的方法来解决这个问题,我没有看到? Interop版本可能不像我想象的那么重要吗?除了OfficeXML,这是我们正在使用的文件的灾难(我看起来......),还有另外一个很好的可能性吗?
编辑:提前提交..该死的浏览器-_-;
答案 0 :(得分:0)
VBA通常在打开的文档和模板中被阻止。但是允许Word启动目录中的模板。我不确定Word 2007和2010,但是在Words 97到2003中,有一个wrdstart目录可以包含在word启动时加载的模板。 normal.dot文件在那里,你可以添加自己的文件来包含脚本,宏工具栏和其他东西。
我认为从那以后这本质上没有改变,虽然我不再进行大量的Word开发,所以我不确定。
[编辑]
是的,它仍然存在。在Word 2010中,您将在文件中找到该设置 - >选项 - >高级 - >文件位置(按钮)。有一个'Startup'设置,指向一个目录。该文件夹中的模板将在启动时加载,并且应该能够执行它们的宏。
检查文件 - >选项 - >信托中心 - >信任中心设置(按钮)。在那里,您可以指定允许的文档和受信任的位置。 wrdstart目录在那里,但您可以添加自己的目录。