首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C# Word interlop获取Word文档中每页第一段的范围

如何使用C# Word interlop获取Word文档中每页第一段的范围
EN

Stack Overflow用户
提问于 2020-04-24 13:20:29
回答 1查看 614关注 0票数 2

我有一个有9页的单词文件。

我用这个:

代码语言:javascript
复制
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Open(file);
Microsoft.Office.Interop.Word.Range docRange = wordDoc.Range();

但是,这段代码会给出所有段落的范围。

如何使用C#单词互操作获取每一页第一行(或第一段)的文本范围?

抱歉我的英语..。

Ex:,在第一页,我想得到文本:

“苹果公司是一家总部设在加州库比蒂诺的美国跨国技术公司。

或第1段

苹果公司(

"Apple .)是一家总部设在加州库比蒂诺的美国跨国科技公司,设计、开发和销售消费类电子产品、计算机软件和在线服务。它被认为是四大科技公司之一,与亚马逊、谷歌和微软并驾齐驱。

第二页是:

我想要的案文:

苹果公司由史蒂夫·乔布斯、史蒂夫·沃兹尼亚克和罗纳德·韦恩于1976年4月创立,负责开发和销售

苹果公司是由史蒂夫·乔布斯、史蒂夫·沃兹尼亚克和罗纳德·韦恩于1976年4月创立的,目的是开发和销售沃兹尼亚克的Apple个人电脑,但韦恩在12天内卖掉了他的股份。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 20:23:34

您可以尝试遍历所有段落并获得页码。然后选择页面的第一段。

代码语言:javascript
复制
using Word = Microsoft.Office.Interop.Word;

private void FindFirstParagraphOfEachPage()
{
    Word.Application wordApp = new Word.Application();
    Word.Document wordDoc = wordApp.Documents.Open(filePath);
    Word.Range docRange = wordDoc.Range();

    var paragraphs = new List<Paragraph>();

    foreach (Word.Paragraph p in wordDoc.Paragraphs)
    {
        paragraphs.Add(new Paragraph()
        {
            PageNumber = (int)p.Range.get_Information(Word.WdInformation.wdActiveEndPageNumber),
            ParagraphText = p.Range.Text.ToString()
        });
    }
    var result = paragraphs.Where(x => !string.IsNullOrWhiteSpace(x.ParagraphText))
                        .GroupBy(x => x.PageNumber)
                        .Select(x => x.First());

    wordDoc.Close();
    wordApp.NormalTemplate.Saved = true;
    wordApp.Quit();
}

帮助类来存储页码和段落文本。

代码语言:javascript
复制
class Paragraph
{
    public int PageNumber { get; set; }
    public string ParagraphText { get; set; }
}

我不确定是否要释放这些物体。它可能需要一些编辑和测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61409376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档