Word 互操作不提取数据
Word Interop Not Extracting Data
我使用的是 Word 2016,但无法从对象获取数据。
我的代码片段是这样的:
void Application_DocumentOpen(Word.Document document)
{
var test = document.Paragraphs;
}
在作业查看段落之前给出:
方法 Microsoft.Office.Interop.Word.DocumentClass.get_Paragraphs() 调用的评估需要 COM 调用。在此上下文中不支持对 COM 对象的方法求值。
在它简单给出之后:System._ComObject 成员 NativeView 具有 0x0df4fd18
我尝试搜索这两个错误,但没有找到相关结果。
更新
所以我将其与他们给出的示例进行了比较,即:
void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel)
{
Doc.Paragraphs[1].Range.InsertParagraphBefore();
Doc.Paragraphs[1].Range.Text = "This text was added by using code.";
}
巧妙的是,如果我查看 Doc.Paragraphs[1].Range.Text
他们的示例,我会得到该段落的文本。如果我尝试使用我的版本进行操作,我会得到:无法将 [] 的索引应用于 'Paragraphs'
类型的表达式
所以...段落没有返回我期望的结果。是否有可能是我无法访问该文档,因为该方法在加载之前就已触发?
显然只有被调用的 methods/properties 存在于 class 中。这是有道理的,因为它可以防止对象不断加载大量数据,但调试起来有点混乱。
无论如何,将测试更改为 doc.Paragraphs[1]。Range.Text 似乎使对象可见。
我使用的是 Word 2016,但无法从对象获取数据。
我的代码片段是这样的:
void Application_DocumentOpen(Word.Document document)
{
var test = document.Paragraphs;
}
在作业查看段落之前给出:
方法 Microsoft.Office.Interop.Word.DocumentClass.get_Paragraphs() 调用的评估需要 COM 调用。在此上下文中不支持对 COM 对象的方法求值。
在它简单给出之后:System._ComObject 成员 NativeView 具有 0x0df4fd18
我尝试搜索这两个错误,但没有找到相关结果。
更新 所以我将其与他们给出的示例进行了比较,即:
void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel)
{
Doc.Paragraphs[1].Range.InsertParagraphBefore();
Doc.Paragraphs[1].Range.Text = "This text was added by using code.";
}
巧妙的是,如果我查看 Doc.Paragraphs[1].Range.Text
他们的示例,我会得到该段落的文本。如果我尝试使用我的版本进行操作,我会得到:无法将 [] 的索引应用于 'Paragraphs'
所以...段落没有返回我期望的结果。是否有可能是我无法访问该文档,因为该方法在加载之前就已触发?
显然只有被调用的 methods/properties 存在于 class 中。这是有道理的,因为它可以防止对象不断加载大量数据,但调试起来有点混乱。
无论如何,将测试更改为 doc.Paragraphs[1]。Range.Text 似乎使对象可见。