使用DocX dll将行添加到word文件(doc文件)中的现有表

时间:2016-10-11 08:30:44

标签: c# ms-word docx doc

我有一个在现有表格中添加行的问题, 在我的应用程序中我操纵word文件。 在我的模板(word文件)中,已经有一个包含8行的表,不包括标题(你可以在图片中看到),在我的应用程序中构建一个新的word文件时,有时我想在表中添加更多行,因为我有更多数据要插入(来自dataGridView的数据)。就像在下面的代码中,我根据我的datagridview有多少行添加行,问这个:

using (DocX document = DocX.Load(filename))
{
    int k = 0;

    Table t = document.Tables[0];

    // Specify some properties for this Table.
    t.Alignment = Alignment.right;

    if (howManyRows > t.RowCount)
    {
        int x = howManyRows - t.RowCount;
        for (int i = 0; i < x; i++)
        {
            Row row = t.InsertRow();             
        }
    }      

我也尝试过:t.InsertRow();

然后我在我的dataGridView的word文件中填充我的表,然后我得到一个未处理的异常 - 索引超出范围,这没有任何意义,因为如果我不添加行,只需用相同的行填充表使用相同代码的数字,我没有异常,表格工作正常,这是我从dataGridView的字符串列表中填充的代码:

for (int i = 1; i <=howManyRows; i++)
{
    for (int j = 4; j >= 0; j--)
    {
        t.Rows[i].Cells[j].Paragraphs.First().Append(dataFromDataGrid[k]).FontSize(11).Font(new FontFamily("Arial"));
        k++;
    }
}
document.Save();

我认为我不需要添加行,因为如果我在循环中运行直到:

 for (int i = 1; i <howManyRows; i++)

不喜欢:

for (int i = 1; i <=howManyRows; i++)

正如我在下面所做的那样,我得到了这张表:如图所示,行中没有单元格和边框,也许这就是我不知道的问题。

My Word Table

1 个答案:

答案 0 :(得分:0)

我发现了这个link

,特别是关于

的部分

this.Tables[1].set_Style("Table Grid 8");

尝试风格部分。

此外,此link显示了一个使用

的完整示例
table.Borders

看起来像你正在寻找的东西:)

欢呼声

eiran