<script type="text/javascript"> function download(formObj){ var strHTML = document.all.a.innerHTML; document.all.item("checkreport").value = strHTML; var oldaction = formObj.action; formObj.action = "<%=request.getContextPath()%>/basic/samples/sample_downWord.ac"; formObj.target = "testword"; formObj.submit(); formObj.action=oldaction; formObj.target = ""; } </script>
function htmlToWord() { try { var oWD = new ActiveXObject("Word.Application"); var oDC = oWD.Documents.Add("",0,1); var oRange = oDC.Range(0,1); var sel = document.body.createTextRange(); sel.select(); sel.execCommand("Copy"); oRange.Paste(); oWD.Application.Visible = true; } catch(e) { alert("您没有开启ActiveXObject,请开启后重试."); } }
<form name="myform" id="myform" action="" method="post" >
<input type="hidden" name="checkreport" >
<input name="htmlToWord" type="button" value="DownWord" onclick="download(this.document.forms[0])">
<div id="a" style="border: 0px;">
<table class="table" border="0" cellspacing="1" cellpadding="0" align="center"> //里面可以是任何的JSP代码,在页面中显示什么,在WORD中也会显示什么,页面最好是UTF-8编码,否则有的特殊符号会显示为乱码
</div>
然后在sample_downWord.ac中写:
String divStr = getRequest().getParameter("checkreport");
if(divStr !=null || !"".equals(divStr)){
getRequest().getSession().removeAttribute("downloadreport");
getRequest().getSession().setAttribute("downloadreport", divStr); //然后跳转到downWord.jsp中
}
downWord.jsp:
<%@ page contentType="application/vnd.ms-word; charset=gb2312" %>
<%
String table= (String)request.getSession().getAttribute("downloadreport");
String name="下载WORD"+".doc";
response.setHeader("Content-disposition","attachment; filename="+new String(name.getBytes(),"iso8859-1"));
// response.setHeader("Content-Disposition", "attachment; filename="+new String(gradeid.getBytes(),"iso8859-1")+".doc");
%>
(中间部分是WORD样式,在此省略)
<body>
<%=table%>
</body>
WORD样式可以通过新建一个WORD文档,然后另存为网页形式,查看源文件,就可以得到了。
通过以上步骤就完成了生成WORD的过程。