没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Docx4j 操作 word
目录
1. Docx4j 介绍................................................................................................................................ 1
1.1. Docx4j 介绍...................................................................................................................... 1
2. Docx4j 操作................................................................................................................................ 2
2.1. 初始读取 word................................................................................................................ 2
2.2. 标签替换......................................................................................................................... 2
2.3. chart 图表内容替换........................................................................................................ 4
2.4. 插入图片....................................................................................................................... 10
3. 文档的一些操作...................................................................................................................... 11
3.1. 合并 word...................................................................................................................... 11
3.2. word 转换成 pdf............................................................................................................ 12
1. Docx4j 介绍
1.1. Docx4j 介绍
docx4j 是一个用于创建和操作 Microso Open XML (Word docx, Powerpoint
pptx, 和 Excel xlsx)文件的 Java 类库。
h'p://www.docx4java.org/trac/docx4j 官方主页。
2. Docx4j 操作
2.1. 初始读取 word
WordprocessingMLPackage wordMLPackage =
WordprocessingMLPackage
.load(WordChartDataRenderTest.class.getClassLoader().ge
tResourceAsStream("tpl.docx"));
2.2. 标签替换
在操作 word 的时候,多数情况的下是通过标签进行替换相关的内容。标签
在 word 中可以定义一个位置,或者标示一个段落内容。
在一个模板中定义好标签,在插入-》书签:然后定义好名称。
在 java 的代码中对标签进行遍历,得到该名称,并替换成相关的内容。
//
try {
List<Object> paragraphs = wordMLPackage.getMainDocumentPart().getContent();
RangeFinder rt = new RangeFinder("CTBookmark", "CTMarkupRange");
new TraversalUtil(paragraphs, rt);
// 遍历所有的标签
for (CTBookmark bm : rt.getStarts()) {
if (StringUtil.isEmpty(bm.getName()))
continue;
ReportData obj = data.get(bm.getName());
if (obj == null || !(obj instanceof ReportData)) {
if(bm.getName().indexOf("_") == 0){
}else{
logger.error("bookmark 9ll data, data is empty!" + bm.getName());
}
continue;
}
try {
List<Object> theList = null;
ParaRPr rpr = null;
if (bm.getParent() instanceof P) {
PPr pprTemp = ((P) (bm.getParent())).getPPr();
if (pprTemp == null) {
rpr = null;
} else {
rpr = ((P) (bm.getParent())).getPPr().getRPr();
}
theList = ((ContentAccessor) (bm.getParent())).getContent();
} else {
continue;
}
int rangeStart = -1;
int rangeEnd = -1;
int i = 0;
for (Object ox : theList) {
Object listEntry = XmlUtils.unwrap(ox);
if (listEntry.equals(bm)) {
rangeStart = i + 1;
} else if (listEntry instanceof CTMarkupRange) {
if (((CTMarkupRange) listEntry).getId().equals(bm.getId())) {
rangeEnd = i - 1;
break;
}
}
i++;
剩余12页未读,继续阅读
资源评论
- 一直想成为大神的菜鸟2019-02-18我就想看生成目录这里就没有生成目录
jinisu
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功