NPOI 操作 Word-段落 ReplaceText 时,出错:NullReferenceException

作者:vkvi 来源:ITPOW(原创) 日期:2020-12-22

NPOI 操作 Word 段落代码:

XWPFDocument.Paragraphs[0].ReplaceText(oldText, newText);

以上代码在两种情况下会出现 NullReferenceException 错误:

1、oldText 为 null Empty

2、oldText 在该段落中不存在。

这个确实比较奇葩,通常我们找不到,跳过就是了,可是这个 NPOI 的作者却 抛出异常。

解决方法

我们自己加上判断。

var p = XWPFDocument.Paragraphs[0];
var ts = p.SearchText(oldText, new PositionInParagraph() { Run = 0 });
if (ts != null)
{
	p.ReplaceText(oldText, newText);
}

SearchText 中,oldText 为 null 或 Empty 均不会出错,只是总是返回 null,即使这一行确实为 Empty,它返回的也是 null。

相关文章