NPOI处理Word文本中段落编号

本文介绍了如何使用NPOI库处理Word文档中段落编号的问题,包括读取编号样式、处理编号分组变化、统一编号格式,并提供了一个段落处理类的示例代码,展示了具体的实现细节。
摘要由CSDN通过智能技术生成

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     /// <summary>
 2     /// 段落处理类
 3     /// Author: Matsuyoi
 4     /// </summary>
 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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值