js中的代码(红色代码为重点):
$("#exportBtn").click(function () {
var attr = [];
if($("#allChoose").is(":checked")){
$("input[name='simChoose']").each(function () {
attr.push($(this).val());
});
}else{
$("input[name='simChoose']:checked").each(function () {
attr.push($(this).val());
});
}
console.log(attr);
if(attr.length<=0){
alert("请选择需要导出的数据...");
return;
}else{
//要提交到后台的数据
var ids = attr.join(",");
alert("数据导出完成");
var form = $("<form>");
form.attr('style','display:none');
form.attr('mothod','post');
form.attr('action',"${ctx!''}/goods/salesCapPrice/exportRecord.html");
//将要提交到后天的数据放到一个隐藏的input框中
var input1 = $('<input>');
input1.attr('type','hidden');
input1.attr('name','ids');
input1.attr('value',ids);
form.append(input1);
//另外一个需要提交的数据
var input2 = $('<input>')
input2.attr('type','hidden');
input2.attr('name','type');
input2.attr('value',2);
form.append(input2);
$('body').append(form);
form.submit(); //表单提交
}
});
后台的代码:
获取需要的数据
public void exportRecord(){
String ids = getRequest().getParameter("ids");
String type = getRequest().getParameter("type");
//不同导出excel的名字
String fileName="";
List<String> titles= new ArrayList();
if(StringUtils.equals("0",type)){
fileName = "高限价维护提交审核记录";
titles.add("提交审核时间");
titles.add("提交审核原因");
titles.add("审核小类数量");
titles.add("审核状态");
titles.add("提交人");
titles.add("审核人");
titles.add("审核时间");
titles.add("开始执行时间");
}else if(StringUtils.equals("1",type)){
fileName = "高限价审核待处理";
titles.add("商品小类数量");
titles.add("提交审核原因");
titles.add("申请人");
titles.add("申请执行时间");
titles.add("提交审核时间");
}else {
fileName = "高限价审核已完成";
titles.add("商品小类数量");
titles.add("提交审核原因");
titles.add("申请人");
titles.add("提交审核时间");
titles.add("审核时间");
titles.add("开始执行日期");
titles.add("审核结果");
}
if(ids != null && type != null){
List<String> idList = Arrays.asList(ids.split(","));
List<SalesCapPriceRecord> list = goodsAuditUpOffService.exportRecord(idList);
HttpServletRequest request = getRequest();
HttpServletResponse response = getResponse();
try {
int index = exportRecordCount(request,response,fileName,list,titles,type);
logger.info("商品高限价导出成功 导出行数:index:"+index);
}catch (Exception e){
logger.info("商品高限价导出失败");
e.printStackTrace();
}
}
}
写入excel
public int exportRecordCount(HttpServletRequest request, HttpServletResponse response, String fileName, List<SalesCapPriceRecord> list,List<String> titles,String type
){
int index = 0;
OutputStream osr = null;
SXSSFWorkbook wb = null;
try {
fileName = fileName + "-" + DateUtil.dateToString(new Date(), "yyyyMMdd");
osr = response.getOutputStream();
wb = new SXSSFWorkbook(rowaccess);
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("导出记录");
//普通单元格格式
CellStyle strStyle = createStrCellStyle(wb);
// 整数单元格格式
CellStyle intStyle = createIntCellStyle(wb);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
UserInfoQuery userInfoQuery = new UserInfoQuery();
UserInfoQuery userInfoQuery1 = new UserInfoQuery();
//
if(StringUtils.equals("0",type)){
Row row0 = sheet.createRow(0);
row0.setHeight((short)700);
for(int i=0;i<titles.size();i++){
Cell tiltleCell0 = row0.createCell(i);
tiltleCell0.setCellValue(titles.get(i));
tiltleCell0.setCellStyle(strStyle);
}
for(int i=0;i<list.size();i++){
index = index+1;
Row row = sheet.createRow(i+1);
row.setHeight((short) 500);
Cell indexCell0 = row.createCell(0);
indexCell0.setCellValue(list.get(i).getSubmitAuditDate()==null?"" : sdf.format(list.get(i).getSubmitAuditDate()) );
indexCell0.setCellStyle(strStyle);
Cell indexCell1 = row.createCell(1);
indexCell1.setCellValue(list.get(i).getSubmitAuditReason() == null ?"" : list.get(i).getSubmitAuditReason());
indexCell1.setCellStyle(strStyle);
Cell indexCell2 = row.createCell(2);
indexCell2.setCellValue(list.get(i).getSmlClassNum() == null ? 0 : list.get(i).getSmlClassNum());
indexCell2.setCellStyle(intStyle);
Cell indexCell3 = row.createCell(3);
if(StringUtils.equals("0",list.get(i).getAuditState())){
indexCell3.setCellValue("待审核");
indexCell3.setCellStyle(strStyle);
}else if(StringUtils.equals("1",list.get(i).getAuditState())){
indexCell3.setCellValue("审核通过");
indexCell3.setCellStyle(strStyle);
}else{
indexCell3.setCellValue("审核驳回 理由:"+list.get(i).getAuditReason());
}
Cell indexCell4 = row.createCell(4);
userInfoQuery.setId(list.get(i).getSubmitUser());
List<UserInfo> userInfos = baseService.find(U_SERVICE,userInfoQuery);
indexCell4.setCellValue(userInfos.get(0).getRealName());
indexCell4.setCellStyle(strStyle);
Cell indexCell5 = row.createCell(5);
userInfoQuery1.setId(list.get(i).getAuditUser());
List<UserInfo> userInfo1 = baseService.find(U_SERVICE,userInfoQuery);
indexCell5.setCellValue(userInfo1.get(0).getRealName());
indexCell5.setCellStyle(strStyle);
Cell indexCell6 = row.createCell(6);
indexCell6.setCellValue(list.get(i).getAuditDateEnd() == null? "": sdf.format(list.get(i).getAuditDateEnd()));
indexCell6.setCellStyle(strStyle);
Cell indexCell7 = row.createCell(7);
indexCell7.setCellValue(list.get(i).getExecuteDate() == null ?"" : sdf.format(list.get(i).getExecuteDate()));
indexCell7.setCellStyle(strStyle);
}
}else if(StringUtils.equals("1",type)){
Row row0 = sheet.createRow(0);
row0.setHeight((short)700);
for(int i=0;i<titles.size();i++){
Cell tiltleCell0 = row0.createCell(i);
tiltleCell0.setCellValue(titles.get(i));
tiltleCell0.setCellStyle(strStyle);
}
for(int i=0;i<list.size();i++){
index = index+1;
Row row = sheet.createRow(i+1);
row.setHeight((short) 500);
Cell indexCell0 = row.createCell(0);
indexCell0.setCellValue(list.get(i).getSmlClassNum()==null?0 : list.get(i).getSmlClassNum());
indexCell0.setCellStyle(strStyle);
Cell indexCell1 = row.createCell(1);
indexCell1.setCellValue(list.get(i).getSubmitAuditReason() == null ?"" : list.get(i).getSubmitAuditReason());
indexCell1.setCellStyle(strStyle);
Cell indexCell2 = row.createCell(2);
userInfoQuery.setId(list.get(i).getSubmitUser());
List<UserInfo> userInfos = baseService.find(U_SERVICE,userInfoQuery);
indexCell2.setCellValue(userInfos.get(0).getRealName());
indexCell2.setCellStyle(strStyle);
Cell indexCell3 = row.createCell(3);
indexCell3.setCellValue(list.get(i).getExecuteDate() == null ?"" : sdf.format(list.get(i).getExecuteDate()));
indexCell3.setCellStyle(strStyle);
Cell indexCell4 = row.createCell(4);
indexCell4.setCellValue(list.get(i).getSubmitAuditDate()==null?"" : sdf.format(list.get(i).getSubmitAuditDate()) );
indexCell4.setCellStyle(strStyle);
}
}else{
Row row0 = sheet.createRow(0);
row0.setHeight((short)700);
for(int i=0;i<titles.size();i++){
Cell tiltleCell0 = row0.createCell(i);
tiltleCell0.setCellValue(titles.get(i));
tiltleCell0.setCellStyle(strStyle);
}
for(int i=0;i<list.size();i++){
index = index+1;
Row row = sheet.createRow(i+1);
row.setHeight((short) 500);
Cell indexCell0 = row.createCell(0);
indexCell0.setCellValue(list.get(i).getSmlClassNum() == null ? 0 : list.get(i).getSmlClassNum());
indexCell0.setCellStyle(intStyle);
Cell indexCell1 = row.createCell(1);
indexCell1.setCellValue(list.get(i).getSubmitAuditReason() == null ?"" : list.get(i).getSubmitAuditReason());
indexCell1.setCellStyle(strStyle);
Cell indexCell2 = row.createCell(2);
userInfoQuery.setId(list.get(i).getSubmitUser());
List<UserInfo> userInfos = baseService.find(U_SERVICE,userInfoQuery);
indexCell2.setCellValue(userInfos.get(0).getRealName());
indexCell2.setCellStyle(strStyle);
Cell indexCell3 = row.createCell(3);
indexCell3.setCellValue(list.get(i).getSubmitAuditDate()==null?"" : sdf.format(list.get(i).getSubmitAuditDate()) );
indexCell3.setCellStyle(strStyle);
Cell indexCell4 = row.createCell(4);
indexCell4.setCellValue(list.get(i).getAuditDateEnd() == null? "": sdf.format(list.get(i).getAuditDateEnd()));
indexCell4.setCellStyle(strStyle);
Cell indexCell5 = row.createCell(5);
indexCell5.setCellValue(list.get(i).getExecuteDate() == null ?"" : sdf.format(list.get(i).getExecuteDate()));
indexCell5.setCellStyle(strStyle);
Cell indexCell6 = row.createCell(6);
if(StringUtils.equals("0",list.get(i).getAuditState())){
indexCell6.setCellValue("待审核");
indexCell6.setCellStyle(strStyle);
}else if(StringUtils.equals("1",list.get(i).getAuditState())){
indexCell6.setCellValue("审核通过");
indexCell6.setCellStyle(strStyle);
}else{
indexCell6.setCellValue("审核驳回 理由:"+list.get(i).getAuditReason());
indexCell6.setCellStyle(strStyle);
}
}
}
setRequestHeader(request, response, fileName);
wb.write(osr);
osr.flush();
osr.close();
}catch (FileNotFoundException e){
e.printStackTrace();
index = 0;
} catch (IOException e) {
index = 0;
e.printStackTrace();
} catch (Exception e) {
index =0;
e.printStackTrace();
}
return index;
}
//设置table的样式
public static CellStyle createStrCellStyle(SXSSFWorkbook workbook) {
CellStyle strStyle = workbook.createCellStyle();
strStyle.setAlignment(CellStyle.ALIGN_CENTER);// 设置水平居中
strStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 设置垂直居中
return strStyle;
}
public static CellStyle createIntCellStyle(SXSSFWorkbook workbook) {
// 整数单元格格式
CellStyle intStyle = workbook.createCellStyle();
intStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0"));
intStyle.setAlignment(CellStyle.ALIGN_CENTER);// 设置水平居中
intStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 设置垂直居中
return intStyle;
}
public static void setRequestHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {
try {
String agent = (String) request.getHeader("USER-AGENT");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
fileName = fileName + DateUtil.dateToString(new Date(), "yyyy-MM-dd");
if (agent != null && (agent.contains("Firefox") || agent.contains("Safari"))) {
// FF
fileName = "=?UTF-8?B?" + (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?=";
} else {
// IE
String os = System.getProperty("os.name");
fileName = URLEncoder.encode(fileName, "UTF-8");
if (os.indexOf("Linux") != -1) {
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
} else if (os.indexOf("Windows") != -1) {
fileName = new String(fileName.getBytes("GB2312"), "ISO8859-1");
}
}
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}