我试图用apache poi创建一个既包含圆点又包含编号列表的文档。 我想得到这样的结果。

名单:

清单1项目0

清单1项目1

清单1项目2

列表后的段落。

清单2:

清单2项目0

清单2项目1

清单2项目2

清单之后的段落2。

如果我尝试在两个不同的文档中创建两个列表,则一切正常。

但是,如果它们在同一个文档中,我只会得到创建的第一个样式。

例如,在下面的代码中,我首先创建项目符号点列表,然后创建编号。 但是生成的文档包含两个项目符号点列表。

我认为问题在于文档认为第一个列表仍处于打开状态,并且对下一个列表也使用相同的样式。

如何告知文档列表为“已关闭”? 有什么建议吗?

非常感谢你!

import java.io.FileOutputStream;

import java.math.BigInteger;

import org.apache.poi.xwpf.usermodel.XWPFAbstractNum;

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import org.apache.poi.xwpf.usermodel.XWPFNumbering;

import org.apache.poi.xwpf.usermodel.XWPFParagraph;

import org.apache.poi.xwpf.usermodel.XWPFRun;

import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTAbstractNum;

import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNumbering;

public class QuickTest {

static String cTAbstractNumBulletXML =

""

+ ""

+ ""

+ ""

+ ""

+ "";

static String cTAbstractNumDecimalXML =

""

+ ""

+ ""

+ ""

+ ""

+ "";

public static void main(String[] args) throws Exception {

XWPFDocument document = new XWPFDocument();

{

XWPFParagraph paragraph = document.createParagraph();

XWPFRun run=paragraph.createRun();

run.setText("The List:");

CTNumbering cTNumbering = CTNumbering.Factory.parse(cTAbstractNumBulletXML);

CTAbstractNum cTAbstractNum = cTNumbering.getAbstractNumArray(0);

XWPFAbstractNum abstractNum = new XWPFAbstractNum(cTAbstractNum);

XWPFNumbering numbering = document.createNumbering();

BigInteger abstractNumID = numbering.addAbstractNum(abstractNum);

BigInteger numID = numbering.addNum(abstractNumID);

System.out.println("numID: " + numID);

for (int i = 0; i < 3; i++) {

paragraph = document.createParagraph();

paragraph.setNumID(numID);

run = paragraph.createRun();

run.setText("List1 item " + i);

if (i < 2) paragraph.setSpacingAfter(0);

}

paragraph = document.createParagraph();

run=paragraph.createRun();

run.setText("Paragraph after the list.");

}

{

XWPFParagraph paragraph = document.createParagraph();

XWPFRun run=paragraph.createRun();

run.setText("The List2:");

CTNumbering cTNumbering = CTNumbering.Factory.parse(cTAbstractNumDecimalXML);

CTAbstractNum cTAbstractNum = cTNumbering.getAbstractNumArray(0);

XWPFAbstractNum abstractNum = new XWPFAbstractNum(cTAbstractNum);

XWPFNumbering numbering = document.createNumbering();

BigInteger abstractNumID = numbering.addAbstractNum(abstractNum);

BigInteger numID = numbering.addNum(abstractNumID);

System.out.println("numID: " + numID);

for (int i = 0; i < 3; i++) {

paragraph = document.createParagraph();

paragraph.setNumID(numID);

run = paragraph.createRun();

run.setText("List2 item " + i);

if (i < 2) paragraph.setSpacingAfter(0);

}

paragraph = document.createParagraph();

run=paragraph.createRun();

run.setText("Paragraph after the list2.");

}

FileOutputStream out = new FileOutputStream("CreateWordBulletAndDecimalList.docx");

document.write(out);

System.out.println("CreateWordBulletOrDecimalList written successully");

}

}

