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

标签 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

最佳答案

我找到了这个link

特别是关于

的部分

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

尝试样式部分。

另外,这个link ,它显示了一个完整的例子,它使用

table.Borders

这看起来像你要找的东西:)

干杯

荣兰

关于c# - 使用 DocX dll 将行添加到 word 文件(doc 文件)中的现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39973267/

相关文章:

vba - 字VBA : Insert a picture without known aspect ratio of file

search - 如何在多个 DOCX 文件中搜索 Word 字段中的字符串?

c# - 如何使用 DocX 在 Word 文档中插入换行符?

c# - 将属性添加到 XMLROOT 元素名称

android - 在 Android 中将 docx 转换为 html

c# - 使用 ViewModel 将子项添加到用户控件?

c# - OpenXML 中的制表符

python - 在替换 python-docx 中的单词时保留样式

c# - 减去 HashSet(并返回一个副本)?

c# - 查询字符串值始终为 0