使用VSTO删除Word 2007中段落后的间距

时间:2010-02-16 12:14:47

标签: c# ms-word vsto

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

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

如何使用VSTO更改此内容?

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

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

编辑: 使用Word模板,我可以标记我正在填充的区域并将间距设置为0.然后通过我的表继承 - 因此它现在可以使用。但是,能够从C#控制间距而不依赖于Word中的继承会很好。

3 个答案:

答案 0 :(得分:14)

根据 Jose Anton Bautista ,解决方案如下:

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

或者

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

这非常有效,对我而言,它显示了我还可以访问文档元素的各种属性。

答案 1 :(得分:0)

我使用了内置样式“Table Grid”来删除单元格中的段落间距样式(Word 2007默认情况下,Insert&gt; Table使用相同的样式):

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);

答案 2 :(得分:0)

此外,您可能需要设置LineSpacingRule

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