今天遇到一个问题:门户现有一个功能导出页面表单(为Word形式),现在想要加一个按钮为导出Excel功能。
首先,如果功能只是将页面的表单导出的话,我们可以通过jsp(也就是前端自动生成相应的Excel或者Word功能,但如果也有添加相应格式文件的功能,
可能就不能这么做,因为用前端生成的文件格式不是很标准),首页那我们只要写个生成Excel文件的jsp就好,如下:
完整的jsp页面:
<%@ page import="com.wiscom.util.lang.StringUtils" %>
<%@ page contentType="application/vnd.ms-excel;charset=UTF-8" pageEncoding="gb2312" %>
<%@ include file="/WEB-INF/jsp/include.jsp" %>
<%
String inputword = request.getParameter("inputword");
String pcname ="中层干部";
if(StringUtils.isNotEmpty(inputword)){
pcname = inputword;
}
pcname =new String(pcname.getBytes("GB2312"),"ISO8859_1");
response.setHeader("Content-disposition","attachment; filename="+pcname+".xls");
%>
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="ProgId" content="excel.Document">
<meta name="Generator" content="Microsoft excel 12">
<meta name="Originator" content="Microsoft excel 12">
</head>
<body>
<%
out.print(request.getParameter("textareaword"));
%>
</body>
</html>
这个是生成Excel文件的jsp(它会导出out.print(request.getParameter("textareaword"));里面的内容)
这个写好之后问题才解决一半,我们在一个form表单里面要有两个submit按钮,分别对应点击跳转到相应的jsp上?
思路,我们在点击相应的按钮,赋予他们对应的action(即action是动态赋值的),这样就可以实现功能。
实例代买如下:
所要提交的表单里面有两个按钮这个是同一个页面的区别方法:
<form action="" name="dc" id="formtoword" method="post">
<input type="hidden" value="皋坤" name = "inputword" />
<textarea style="display:none;" name="textareaword" id="textareaword"></textarea>
<input type="submit" οnclick="checkaction(1);" style="border: medium none;color: #FFFFFF;cursor: pointer;font: bold 12px/24px Arial,Helvetica,sans-serif;height: 23px;padding: 0 12px 2px;text-align: center;width: auto; margin-top: 2px; margin-left: 17px;" value="导出">
<input type="submit" οnclick="checkaction(0);" style="border: medium none;color: #FFFFFF;cursor: pointer;font: bold 12px/24px Arial,Helvetica,sans-serif;height: 23px;padding: 0 12px 2px;text-align: center;width: auto; margin-top: 2px; margin-left: 17px;" value="导出gk">
</form>
对应的script实现:
function checkaction(v){
if(v==1){
document.dc.action="recommendLookPrintForLrz.jsp";
}else{
document.dc.action="recommendLookPrintForLrzex.jsp";
}
dc.submit();
}
便实现对应跳转
有一种是向后台提交form表单,可以分别给对应的按钮命名不同的name值,然后在后台request获取,然后判断执行相应的功能。