java自动生成项目编号_java - Apache POI,在同一文档中创建项目符号点和编号列表 - 堆栈内存溢出...相关推荐

  1. java获取内容为空_Java使用POI读取Word文档时如果文档内容为空时出现异常

    异常如下: org.apache.poi.EmptyFileException: The supplied file was empty (zero bytes long) at org.apache ...

  2. [实用][更新中]Java Apache POI 打印Word文档工具(含文本替换,动态表格功能)

    [实用][更新中]Java Apache POI 打印Word文档工具(含文本替换,动态表格功能) 基于Apache POI对Word进行操作 一.基于Apache POI封装的word文档工具V1. ...

  3. java利用POI替换word文档中的标签

    java利用POI替换word文档中的标签 <dependency><groupId>org.apache.poi</groupId><artifactId& ...

  4. java word文档生成目录_Java使用POI添加Word文档的目录(Table of contents)

    不废话,直接放代码吧. public class AddTOC { public static void main(String[] args) throws IOException, Invalid ...

  5. java后台代码添加超链接_Java 添加超链接至Excel文档

    在Excel文档中,若想快速访问其他文件或网页上的相关信息,可以在工作表单元格中插入超链接.超链接可为文本或图片,链接对象除了网页或其他文档外,也可是邮件.同一文档中其他工作表单元格或网络路径.本文就 ...

  6. java中添加文本框_Java 添加、删除Word文档中的文本框

    在Word文档中,文本框是指一种可移动.可调大小的文字或图形容器.使用文本框,能够使文档在内容和形式上更为饱满.本文将通过使用Java编程来演示如何添加.删除Word文档中的文本框. Jar文件获取及 ...

  7. java类似word校验错字_Java 比较两个Word文档差异

    Java 比较两个Word文档差异 Java 比较两个Word文档差异 本文介绍使用Spire.Doc for Java的比较功能来比较两个相似Word文档的差异.需要使用的版本为3.8.8或者后续发 ...

  8. java中mypoiexception,java - 如何使用Poi获取Java中单元格的数据验证源? - 堆栈内存溢出...

    此问题包含多个不同的问题. 首先,我们需要获取工作表的数据验证,然后为每个数据验证获取数据验证所适用的Excel单元格范围. 如果该单元格位于该单元格范围之一中,并且数据验证是列表约束,则进行进一步处 ...

  9. java 导出word 带格式_java 导出数据为word文档(保持模板格式)

    导出数据到具体的word文档里面,word有一定的格式,需要保持不变 这里使用freemarker来实现: ①:设计好word文档格式,需要用数据填充的地方用便于识别的长字符串替换  如  aaaaa ...

最新文章

  1. Javascript:getElementById()点innerHTML联合用法(对比演示)
  2. linux安全加固_安全服务之安全评估与加固
  3. MongoDB Element Query Operators(元素判断操作符)
  4. ibatis的result标签中用select详解
  5. python 字符串以及通过dos命令运行py脚本
  6. error: Zip file too big (greater than 4294959102 bytes)
  7. vcpkg下载mysql库_VCpkg 开源库管理工具
  8. as模拟器配置编译的Android,android studio连接雷电模拟器 【AS 模拟器】
  9. java 面向对象三个特征_[Java] 面向对象的三个特征与含义
  10. [AHK]提取Win10聚焦的锁屏壁纸
  11. regedit命令应用
  12. 计算机科学给稿费多少,科学网—千字千元的稿费标准高吗? - 籍利平的博文
  13. 大数据特点5V 商业智能实现的三个层次
  14. slamugv小车使用说明--1材料准备
  15. maven打包时依赖的项目包是时间戳而不是SNAPSHOT?
  16. 关于Matlab中Max函数的用法
  17. 明解C语言入门篇_第9章_字符串的基本知识
  18. 多机器人系统仿真平台(摘要与目录)
  19. RSA分段加密分段解密以及密钥与.Net的转化
  20. Py西游攻关之RabbitMQ、Memcache、Redis

热门文章

  1. 汽车行业G公司对接李尔LEAR EDI项目案例
  2. [转]logXX对所有的X0成立
  3. 在linux命令行下载百度网盘中的文件
  4. MCMC(三):Gibbs采样
  5. ubantu引导 修改win10_win10 + Ubuntu 20.04 LTS 双系统 引导界面美化
  6. 自适应铅笔黄色404页面源码
  7. 2020年最新阿里、字节、腾讯、京东等一线大厂高频面试(Java岗)真题合集,面试轻松无压力
  8. 剪映windows版1.0的使用
  9. 看完阮一峰老师的博客后,感觉 OAuth2.0认证就这?
  10. OpenGL 画出雷达动态扫描效果(一)