使用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;