biz代码
/**
* 导出当前页到excel文件
* @param page
* @param pageSize
* @param response
*/
/*void pageToExcel(int pages, int size,HttpServletResponse response);**/
/**
* 导出数据库全部信息到excel文件
* @param response
*/
void allToExcel(HttpServletResponse response);
/**
* 导出功能实现
* @param list 要导出的数据
* @param fileName 下载显示的文件名
* @param response
*/
void toExcel(List<P_Cdma> list,String fileName, HttpServletResponse response);
biz.impl代码
//导出当前页到excel文件
public void pageToExcel(int pages, int size, HttpServletResponse response) {
// TODO Auto-generated method stub
//需要导出的数据
List<P_Cdma> list=query(pages, size);
//下载是显示给用户的文件名(如果是中文需要作一定处理,否则会有乱码)
String fileName=(pages-1)*size+1+"-"+pages*size+".xls";
//调用导出的具体实现方法
toExcel(list,fileName,response);
}
**/
//导出数据库全部信息到excel文件
public void allToExcel(HttpServletResponse response) {
//需要导出的数据
List<P_Cdma> list=dao.queryAll("from P_Cdma");
//下载是显示给用户的文件名(如果是中文需要作一定处理,否则会有乱码)
String fileName="all.xls";
//调用导出的具体实现方法
toExcel(list,fileName,response);
}
//导出的具体实现方法
public void toExcel(List<P_Cdma> list, String fileName,
HttpServletResponse response) {
try {
//对文件名作处理,避免中文乱码问题
String name = new String(fileName.getBytes("gbk"),"iso8859-1");
//设置response相应属性,设置为下载
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;filename="+name);
//获得response中的输出流
OutputStream out=response.getOutputStream();
//excel表格第一行标题,本例中不采用poi或jxl,只对每个单元属性后面添//加\t,每行结束加\n。这是excel文件的基本属性。
String head="序号\t部门\t工号\t名字\t保底生效日\t保底到期日\t套餐金额\t保底金额\t天翼号码\t共振号码\n";
//编码应该根据本地编码来确定。如果是台湾同胞,这里需要改为big5
out.write(head.getBytes("gbk"));
for(P_Cdma a:list){
//加上\t,\n等分隔符,写出文件,当文件以.xls命名时,打开即为普通excel文件
String s=a.getId()+"\t"+a.getDep()+"\t"+a.getJobnumber()+"\t"+a.getName()+"\t"
+a.getDays()+"\t"+a.getTodays()+"\t"+a.getPackageAmt()+"\t"+a.getPackageAmt()+"\t"+a.getCdmaNum().toString()+"\t"+a.getTelNum()+"\n";
out.write(s.getBytes("gbk"));
}
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
action代码
注:此ACTION记得继承BaseAction
/**
* 导出当前页
*/
/**
public void pageToExcel(){
pbiz.pageToExcel(page, size,response);
}*/
/**
* 导出数据库全部信息
*/
public void allToExcel(){
pbiz.allToExcel(response);
}
/**只为方便使用response对象
* @author kunlong_chen
*
*/
public class BaseAction extends ActionSupport
implements RequestAware,
SessionAware,
ApplicationAware,
ParameterAware,
ServletContextAware,
ServletRequestAware,
ServletResponseAware
{
protected Map<String,Object> requestMap;
protected Map<String,Object> sessionMap;
protected Map<String,Object> applicationMap;
protected Map<String,String[]> parametersMap;
protected HttpServletRequest request;
protected HttpServletResponse response;
protected ServletContext application;
public void setRequest(Map<String, Object> arg0) {
this.requestMap=arg0;
}
public void setSession(Map<String, Object> arg0) {
this.sessionMap=arg0;
}
public void setApplication(Map<String, Object> arg0) {
this.applicationMap=arg0;
}
public void setParameters(Map<String, String[]> arg0) {
this.parametersMap=arg0;
}
public void setServletContext(ServletContext arg0) {
this.application=arg0;
}
public void setServletRequest(HttpServletRequest arg0) {
this.request=arg0;
}
public void setServletResponse(HttpServletResponse arg0) {
this.response=arg0;
}
}
struts.xml代码
<!-- 导出当前页
<action name="pageToExcel" class="action.PhonesNumAction" method="pageToExcel">
</action>
-->
<!--Excel的导出 -->
<action name="allToExcel" class="action.PhonesNumAction" method="allToExcel">
<interceptor-ref name="mydefault"/>
</action>
jsp代码
<img alt="" src="images/edit.gif">
<a title="导出到Excel" href="#" οnclick="listAll()" style="cursor: pointer; color:white;">导出到Excel</a>
javascript代码
/*Excel导出**/
function listAll(){
var flag=confirm("全部导出可能花费较长时间,确定全部导出吗?");
if(flag){
location="allToExcel.action";
}
}