2

我需要从特定点开始阅读word文档。该关键字取自下拉组合框。关键字类似于 [blah blah, blah, 001]

所以,我只需要从该关键字读取内容到下一个标题......

我用它来逐行读取标题编号,但标题编号不起作用

string headNum = objparagraph.Range.ListFormat.ListString;
string sLine = objparagraph.Range.Text;
4

2 回答 2

2
       Word.Application word = new Word.Application();
       Word.Document doc = new Word.Document();
       object fileName = @"C:\wordFile.docx";
        // Define an object to pass to the API for missing parameters
        object missing = System.Type.Missing;                
        doc = word.Documents.Open(ref fileName,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing);
        string ReadValue = string.Empty;
            // Activate the document
        doc.Activate();

         foreach (Word.Range tmpRange in doc.StoryRanges)
         {
            ReadValue += tmpRange.Text;
         }
于 2013-02-25T13:35:59.500 回答
0

如果我理解正确,您需要从关键字开始阅读 Word 文档到下一个标题。换句话说,类似于以下文档中的红色文本:

在此处输入图像描述

在这种情况下,您可以通过以下方式使用GemBox.Document完成此操作:

string keyword = " [blah blah, blah, 001]";
DocumentModel document = DocumentModel.Load("input.docx");

ContentPosition start = document.Content
    .Find(keyword)
    .First()
    .End;

ContentPosition end = new ContentRange(start, document.Content.End)
    .GetChildElements(ElementType.Paragraph)
    .Cast<Paragraph>()
    .First(p => p.ParagraphFormat.Style != null && p.ParagraphFormat.Style.Name.Contains("heading"))
    .Content
    .Start;

string text = new ContentRange(start, end).ToString();

变量的text值将是:

我们要检索的示例文本内容。
另一个示例段落。

此外,这里还有其他阅读获取内容示例,它们包含一些有用的信息。

于 2019-12-04T11:03:21.777 回答