javascript替换:javascript下用ActiveXObjectControl控件替换word书签 将内容导出到word后打印

最近有需求将数据导出到word里然后编辑打印
想过几种方案:
1.使用jacob
2.使用apachepoi
3.使用itext
由于时间比较紧没多时候去学习研究上述工具包现在用javascript操作ActiveXObjectControl控件用替换word模板中书签方式解决
前提条件:
1.浏览器安全级别降低可以使用ActiveXObjectControl控件
2.装有office word
目前实现了替换单个书签多行表格书签和图片基本上满足需求不过还有很多操作word使用思路方法不太清楚网上大部分都使用VB有不清楚地方大家可以交流
下面说下我设计实现思路:
首先当然是定义word模板在需要替换地方加上标签 菜单-插入-书签输入属性名如year,date,pic1,voList等等
打印页面:
需要把打印数据从后台取出以单个vo(个对象)为或以voList(对象列表集合)为组 组织好页面上 再得到这些数据后进行替换
数据组织形式如下:
<div id="export2word">
<form id="singleVo" name="singleVo">
<textarea name="jcxcrs" style="display:none"><c:out value="${zywstjfxbgVO.jcxcrs }"/></textarea>
<textarea name="xcjhl" style="display:none"><c:out value="${zywstjfxbgVO.xcjhl }"/></textarea>
<textarea name="tbjcxcrs" style="display:none"><c:out value="${tbjcxcrs }"/></textarea>
<textarea name="tptest" style="display:none">../zwgl/zw008-ZwMkjbxxCTRL-showWxytp.png?xh=3041</textarea>
</form>
<c:forEach var="mxvo" items="${jgList}" varStatus="s">
<form name="mxvoForm">
<!-- 注:这里宽度设置为表格单元格宽度(厘米*100)-->
<textarea name="tbjcmcrs" style="width:349;display:none"><c:out value="${mxvo.tbjcmcrs }"/></textarea>
<textarea name="tbjcmcrsbl" style="width:270;display:none"><c:out value="${mxvo.tbjcmcrsbl }"/></textarea>
<textarea name="tbjcxcrs" style="width:477;display:none"><c:out value="${mxvo.tbjcxcrs}"/></textarea>
<textarea name="tbjcxcrsbl" style="display:none"><c:out value="${mxvo.tbjcxcrsbl }"/></textarea>
</form>
</c:forEach>
</div>
使用:
<input type="button" id="select2" name="select2" ="button" value="导出数据" _disibledevent= sc.getRequestDispatcher(Url); //定向页面
rd.forward(request, response);
}
}
Tags:  newactivexobject activexobject javascript替换字符 javascript替换

延伸阅读

最新评论

发表评论