首页 > 代码库 > 风电平台导出功能
风电平台导出功能
以质量保函为例
jsp文件:
添加导出按钮:
<a class="btn_short" name="button" id="button" href="javascript:void(0)" title="导出" onclick="QueryWlzxZlbhListUtils.jldc()">导出</a>
导出js:
<script type="text/javascript">;
QueryWlzxZlbhListUtils = {};
QueryWlzxZlbhListUtils.jldc = function() {
$("query_wlzxZlbh_list_form").action = "wlzxZlbh/jlExport.do";
Ext.milan.pagejs.page_wlzxZlbh.jldc(‘query_wlzxZlbh_list_form‘);
};
</script>
pageJS文件:
Ext.milan.pagejs.page_wlzxZlbh.jldc = function(formId) {
Milan.ajaxutility.downloadFile({form: $(formId) });
};
Action层文件:
public String jlExport() {
WlzxZlbhQuery query = newQuery(WlzxZlbhQuery.class,DEFAULT_SORT_COLUMNS);
try{
reportStream = wlzxZlbhManager.jlExport(query);
if(reportStream != null){
String fileName = "质量保函.xls";
this.filename = new String(fileName.getBytes(), "ISO8859-1");
return "sjdc";
}else{
Map<String, Object> resInfo = null;
resInfo = ResInfo.getResInfo("",false, false, 2, "无任何导出结果","");
outXmlJson(resInfo);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Manager层文件:
public InputStream jlExport(WlzxZlbhQuery query) {
List<WlzxZlbh> list = wlzxZlbhDao.jlExport(query);
if(list != null && list.size()>0){
ByteArrayOutputStream ops = genJlXls(list);
InputStream ips = new ByteArrayInputStream(ops.toByteArray());
return ips;
}
return null;
}
private ByteArrayOutputStream genJlXls(List<WlzxZlbh> list) {
WritableWorkbook wwb;
ByteArrayOutputStream ops = new ByteArrayOutputStream();
try {
wwb = Workbook.createWorkbook(ops);
//设置单元格的文字格式
WritableFont wf = new WritableFont(WritableFont.ARIAL,12,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE,Colour.BLACK);
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
wcf.setAlignment(Alignment.CENTRE);
//填充数据的内容
Label label;
WritableSheet sheet=wwb.createSheet("质量表函", 0);
sheet.setColumnView(0,10);
sheet.setColumnView(1,30);
sheet.setColumnView(2,30);
sheet.setColumnView(3,30);
sheet.setColumnView(4,30);
sheet.setColumnView(5,30);
sheet.setColumnView(6,30);
sheet.setColumnView(7,30);
sheet.setColumnView(8,30);
sheet.setColumnView(9,30);
sheet.setColumnView(10,30);
sheet.setColumnView(11,30);
sheet.setColumnView(12,30);
//创建表头
//sheet.mergeCells(0,0,0,0);
label = new Label(0,0,"序号",wcf);
sheet.addCell(label);
label = new Label(1,0,"供应商名称",wcf);
sheet.addCell(label);
label = new Label(2,0,"经办人",wcf);
sheet.addCell(label);
label = new Label(3,0,"应开保函日期",wcf);
sheet.addCell(label);
label = new Label(4,0,"收到保函日期",wcf);
sheet.addCell(label);
label = new Label(5,0,"函号",wcf);
sheet.addCell(label);
label = new Label(6,0,"保函签发日期",wcf);
sheet.addCell(label);
label = new Label(7,0,"保函生效日期",wcf);
sheet.addCell(label);
label = new Label(8,0,"保函失效日期",wcf);
sheet.addCell(label);
label = new Label(9,0,"保函金额",wcf);
sheet.addCell(label);
label = new Label(10,0,"保函退回时间",wcf);
sheet.addCell(label);
label = new Label(11,0,"保函退回原因",wcf);
sheet.addCell(label);
label = new Label(12,0,"状态",wcf);
sheet.addCell(label);
int i=0;
for (WlzxZlbh zlbh : list){
label = new Label(0,i+1,(i+1)+"",wcf); //序号
sheet.addCell(label);
label = new Label(1,i+1,zlbh.getGysmc(),wcf);
sheet.addCell(label);
label = new Label(2,i+1,zlbh.getJbrxm(),wcf);
sheet.addCell(label);
label = new Label(3,i+1,zlbh.getYkbhrqString(),wcf);
sheet.addCell(label);
label = new Label(4,i+1,zlbh.getSdbhrqString(),wcf);
sheet.addCell(label);
label = new Label(5,i+1,zlbh.getHh(),wcf);
sheet.addCell(label);
label = new Label(6,i+1,zlbh.getBhqfrqString(),wcf);
sheet.addCell(label);
label = new Label(7,i+1,zlbh.getBhsxrqString(),wcf);
sheet.addCell(label);
label = new Label(8,i+1,zlbh.getBhzfrqString(),wcf);
sheet.addCell(label);
//金额为数字,需转换为字符串输出
label = new Label(9,i+1,zlbh.getBhje()+"",wcf);
sheet.addCell(label);
label = new Label(10,i+1,zlbh.getBhthsjString(),wcf);
sheet.addCell(label);
label = new Label(11,i+1,zlbh.getThyy(),wcf);
sheet.addCell(label);
//将数字格式的状态转换为文字
String zt = "";
if (zlbh.getZt() == 0){
zt = "未处理";
}else if (zlbh.getZt() == 1){
zt = "完成";
}else {
zt = "已退回";
}
label = new Label(12,i+1,zt,wcf);
sheet.addCell(label);
i++;
}
wwb.write();
wwb.close();
} catch (IOException e){
e.printStackTrace();
} catch (RowsExceededException e){
e.printStackTrace();
} catch (WriteException e){
e.printStackTrace();
}
return ops;
}
Dao层文件:
public List<WlzxZlbh> jlExport(WlzxZlbhQuery query) {
String sql = "select t from WlzxZlbh t where 1=1 "
+ "/~ and t.gysmc = ‘[gysmc]‘ ~/"
+ "/~ and t.jbrxm = ‘[jbrxm]‘ ~/"
+ "/~ and t.ykbhrq = ‘[ykbhrq]‘ ~/"
+ "/~ and t.sdbhrq = ‘[sdbhrq]‘ ~/"
+ "/~ and t.hh = ‘[hh]‘ ~/"
+ "/~ and t.bhqfrq = ‘[bhqfrq]‘ ~/"
+ "/~ and t.bhsxrq = ‘[bhsxrq]‘ ~/"
+ "/~ and t.bhzfrq = ‘[bhzfrq]‘ ~/"
+ "/~ and t.bhje = ‘[bhje]‘ ~/"
+ "/~ and t.bhthsj = ‘[bhthsj]‘ ~/"
+ "/~ and t.thyy = ‘[thyy]‘ ~/"
+ "/~ order by [sortColumns] ~/";
//搜索所有All
return findHqlAll(sql,query);
}
xml配置文件:
//导出转换为流输出
<action name="wlzxZlbh/*" method="{1}" class="com.tech15.wlzx.action.WlzxZlbhAction">
<result name="sjdc" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">attachment;filename="${filename}"</param>
<param name="bufferSize">4096</param>
<param name="inputName">reportStream</param>
</result>
<result name="*" type="direct">质量保函</result>
</action>
风电平台导出功能