我的 Windows 窗体应用程序使用 Novacode DocX 从模板编写文档。项目的 Novacode 部分运行完美,文件保存。问题是当我加载文档时,当 Novacode 部分添加标题等时,字段(目录)不会更新。
我可以并且确实编写了一个宏来更新 open 上的字段。这将解决问题,但不是每个使用我的应用程序的人都会有这个宏。由于各种原因,我无法将文件另存为带有宏的 .docm 文件(假设文件必须是“.docx”)。
我发现 Microsoft.office.interop.Word 程序集将允许我调用“ Fields.Update ”。我的理解是这可以解决问题,但我不能阻止没有安装 word 的用户运行我的应用程序。我的理解是,如果我“使用 Microsoft.Office.Interop.Word”,或者在我的引用中有它,如果有人没有词,应用程序将无法运行。
所以我有检查是否安装了 word 的代码。如果我运行它并安装它,我可以使用“ Late Binding ”来运行互操作代码吗?其他相关问题,有回复指向“ NetOffice ”作为运行互操作的一种方式,而无需检查是否安装了 word。
我正试图通过我的研究使这一点尽可能全面。我的问题与这个问题非常相似“ 如何轻松测试我的 C# 应用程序找不到外部程序集的情况? ”。我希望这个问题可以很快为每个人解决,但我不确定它会不会。
旁注,如果有人知道一种方法来更新以“.docx”格式保存的word文档的字段,甚至只是现有的目录,而没有安装word,这将是很棒的知道,并且会绕过我的整个问题。虽然我仍然想知道互操作问题的答案。
这也是我在 StackOverflow 上的第一个真正问题,如果您有建议的标签,请连同您的答案一起做。如果您对我提出问题的方式有反馈,我也会接受,但请不要在没有任何答案的情况下关闭/删除问题。我链接到类似的问题,但这些问题有一段时间没有得到回应。我相信我已经按照规则做了一切。