从Word文档模板中读取自定义字段

时间:2014-09-09 20:13:44

标签: c# ms-word office-interop

我编写了一些代码,根据How do I add custom properties to a Word doc with .NET 4?

中的信息将自定义字段添加到Word文档模板

它可以工作,但如果该字段已经存在则抛出异常。因此,我想阅读现有的自定义字段以检查已有的字段。

我根据http://msdn.microsoft.com/en-us/library/dhxe2d75(v=vs.110).aspx

的信息编写了一个函数

但它在foreach循环的第一次迭代时崩溃。

如果没有自定义属性,则不会抛出异常。

我做错了什么?


类型' System.InvalidCastException'的第一次机会异常发生在未知模块中。 附加信息:无法转换类型为' System .__ ComObject'的COM对象。接口类型' Microsoft.Office.Core.DocumentProperty'。此操作失败,因为QueryInterface调用COM组件上的接口与IID& {2DF8D04E-5BFA-101B-BDE5-00AA0044DE52}'由于以下错误而失败:不支持此类接口(来自HRESULT的异常:0x80004002(E_NOINTERFACE))。

    private bool PropertyExists(Word.Document Document, string PropertyName)
    {

        bool _bRet = false;
        foreach (Microsoft.Office.Core.DocumentProperty _property in Document.CustomDocumentProperties)
        {
            if (_property.Name == PropertyName)
            {
                _bRet = true;
            }
        }

        return _bRet;
    }

0 个答案:

没有答案