NPOI处理Word文本中段落编号
NPOI的XWPFParagraph对象中,是无法直接读取段落编号的,然而可以读取的是编号的样式名称(GetNumFmt),编号分组ID(GetNumID),编号样式(NumLevelText)等。具体如下:
/** 若干格式信息* GetNumFmt: decimal, GetNumID: 1, GetNumIlvl: 0, NumLevelText: %1. => 1.* GetNumFmt: decimal, GetNumID: 4, GetNumIlvl: 0, NumLevelText: %1) => 1)* GetNumFmt: chineseCountingThousand, GetNumID: 2, GetNumIlvl: 0, NumLevelText: (%1) => (一)* GetNumFmt: chineseCountingThousand, GetNumID: 3, GetNumIlvl: 0, NumLevelText: %1、 => 一、* GetNumFmt: upperLetter, GetNumID: 5, GetNumIlvl: 0, NumLevelText: %1. => A.* GetNumFmt: decimal, GetNumID: 6, GetNumIlvl: 0, NumLevelText: %1、 => 1、*/若干格式信息
于是封装了段落编号的处理类,几个关键点:
1、考虑频繁调用,使用单例。
2、依照NumLevelText内容替换编号的样式
3、编号分组发生变化时,编号要重置为1,采用字典记录
4、汉字、字母统一处理为数字编号
5、读取一个新Word时,字典内容要清空
段落处理类:
1 ///2 /// 段落处理类 3 /// Author: Matsuyoi 4 /// 5 class ParagraphNumHandle 6 { 7 #region 封装为单例 8 private static ParagraphNumHandle singleton = null; 9 public static ParagraphNumHandle GetInstance() 10 { 11 if (singleton == null) 12 singleton = new ParagraphNumHandle(); 13 //获取单例后重置一次变量 14
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
