java word jar包_java操作word书签生成word模板不用jar包

java操作word书签生成word模板(不用jar包)

最近有个需求,在word模板文档上设置书签,然后从数据库中查询数据,填充到word 文档书签位置,刚拿到需求时,使劲在网上找资料。幻想第三方jar包,帮我实现。有Apatch 的POI,java2word,jcob等,一直让我无法实现。POI操作word只能获取word中的书签,并不能进行操作.java2word可以实现,但是除了java2word.jar包以外,还要一个dll文件放在system32文件夹下,环境部署在linux服务器上,谁允许你放这样的文件,结果死心了.下面新建一个word2007文件告诉大家不用第三方技术怎么一一实现。

现在新建一个word,在请输入用户名处添加书签userName,请输入年龄处添加书签age

b95d695a40e5c041a0c6bd24697e5840.png

Word2007版本其实就是zip格式,将新建word后缀名改.zip,解压会发现,里面全是文件夹,打开word文件夹会有一个document.xml文件,在word所有内容,都在这xml文件中,

请输入用户名

这是新建书签处的内容,细心的会发现,书签处内容在 标签之间,标签中的w:id跟w:name标识书签的唯一,中间是书签处的内容,会不会可以这样呢,找到用dom或者sax解析这个xml 文档找到标签,然后找到标签,再找到标签里面的标签内容,替换就Ok了呢。一开始我就这样想的。但是你会发现,不是这样配套的,如果是这样配套的,那按照前面的说的直接解析找到标签就OK了。

分析xml文件你会发现,其实标签跟标签是同级的,只是结束方式不同而已,所以算是兄弟节点,可以不可以找到的兄弟节点,也就是标签,然后找到标签,替换其文本。其实w3c中Element对象中提供了获取兄弟节点的方法,getNextSibling()获取下一个兄弟节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值