【问题标题】:How can I control table column width in Word documents using DocX?如何使用 DocX 控制 Word 文档中的表格列宽?
【发布时间】:2014-07-04 17:44:07
【问题描述】:

我正在尝试重新创建这样的表:

我正在使用 DocX 库来处理 Word 文件,但我无法正确设置宽度。尝试设置单元格的宽度似乎仅在未设置为窗口自动调整模式时才有效,并且仅在指定宽度大于表格宽度的一半时才似乎调整大小,或者更确切地说,我可以使单元格大于宽度的一半,但不能更小。

重现预期表格的最简单方法是什么?

【问题讨论】:

    标签: c# ms-word docx novacode-docx


    【解决方案1】:

    我自己找到了答案。为了正确设置宽度,您必须遍历列中的每个单元格并设置每个宽度。这不适用于选择的任何自动调整选项。

    【讨论】:

    • 太糟糕了,它不能在表级别设置。
    【解决方案2】:

    试试这个:

    Table table = doc.AddTable(2, 2);
    table.SetColumnWidth(0, 500);
    //first is column index, the second is column width
    

    【讨论】:

      【解决方案3】:

      要标记的旧帖子的位,但是在遇到相同问题后,似乎单元格或列上的宽度都没有实际工作,因此作为一种肮脏的解决方法,您可以循环遍历每一列并添加单元格文本到每个单元格,使文本变为白色,最后使用 autofit 选项自动适应内容。

      Table t2 = doc.AddTable(2, 8);
      for (int i = 0; i < t2.RowCount; i ++)
      {
           for(int x = 0; x < t2.ColumnCount; x++)
           {
              t2.Rows[i].Cells[x].Paragraphs.First().Append("12").Color(Color.White);
           }
      }
      t2.AutoFit = AutoFit.Contents;
      doc.InsertTable(t2);
      

      【讨论】:

        【解决方案4】:

        就是这样:

        Table t = doc.AddTable(1, 5);
        t.SetWidthsPercentage(new[] { 20f, 20f, 40f, 10f, 10f }, 500);
        

        float 数组设置每列的宽度百分比,第二个参数是表格的总宽度。

        【讨论】:

          猜你喜欢
          • 2022-11-19
          • 1970-01-01
          • 2023-04-08
          • 1970-01-01
          • 1970-01-01
          • 2023-01-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多