风为裳

导航

使用JExcelAPI导出数据信息

一、配置文件

<action name="ExcelExport" class="ExcelExportAction">

    <result name="success" type="stream">//文件输出流

       <param name="contentType">application/vnd.ms-excel</param>//excel专用格式

       <param name="inputName">inputStream</param> //下载的方法

        <param name="contentDisposition">attachment;filename="nihao.xls"</param>     //下载时默认的文件名称

       <param name="bufferSize">4096</param>    //缓冲区大小

  </result>

</action>

二、action内部的编写

this.root = ServletActionContext.getServletContext().getRealPath("/");  

//定义一个文件  作为服务器端默认的下载文件,这个文件是生成在服务器端的,由用户到服务器断下载的

 file = new File(this.root+"\\xls.xls");

 

//输出流  

 OutputStream os = new FileOutputStream(file);

   //整个workBook   

WritableWorkbook wwb = Workbook.createWorkbook(os);  

 //sheet  

 WritableSheet ws = wwb.createSheet("联系人", 0);  

 //Label   

Label label1 = new Label(0,0,"编号");  

 Label label2 = new Label(1,0,"客户名称");  

 Label label3 = new Label(2,0,"联系人姓名");   

Label label4 = new Label(3,0,"联系人性别 ");   

Label label5 = new Label(4,0,"联系人职务");   

Label label6 = new Label(5,0,"联系人办公电话");   

Label label7 = new Label(6,0,"联系人个人电话");  

 Label label8 = new Label(7,0,"联系人QQ号码");   

Label label9 = new Label(8,0,"登记日期");

 

//增加标签  

 ws.addCell(label1);   

ws.addCell(label2);   

ws.addCell(label3);   

ws.addCell(label4);   

ws.addCell(label5);   

ws.addCell(label6);   

ws.addCell(label7);   

ws.addCell(label8);   

ws.addCell(label9);

//日期格式   

DateFormat df = new DateFormat("yyyy年MM月dd日");   

WritableCellFormat wcf = new WritableCellFormat(df);

//  用循环来添加  

 for(int i=0;i<allLxrs.size();i++){   

 Lxr lxr = allLxrs.get(i);    

Number lxrid = new Number(0,i+1,lxr.getLxrid());    

Label lxrmc = new Label(1,i+1,lxr.getKhxx().getKhmc());   

 Label lxrxm = new Label(2,i+1,lxr.getLxrxm());    

Label lxrxb = new Label(3,i+1,lxr.getLxrxb());    

Label lxrzw = new Label(4,i+1,lxr.getLxrzw());   

 Label lxrbgdh = new Label(5,i+1,lxr.getLxrbgdh());    

Label lxrgrsj = new Label(6,i+1,lxr.getLxrgrsj());    

Label lxrqq  = new Label(7,i+1,lxr.getLxrqq());    

DateTime lxrdjrq = new DateTime(8,i+1,lxr.getLxrdjrq(),wcf);   

 ws.addCell(lxrid);   

 ws.addCell(lxrmc);    

ws.addCell(lxrxm);   

 ws.addCell(lxrxb);    

ws.addCell(lxrzw);    

ws.addCell(lxrbgdh);    

ws.addCell(lxrgrsj);    

ws.addCell(lxrqq);    

ws.addCell(lxrdjrq);  

 }   

wwb.write();   //尼玛,最坑爹的一句话,bug中的bug,只要你没有这句话,包你的文件下载之后,无乱怎么打开,格式都是不正确的

//尼玛 我就搞不懂了,这个下面的wwb.close()方法到底还有没有用处

 wwb.close();         

os.close();   

return SUCCESS;

 

 

 

 

posted on 2012-01-18 16:19  风为裳  阅读(313)  评论(0编辑  收藏  举报