如何让Word表格中的文本垂直对齐?

时间:2011-02-23 19:55:06

标签: c# visual-studio-2010 ms-word automation

我正在为一个客户创建一个Word文档作为C#VS 2010 Office Word项目,该客户希望能够生成一个文档,该文档将允许特定交易的适当数量的签名位置下降。有一个表需要生成足够的行,然后在文档中我必须为每个签名者生成个人信息的预制块。

我现在正在制作桌子部分并且几乎可以随心所欲地使用它,但是所有单元格中的文本都是垂直顶部对齐的。在过去的几天里,我访问了整个互联网中的每个站点,以获取有关.Net 4,VS 2010和Office 2010最新的Word自动化的最新信息。我的语法编译没有错误,但未能根据我的意愿调整底部。我甚至用IntelliSense刺伤了我是否能找到另一种解决方案。

此代码专注于单行:
tbl.Range.Rows [1] .Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalBottom; 这样运行但文本仍保持氦气。

那里有Word自动化向导吗?

6 个答案:

答案 0 :(得分:4)

我无法重现这个问题。这段代码很好用:

using Microsoft.Office.Interop.Word;
class Program
{
    static void Main(string[] args)
    {
        DocumentClass document = new DocumentClass();
        object defaultTableBehavior = null, autoFitBehavior = null;
        Table tbl = document.Content.Tables.Add(document.Content, 2, 2, ref defaultTableBehavior,
            ref autoFitBehavior);
        tbl.Rows[2].Cells[2].Range.InsertAfter("This is a test.");
        tbl.Rows[2].Cells[2].Range.ParagraphFormat.SpaceAfter = 0f;
        tbl.Rows[2].Cells.Height = 50f;
        tbl.Range.Rows[2].Cells.VerticalAlignment = WdCellVerticalAlignment.wdCellAlignVerticalBottom;
    }
}

我怀疑还有其他一些问题,比如之后的段落间距,或者选择了错误的范围?

答案 1 :(得分:4)

文本可能是垂直居中的,但它包含的段落间距不是“0”。因此,Word将额外的行视为需要包含在垂直居中中的附加文本。

要解决此问题,只需突出显示要垂直居中的文本(如果您想要的话,则突出显示整个表格)。然后转到“页面布局”并将“间距”“后”减少为“0”。如果文本顶部还有空格,则还需要将“间距”“之前”减少为“0”。在文本之前或之后没有间距,实际文本现在将居中。

答案 2 :(得分:2)

这是一个老问题,但我遇到了同样的问题并解决了这个问题。将其添加到您的表格中:

tbl.Range.ParagraphFormat.SpaceAfter = 1; // change the 1 to how much space you want extra in your cell

答案 3 :(得分:1)

如果有人跟进这篇文章,我的文本也被安排在单元格的顶部。 所以对我来说,以下的方式做了我需要的方式

oTable.Range.ParagraphFormat.SpaceAfter = 6;
oTable.Range.ParagraphFormat.SpaceBefore = 6;

如果需要,可以调整空间。

答案 4 :(得分:-1)

以下在Word 2011 for Mac中为我工作 - 在众多网站中没有其他建议似乎改变了我的垂直单元格对齐方式。通过反复试验找到了这一点。 我突出显示了我想要垂直对齐到右下方的单元格,并将行间距(在我的情况下,表格为1.5)更改为这些单元格的1。它终于奏效了。希望它有所帮助。

答案 5 :(得分:-2)

突出显示表格中的文字 - >转到行间距选项 - >在Spacing Before / After部分中将Before和After设置为零px(或等于)。

所有对齐选项现在都可以使用。