我在C#中创建并填充Word 2007表。当我在Word中查看结果时,每个单元格在文本后面都附加了额外的垂直空间。在Word中,这可以通过“页面布局”/段落/间距进行调整,其中初始值为10pt。
---------------------------------------------------
| Text... | Text.... | More text... |
| | | | <- Extra spacing
---------------------------------------------------
| | | |
如何使用VSTO更改此内容?
我试图记录一个宏,希望在VB代码中得到一些答案 - 它似乎没有响应间距值的变化。
我无法在MSDN上的VSTO文档中找到任何相关内容。
编辑: 使用Word模板,我可以标记我正在填充的区域并将间距设置为0.然后通过我的表继承 - 因此它现在可以使用。但是,能够从C#控制间距而不依赖于Word中的继承会很好。
答案 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;