什么是段落(Microsoft.Office.Interop.Word.Paragraph)

问题描述 投票:0回答:1

Microsoft.Office.Interop.Word中的段落到底是什么?我认为这比Office Word应用程序本身认为的段落要多,因为该应用程序中的段落计数小于Microsoft.Office.Interop.Word.Paragraphs集合返回的段落计数。任何解释此问题的链接将不胜感激。

UPDATE!

例如,Microsoft Word App段落计数(通过单击状态栏上的字数信息返回)在文档中显示40段落,如下图所示(红色箭头指向该计数) 。

Paragraph count gotten inside microsoft Word application

另一方面,使用Word VSTO中的c#编程代码获得的段落计数返回52个段落。然后,添加到文档中的每个空白空间(不带文本的换行符)(通过按键盘上的ENTER按钮)都将算作返回此处的段落数的增加,但Word应用程序的段落数保持不变,为40段落。下图显示了Visual Studio System.Diagnostics.Debug.WriteLine输出中的段落计数。

Paragraphs count shown with the yellow arrow and how it increases with every empty space added

用于获取段落计数的代码是:

Word.Document myDoc = Globals.ThisAddIn.Application.ActiveDocument;
        Word.Paragraphs paragraphs = myDoc.Paragraphs;
        int numberOfParagraphs = paragraphs.Count;
        System.Diagnostics.Debug.WriteLine("This is the number of paragraphs returned: " + numberOfParagraphs);

基于此,我需要全面了解Microsoft.Office.Interop.Word.Paragraphs集合实际代表文档中的哪些元素;特别是那些Microsoft Word应用程序通常不将其计为段落的内容。

c# ms-word vsto word-addins
1个回答
0
投票

这既是一个有根据的猜测,也是一个答案,请随时纠正发现的错误。

所以您实际上可以在单词中显示换行符,它定义了段落是什么。

Enters shown in Word

现在,如您在图片中看到的,我有8个换行符,但它仅在单词中显示1个段落。

所以,我的有根据的猜测是,Word仅将写有某些内容的换行符算作段落,而Interop会显示每一个换行符,无论文本是空还是空。

您实际上可以通过在单词中显示换行符char并手动对其进行计数来检验该假设。或者,在您的代码中,您可以循环浏览段落并计算没有文本的每个段落。如果该计数的总和加上Word显示的段落数与您的代码中的段落数相同,那么我的假设是正确的。

如果不是的话,我是非常错误的

© www.soinside.com 2019 - 2024. All rights reserved.