最近项目需求对动态生成的一部分网页也要支持word文档导出的功能,所以我开始探讨相关内容。说到网页内容导出word,我们第一反应是使用一些写死模板的工具来生成,可是这些网页本身不是固定的jsp,而是调用js方法一个标签一个标签动态生成的,所以结构不确定,没法使用模板。
在同事的指导下,最后决定使用动态生成word支持的xml文件来实现这个功能。
具体实现过程如下
1.先用word保存一个空的xml文件,用文字编辑器打开得到一个包含空的<w:body>标签对的长字符串
2.将这个长字符串传入后台,开始使用xpath找到<w:body>并开始根据数据源动态生成一系列表格,用以显示表单内容
3.根据网页内容的格式特点调整生成的document,起一些简单的修饰效果,包括元素项的同行显示,标题字体加大加粗等
4.将生成的文件以后缀名为doc的形式开心的返回到前台
总结:涉及的技术点
1.doc支持的xml格式规范
2.dom4j对xml格式文件的解析以及添加、修改
3.xpath定位标签的方法,以及相应的添加带命名空间的标签属性