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 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部