【问题标题】:Reading contents under a particular heading of word document using word interop 2007使用 word interop 2007 读取 word 文档特定标题下的内容
【发布时间】:2012-06-09 17:28:53
【问题描述】:

我一直在试图弄清楚如何阅读存在标题的段落内容。标题本身是目录的一部分。标题将具有特定的样式(例如标题 1)。

例如:“Introduction”是目录中样式为 Heading 1 的条目。我想阅读“Introduction”标题下的内容,但不想阅读更多内容(即不是 Introduction 子标题下的内容)

我一直在尝试使用样式/样式、内容表、段落/段落、范围来做到这一点。仍然无法想出有效的解决方案。

我在 VS 2010 的 VB.NET 中工作。我正在使用 2007 对象模型(Office 2007 互操作)这个词,如 @http://msdn.microsoft.com/en-us/library/bb244515(v=office.12 所述)

任何指针将不胜感激

问候 萨米尔

【问题讨论】:

  • 那么你想选择从标题1开始到下一个标题结束的任何类型的所有内容吗?是否所有段落都包含特定样式?
  • 是的,这是正确的。所有段落的风格相同。现在我正在尝试遍历所有段落,并检查 wdStyleHeading1 的段落 wdbuiltinstyle。我在想一旦我得到一个平等我可以检查段落文本。如果这等于“介绍”,那么我知道下一段会引起我的兴趣。我还可以交叉检查下一段是否具有正常的段落样式。我的问题是段落样式和内置样式似乎没有相同的类型。我得到 comException for 'code' p.Style.GetType.Name = WdBuiltinStyle.wdStyleHeading1
  • 你匹配的东西有些不同,p.Style = "Heading 1" 不适合吗?
  • 您好 Remou,感谢您的回复。我试过 If p.Style="Heading 1" 但后来我得到 System.InvalidCastException。详细信息有“{”重载解析失败,因为无法使用这些参数调用 Public '=':'Public Shared Operator =(a As String, b As String) As Boolean':Argument matching parameter 'a' cannot convert from '__ComObject ' 到 'String'。"} 谢谢 Sameer

标签: vb.net ms-word office-interop


【解决方案1】:

我终于找到了解决方案。

下面的代码 sn-p 检测具有“标题 1”样式的段落

   For Each paragraph As Paragraph In doc.Paragraphs
        Dim style As NetOffice.WordApi.Style = paragraph.Style
        If style.NameLocal = "Heading 1" Then
            paragraph.Next()
            Console.WriteLine(paragraph.Range.Text)
            Console.WriteLine("*********")
        End If
    Next

谢谢

同样的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多