如何将从数据库中的数据(表的形式显示出来的)导入到Excel表格中?
1首先在JSP页面上调用相应的方法:
如:
<div style="text-align:left;">
<input type="button" name="toExcel" id="toExcel" value="导出Excel" οnclick="toExcel('torgRecord','TorgRecord.do?method=toExcel')"/>
</div>
其中torgRecord为ID
2相应的方法定义如下:
public ActionForward toExcel(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String hiddenHtml = request.getParameter("hiddenHtml");
String fname = request.getParameter("hiddenName");
fname = java.net.URLEncoder.encode(fname, "UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/msexcel");
response.setHeader("Content-Disposition", "attachment;filename=" + fname);
PrintWriter out = response.getWriter();
out.println(hiddenHtml);
out.flush();
out.close();
return null;
}
3具体实现还需要用到脚本Print.js。如下:
function toExcel(divId, path){
divId = divId || "divExcel";
path = path || "";
var divExcel = document.getElementById(divId);
var formToPrint = document.createElement("form");
var hiddenHtml = document.createElement("input");
hiddenHtml.type = "hidden";
hiddenHtml.name = "hiddenHtml";
hiddenHtml.value = divExcel.innerHTML;
formToPrint.appendChild(hiddenHtml);
var hiddenName = document.createElement("input");
hiddenName.type = "hidden";
hiddenName.name = "hiddenName";
hiddenName.value = divExcel.title;
formToPrint.appendChild(hiddenName);
document.body.appendChild(formToPrint);
formToPrint.method = "post";
formToPrint.action = path;
//formToPrint.target = "_blank";
formToPrint.submit();
}
这只是一种方法。望高手多多指教~~~~