导出当页:
js:
var rows = $('#dd').datagrid('getRows');
if(rows!=""){
var form = $("<form>");
form.attr('style', 'display:none');
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', $("#path").val()+'/cust/exportCustCustMember');
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'item');
input1.attr('value', JSON.stringify($('#dd').datagrid('getRows')));//将表格数据转成json字符串
//getSelections 导出选中额
var titles=ale();
var input2 = $('<input>');
input2.attr('type', 'hidden');
input2.attr('name', 'titles');
input2.attr('value', titles);
var fields=getFields();
var input3 = $('<input>');
input3.attr('type', 'hidden');
input3.attr('name', 'fields');
input3.attr('value', fields);
$('body').append(form);
form.append(input1);
form.append(input2);
form.append(input3);
form.submit();
form.remove();
}else{
$.messager.alert("消息提示", "没有需要导出的数据!", "error");
}
//获取title
function ale(){
var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
var colName=[];
for(i=2;i<opts.length-3;i++)
{
var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
colName.push(col.title);//把TITLEPUSH到数组里去
}
return colName.join(",");
}
function getFields(){
var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
var colName=[];
for(i=2;i<opts.length-3;i++)
{
var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
colName.push(col.field);//把TITLEPUSH到数组里去
}
return colName.join(",");
}
controller:
@RequiresPermissions(value = { "cust:children:view", "cust:other:view", "cust:tea:view" }, logical = Logical.OR)
@RequestMapping("/cust/exportCustCustMember")
@ResponseBody
public void exportXLS0(@RequestParam("item") String item, String titles, String fields,
HttpServletResponse response) throws IOException {
//反序列化表格数据
List<CustMemberQueryModel> jsonToList = StringUtils.jsonToList(item, CustMemberQueryModel.class);
for (CustMemberQueryModel custMemberQueryModel : jsonToList) {
if ("0".equals(custMemberQueryModel.getCheckFlag())) {
custMemberQueryModel.setCheckFlag("未审批");
} else if ("1".equals(custMemberQueryModel.getCheckFlag())) {
custMemberQueryModel.setCheckFlag("已审批");
}
if ("1".equals(custMemberQueryModel.getSex())) {
custMemberQueryModel.setSex("男");
} else if ("2".equals(custMemberQueryModel.getSex())) {
custMemberQueryModel.setSex("女");
} else if ("0".equals(custMemberQueryModel.getSex())) {
custMemberQueryModel.setSex("未知");
}
}
SerializeUtil serializeUtil = new SerializeUtil();
serializeUtil.exportXLS(response, titles, fields, jsonToList, response.getOutputStream(), "custMember");
}
导出全部:
js:
var data = $('#dd').datagrid('getData');
if (data.total == 0) {
$.messager.alert("消息提示", "没有需要导出的数据!", "error");
return false;
}
var lgCustId=$("#LgCustId").val();
var lgAcctId=$("#LgAcctId").val();
var capDateBegin=$("#capDateBegin").val();
var capDateEnd=$("#capDateEnd").val();
var form = $("<form>");
form.attr('style', 'display:none');
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', $("#path").val()+'/mch/exportAllBasicStatics?capDateBegin='+capDateBegin+'&capDateEnd='+capDateEnd+'&custId='+lgCustId+'&acctId='+lgAcctId);
var titles=ale();
var input2 = $('<input>');
input2.attr('type', 'hidden');
input2.attr('name', 'titles');
input2.attr('value', titles);
var fields=getFields();
var input3 = $('<input>');
input3.attr('type', 'hidden');
input3.attr('name', 'fields');
input3.attr('value', fields);
$('body').append(form);
form.append(input2);
form.append(input3);
form.submit();
form.remove();
function ale(){
var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
var colName=[];
for(i=0;i<opts.length;i++)
{
var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
colName.push(col.title);//把TITLEPUSH到数组里去
}
return colName.join(",");
};
function getFields(){
var opts = $('#dd').datagrid('getColumnFields'); //这是获取到所有的FIELD
var colName=[];
for(i=0;i<opts.length;i++)
{
var col = $('#dd').datagrid( "getColumnOption" , opts[i] );
colName.push(col.field);//把TITLEPUSH到数组里去
}
return colName.join(",");
}
controller:
//导出商户基本统计
@RequiresPermissions(value={"mch:mchstatistics:view"},logical=Logical.OR)
@ResponseBody
@RequestMapping("/mch/exportAllBasicStatics")
public void exportAllBasicStatics(String titles, String fields, HttpServletResponse response,String capDateBegin,String capDateEnd,String custId,String acctId) throws IOException{
/*acctId="990001000001";*/
capDateBegin = capDateBegin.replaceAll("-", "");
capDateEnd = capDateEnd.replaceAll("-", "");
BasePageRequest<AcctMchReportQueryCondModel> req = new BasePageRequest<AcctMchReportQueryCondModel>();
AcctMchReportQueryCondModel acctMchReportQueryCondModel = new AcctMchReportQueryCondModel();
acctMchReportQueryCondModel.setCustId(custId);
acctMchReportQueryCondModel.setCapDateBegin(capDateBegin);
acctMchReportQueryCondModel.setCapDateEnd(capDateEnd);
acctMchReportQueryCondModel.setMchAcctId(acctId);
req.setObj(acctMchReportQueryCondModel);
BasePageResponse<MchBizModel> rep = acctReportProvider.queryStatisticsBaseTotal(custId, req);
List<MchHistorySummary> showList = new ArrayList<MchHistorySummary>();
if("0000".equals(rep.getRespCode())){
List<MchBizModel> objs = rep.getObjs();
if(objs!=null && objs.size()>0){
//对子系统进行处理
BaseResponse selectAll = sharedSysregisterProvider.selectAll();
SharedSysregisterResponse sharedSysregisterResponse=(SharedSysregisterResponse )selectAll;
List<SharedSysregisterView> sharedSysregisterViewList = sharedSysregisterResponse.getSharedSysregisterViewList();
for(MchBizModel obj:objs){
if(!acctId.equals(obj.getMchAcctId())){
continue;
}
MchHistorySummary mchHistorySummary = new MchHistorySummary();
mchHistorySummary.setAcctType(obj.getAcctType());
mchHistorySummary.setCapDate(obj.getCapDate());
mchHistorySummary.setCustId(obj.getCustId());
mchHistorySummary.setMchAcctId(obj.getMchAcctId());
mchHistorySummary.setMchName(obj.getMchName());
mchHistorySummary.setMealSeq(obj.getMealSeq());
mchHistorySummary.setPosCode(obj.getPosCode());
mchHistorySummary.setTranAmt(obj.getTranAmt());
mchHistorySummary.setTranNumber(obj.getTranNumber());
for(SharedSysregisterView ssv:sharedSysregisterViewList){
if(obj.getSysCode().toString().equals(ssv.getSysCode().toString())){
mchHistorySummary.setSysCode(ssv.getSysCode()+"-"+ssv.getSysName());
}
}
if(mchHistorySummary.getSysCode()==null || "".equals(mchHistorySummary.getSysCode())){
mchHistorySummary.setSysCode("未知");
}
showList.add(mchHistorySummary);
}
}
}
SerializeUtil serializeUtil = new SerializeUtil();
serializeUtil.exportXLS(response, titles, fields, showList, response.getOutputStream(), "商户基本统计");
}
SerializeUtil工具类:
package com.synjones.cloudcard.mng.gateway.web.shared.localService.utils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.httpclient.util.DateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.util.IOUtils;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
@SuppressWarnings("unchecked")
public class SerializeUtil {
private static final JdkSerializationRedisSerializer jdkSerializationRedisSerializer = new JdkSerializationRedisSerializer();
/**
* 序列化对象
* @param obj
* @return
*/
public static <T> byte[] serialize(T obj){
try {
return jdkSerializationRedisSerializer.serialize(obj);
} catch (Exception e) {
throw new RuntimeException("序列化失败!", e);
}
}
/**
* 反序列化对象
* @param bytes 字节数组
* @param cls cls
* @return
*/
@SuppressWarnings("unchecked")
public static <T> T deserialize(byte[] bytes){
try {
return (T) jdkSerializationRedisSerializer.deserialize(bytes);
} catch (Exception e) {
throw new RuntimeException("反序列化失败!", e);
}
}
public void exportXLS(HttpServletResponse response,String titles,String fields,List<?> jsonToList,ServletOutputStream out, String type){
try {
String workbookName =type+ "表格"
+ DateUtil.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss") + ".xls";
//专治中文乱码
String fileName = new String(workbookName.getBytes("gb2312"), "ISO8859-1" );
//创建HSSFWorkbook对象(excel的文档对象)
@SuppressWarnings("resource")
HSSFWorkbook wb = new HSSFWorkbook();
//建立新的sheet对象(excel的表单)
HSSFSheet sheet=wb.createSheet();
//在sheet里创建第一行
HSSFRow row1=sheet.createRow(0);
//将表头插入
String[] split = titles.split(",");
for (int i = 0; i < split.length; i++) {
if(!"编辑".equals(split[i])&&!"删除".equals(split[i])&&!"修改".equals(split[i])){
row1.createCell(i).setCellValue(split[i]);
}
}
String[] split2 = fields.split(",");
SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i=0;i<jsonToList.size();i++){
HSSFRow row2=sheet.createRow(1+i);
Map<String, Object> cardInfoModelMap = (Map<String, Object>) FormatUtils.convertBean2MapForIngoreserialVersionUID(jsonToList.get(i));
for (int j=0;j<split.length;j++){
if(cardInfoModelMap.get(split2[j])!=null){
if(cardInfoModelMap.get(split2[j]) instanceof Date){
row2.createCell(j).setCellValue(dateFormater.format(cardInfoModelMap.get(split2[j])));
}else{
row2.createCell(j).setCellValue(cardInfoModelMap.get(split2[j]).toString());
}
}
}
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
wb.write(os);
byte[] data = os.toByteArray();
// 放到response中推到前台
response.setContentType("application/x-download");
response.addHeader("Content-Disposition","attachment;filename=" + fileName);
InputStream fileStream = new ByteArrayInputStream(data);
IOUtils.copy(fileStream, out);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
out.close();
} catch (IOException e) {
}
}
}
}