NPOI 操作 Word-复制表格行,与设置表格行文字的坑

作者:vkvi 来源:ITPOW(原创) 日期:2021-2-4

使用 NPOI 复制 Word 表格行

var row = table.Rows[rowIndex]; // table 为 XWPFTable 对象

// 在 AddRow 第 2 个参数 pos 前面插入行,要求 pos 不能越界。
// 那要 Copy 到最后,怎么办呢?不指定第 2 个参数即可。
if (rowIndex < table.Rows.Count - 1)
{
	table.AddRow(row, rowIndex + 1); // 复制 rowIndex 行到其下方。
}
else
{
	table.AddRow(row); // 复制 rowIndex 行到最后,因为 rowIndex 是最后一行,所以也就是到 rowIndex 下方。
}

为复制的表格行,设置文字

var p = tables[tableIndex].Rows[rowIndex].GetCell(columnIndex).Paragraphs[paragraphIndex];
p.ReplaceText(p.Text, text); // 要求该段落不能为空行,否则 NullReferenceException。

注意:使用 ReplaceText 要求该段落不能为空行,否则 NullReferenceException。

坑:应该先复制行,再为被复制行、复制行设置文字。如果先为被复制行设置文字,再复制行,再为复制行设置文字,会导致两行内容关联为一致的。

相关文章