【问题标题】:C# MS Word Interoperability - how to stretch-fill last column in tableC# MS Word 互操作性 - 如何拉伸填充表格中的最后一列
【发布时间】:2020-11-09 03:39:01
【问题描述】:

我在用 c# 编写的 WinForms 应用程序中使用 Microsoft.Office.Interop.Word 以编程方式创建 Word 文档。 我需要创建一个表,其中前两列具有预定义的固定宽度,第三列(最后一列)拉伸以填充可用页面的剩余宽度(如果我没有指定任何宽度,通过默认情况下,表格会自行拉伸以填充页面的可用宽度,并且所有 3 列的大小都会被同等调整,这不是我需要的)。

我可以像这样预设前两列的大小:

myTable.Columns[1].Width = 130;
myTable.Columns[2].Width = 70;

那部分很简单,工作正常。但我不知道如何调整第三列以拉伸填充页面宽度的其余部分。这是我的最后一次尝试,导致第三列超出页面边缘:

myTable.Columns[3].Width = wordApp.UsableWidth - myTable.Columns[1].Width - myTable.Columns[2].Width;

我还尝试不为第 3 列的宽度指定值,希望它默认占用表格的其余宽度 - 但是,第 3 列被调整为一些看似任意的值(使用此列上的单元格内容被包裹以适应)并且表格的整体宽度缩小以适合所有 3 列,这小于页面的可用宽度。

我尝试为以下表格属性使用不同的值但没有成功:

myTable.AllowAutoFit = true;
myTable.PreferredWidth = wordApp.UsableWidth;

如果有人可以提供帮助,将不胜感激。谢谢。

如果这有帮助,我包含了相关的代码块:

Microsoft.Office.Interop.Word.Table myTable = wordDoc.Tables.Add(paraTitle.Range, 2, 3, ref missing, ref missing);
myTable.Borders.Enable = 1;
myTable.AllowAutoFit = true;
myTable.PreferredWidth = wordApp.UsableWidth;
//myTable.PreferredWidthType = WdPreferredWidthType.wdPreferredWidthAuto;
myTable.Columns[1].Width = 130;
myTable.Columns[2].Width = 70;
myTable.Columns[3].Width = wordApp.UsableWidth - myTable.Columns[1].Width - myTable.Columns[2].Width;
myTable.Rows[1].Cells[1].Range.Text = "Items returned by:";
myTable.Rows[1].Cells[1].Range.Bold = 1;
myTable.Rows[1].Cells[2].Range.Text = "Name";
myTable.Rows[1].Cells[2].Range.Bold = 1;
myTable.Rows[1].Cells[3].Range.Text = "(person's name and initials...)";
myTable.Rows[1].Cells[3].Range.Bold = 0;
myTable.Rows[2].Cells[2].Range.Text = "Date / Time";
myTable.Rows[2].Cells[2].Range.Bold = 1;
myTable.Rows[2].Cells[3].Range.Text = "(timestamp...)";
myTable.Rows[2].Cells[3].Range.Bold = 0;

【问题讨论】:

    标签: c# winforms office-interop


    【解决方案1】:

    UsableWidth 指的是 Word 应用程序的Window 宽度,而不是文档页面宽度。

    改为使用: doc.PageSetup.PageWidth - (doc.PageSetup.LeftMargin + doc.PageSetup.RightMargin);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多