前端代码:
public function confirm():void{
var file:FileReference = new FileReference();
file.download(new URLRequest(PdpRequestUrl.exportPayment+"?startTime="+startTime.text+"&endTime="+endTime.text),"支付记录.xls");
var alert:Alert;
file.addEventListener(Event.SELECT,function(event:Event):void{
alert = Alert.show("正在导出中,请稍后...","提示");
});
file.addEventListener(Event.COMPLETE, function(event:Event):void{
PopUpManager.removePopUp(alert);
Alert.show("导出成功!","提示");
close();
});
}
后台用grails写的:
def exportService;
def exportPayment(){
log.info("导出支付记录start.....................")
response.contentType = 'application/vnd.ms-excel'
response.setHeader('Content-disposition', 'attachment;filename=transinfo.xls')
def queryParams = {
if (params.startTime && params.endTime) {
if (params.startTime > params.endTime) {
throw new LogicException("开始时间不能大于结束时间");
}
}
if (params.startTime?.trim()) {
ge("createTime", AppDateUtils.toDate(params.startTime.trim(), AppDateUtils.yyyyMMdd))
}
if (params.endTime?.trim()) {
lt("createTime", AppDateUtils.addDay2Date(AppDateUtils.toDate(params.endTime.trim(), AppDateUtils.yyyyMMdd), 1))
}
}
def list = Payment.createCriteria().list(queryParams);
List<Map> result = new ArrayList<Map>()
list.each { Payment payment ->
Map bean = [:];
bean.paymentNum = payment.paymentNum;
bean.amount = payment.amount/100;
bean.channelName = payment.channelInfo.channelName;
bean.createTime = AppDateUtils.toString(payment.createTime,AppDateUtils.yyyyMMddHHmmss);
bean.memo = payment.memo;
result.add(bean);
}
List fields = [
'paymentNum',
'channelName', 'amount',
'createTime', 'memo'
]
Map labels = [
'paymentNum': '交易流水号',
'channelName': '渠道', 'amount': '支付金额',
'createTime': '支付时间', 'memo': '描述'
]
Map parameters = [title: '支付记录', 'column.widths': [0.2, 0.15, 0.15, 0.2, 0.2]]
try {
exportService.export('excel', response.outputStream, result, fields, labels, [:], parameters);
} catch (Exception e){
throw new LogicException("导出失败!");
}
log.info("导出支付记录end.....................")
}