背景:
需求是在Word模板中替换模板字符,但是要保持样式。而 NPOI 2.5.6 中InsertNewParagraph方法没有实现,当需要在某个段落后插入一个新的段落根据已有的api操作无法达到想要的效果。
直接看代码:
1、调用:
// 需要在此段落后插入新的的段落
XWPFParagraph paragraph
.......
var new_paragraph = paragraph.AppendParagraph();
2、具体的实现
/// <summary>
/// 在段落后插入一个新的段落,注意:始终返回传入的段落的后一个对象!!!
/// </summary>
/// <param name="paragraph"></param>
/// <returns>返回空则是不支持的类型</returns>
/// <exception cref="NullReferenceException"></exception>
public static XWPFParagraph AppendParagraph(this XWPFParagraph paragraph)
{
if (paragraph == null) throw new NullReferenceException("目的段落不能为空.");
var _body = paragraph.Body;
if (_body == null) throw new NullReferenceException("目的段落Body不能为空.");
var _old_paragraphs = _body.Paragraphs;
var _index = FindParagraphIndex(paragraph);
var _is_in_last = _index == _old_paragraphs.Count - 1;
X