java模板.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java模板

word模板制作 关键字: word 流 模板 ?? 近段时间因为项目比较忙所以很少来javaEye溜转,现在终于忙完了。这期间做了一个word模板填充的功能,觉得应该放上来保存下。 ?? 问题的缘由是这样的,项目里面有个功能是下载记录客户明细的一个word,之前的做法是将整个word以流的形式写在类里面,然后将值填充到word流里面需要填充地方,最后使用sturts2的文件机制将word流提供给客户另存为word文件。这里面的问题就是项目里面每增加一个模板就要去在类里面写一次word流,而且需要组装的数据里包含了很多的迭代等操作,所以这块的工作量很大,而且很不好维护。于是老大让我将这一块的word不要在类里面直接去处理word流。 ??? 最后我使用的方法是将需要填充的word做成一个通用的模板,里面需要填充数据的地方使用特定的代号去取代,然后将这个这个word放到项目中。基本的思想是当要用到这个模板的时候通过程序将word读取成流的形式,然后在类里面将需要填充的数据组装成一到一个HashMap里,键和通用模板的代号一致,值是将要填充的内容。再写一个类来将HashMap里面的值替换掉word流里对应的键。 最后将组装后的流输出。 ??? 这个好像说起来很拗口,也不好解释 下面以图文的形式来解释把: 1.先拿到一个他们现在在用的word, 将word里面需要填充的地方使用[替代码]来替代 2.在类里面进行hashmap的组装 public static void main(String[] args) throws Exception { DocGenerator gen = new DocGenerator(); Map data = new HashMap(); data.put([ORDER_TITLE], **科技集团差旅管理服务公司酒店预订单(酒店联)); data.put([ORDER_NO], HB080709101712996); data.put([OPTRID], IHZYF011); //子项 List lstValue = new ArrayList(); Map subData = new HashMap(); subData.put([CUST_NAME], 张三); subData.put([ROOM_STYLE], 单床房? 大床? 宽带 免费); subData.put([DATE1], 2008-07-09抵? 2008-07-12离); subData.put([DATE2], 2008-07-09 至 2008-07-12 每晚 111 元 (单早)); subData.put([DATE3], 2008-07-09 至 2008-07-12 每晚 1.0 间); lstValue.add(subData); subData = new HashMap(); subData.put([CUST_NAME], 李四); subData.put([ROOM_STYLE], 双人床房? 大床? 宽带 免费); subData.put([DATE1], 2008-07-09抵? 2008-07-12离); subData.put([DATE2], 2008-07-09 至 2008-07-12 每晚 111 元 (单早)); subData.put([DATE3], 2008-07-09 至 2008-07-12 每晚 1.0 间); lstValue.add(subData); data.put(CUSTS, lstValue); gen.generatorDoc(data, 1);//调用处理方法 } 3.处理类书写 /** * 模板生成类 * @author ch * */ public class DocGenerator { /** * 根据传入的数据和模板ID生成 * @author chm * @param data * @param templetid * @throws Exception */ @SuppressWarnings(unchecked) public static String generatorDoc(Map data, String templetid) throws Exception { String result = ; // 根据templetid获取模板 String templet = getTemplet(templetid); //处理模板 templet =split(data,templet);

文档评论(0)

me54545 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档