使用 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。
坑:应该先复制行,再为被复制行、复制行设置文字。如果先为被复制行设置文字,再复制行,再为复制行设置文字,会导致两行内容关联为一致的。