使用VSTO在Word 2007中删除段落之后的空格

问题描述:

我正在C#中创建和填充Word 2007表格。当我在Word中查看结果时,每个单元格在文本之后都附加了额外的垂直空间。在Word中,这可以通过“页面布局”/段落/间距进行调整,初始值为10pt。使用VSTO在Word 2007中删除段落之后的空格

--------------------------------------------------- 
| Text...  | Text.... | More text...   | 
|    |   |      | <- Extra spacing 
--------------------------------------------------- 
|    |   |      | 

这怎么可以改变使用VSTO?

我试图记录一个宏,希望在VB代码中得到一些答案 - 它似乎没有响应间距值的变化。

我一直无法在MSDN的VSTO文档中找到任何相关内容。

编辑: 使用Word模板,我可以标记我填充的面积和间距设置为0。然后通过我的表继承 - 因此它适用于现在。但是,如果能够控制C#的间距并且不依赖于Word中的继承,那将会很好。

根据何塞·安东·包蒂斯塔的解决方案是这样的:

Word.Document currentDocument; 
currentDocument.Paragraphs.SpaceAfter = 0; 

或者

Word.Table table; 
table.Range.Paragraphs.SpaceAfter = 0; 

这很好,对我来说,它显示了我还可以访问文档元素的各种属性的位置。

+0

非常好。这个“Range.Paragraphs.SpaceAfter = 0”也适用于单独的paragragh - 如果我们在文档中有更多的段落,则不需要申请文档。我们也可以将它应用于每个段落 – 2016-01-23 09:00:12

我用内置式“表网格”,以删除段落间距风格在细胞(在Word 2007默认情况下,插入>表使用相同的样式):

Word.Document Doc = Globals.ThisDocument.Application.ActiveDocument; 
Word.Table WordTable = Doc.Tables.Add(curSel.Range, 8, 5, ref missing, ref missing); 

//Table Style 
object tableStyle = "Table Grid"; 
WordTable.set_Style(ref tableStyle); 
+0

@Mike:我想你的解决方案,但我会在WordTable.set_Style(REF TABLESTYLE)异常;.但我找到了另一个解决方案 – Chau 2010-02-17 13:55:51

+1

该异常可能来自未找到“表格网格”样式。我不会对每个表格进行单独的格式更改,而是为所有具有相同格式的表格创建表格样式。 – 2010-02-17 17:20:25

你也可能需要设置LineSpacingRule

myTable.Range.Paragraphs.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;