//前端设置下载方法
function f_exportGrid(){
var para = $("#form1").serializeArray()
var url = action+'!exportGrid.action?';
for(var i=0;i<para.length;i++){
url += para[i].name+'='+para[i].value+'&';//加入参数
}
var pageNo = gridManager.options.page;
var pageSize = gridManager.options.pageSize;
url += 'pageNo='+pageNo;
url += '&pageSize='+pageSize;
location.href=url;//下载行为
}
//后台
public void exportGrid1(List list) throws IOException {
// 生成Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("数据");
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);// 左右居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 上下居中
cellStyle.setBorderTop(BorderStyle.THIN);// 上边框 细边线
cellStyle.setBorderBottom(BorderStyle.THIN);// 下边框 细边线
cellStyle.setBorderLeft(BorderStyle.THIN);// 左边框 细边线
cellStyle.setBorderRight(BorderStyle.THIN);// 右边框 细边线
// 设置字体样式
Font titleFont = wb.createFont();
titleFont.setFontHeightInPoints((short) 13); // 字体高度
titleFont.setFontName("宋体"); // 字体样式
titleFont.setBold(true);
cellStyle.setFont(titleFont);
String name = "";
int start=0;
int num = 0 ;
for (int i = 0; i < list.size(); i++) {
Map map = (Map)list.get(i);
String name1 = map.get("UserName").toString();
if(!name1.equals(name) ){
if(StringUtils.isBlank(name)){
name=name1;
}else{
if(num != 1){
int end = num+start-1;
sheet.addMergedRegion(new CellRangeAddress(start,end,0,0)); //设置合并列
sheet.addMergedRegion(new CellRangeAddress(start,end,3,3));//设置合并列
}
name = name1;
}
start = i+1;
num=1;
}else{
num ++ ;
if(name1.equals(name) && i==list.size()-1){
int end = num+start-1;
sheet.addMergedRegion(new CellRangeAddress(start,end,0,0));
sheet.addMergedRegion(new CellRangeAddress(start,end,3,3));
}
//start = i;
}
}
// 表头
String[] heararr = {"人员","点位","时长(单位:分钟)","总时长(单位:分钟)"};
//System.err.println("heararr: "+heararr.length);
HSSFRow headRow = sheet.createRow(0);
for (int i = 0; i < heararr.length; i++) {
HSSFCell cell = headRow.createCell(i);
cell.setCellValue(heararr[i]);
cell.setCellStyle(cellStyle);
sheet.autoSizeColumn(i);// 自动设置宽度
}
HSSFCellStyle dataStyle = wb.createCellStyle();
dataStyle.setAlignment(HorizontalAlignment.CENTER);// 左右居中
dataStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 上下居中
dataStyle.setBorderTop(BorderStyle.THIN);// 上边框 细边线
dataStyle.setBorderBottom(BorderStyle.THIN);// 下边框 细边线
dataStyle.setBorderLeft(BorderStyle.THIN);// 左边框 细边线
dataStyle.setBorderRight(BorderStyle.THIN);// 右边框 细边线
Font dataFont = wb.createFont();
dataFont.setFontHeightInPoints((short) 11); // 字体高度
titleFont.setFontName("宋体"); // 字体样式
dataStyle.setFont(dataFont);
dataStyle.setWrapText(true);//设置自动换行
for (int i = 0; i < list.size(); i++) {
HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1);
Map map = (Map)list.get(i);
HSSFCell cell1 = dataRow.createCell(0);
cell1.setCellValue(map.get("UserName").toString());
cell1.setCellStyle(dataStyle);
sheet.autoSizeColumn(0);// 自动设置宽度
cell1 = dataRow.createCell(1);
cell1.setCellValue(map.get("OutfallsName").toString());
cell1.setCellStyle(dataStyle);
sheet.autoSizeColumn(1);// 自动设置宽度
cell1 = dataRow.createCell(2);
cell1.setCellValue(map.get("Num").toString());
cell1.setCellStyle(dataStyle);
sheet.autoSizeColumn(2);// 自动设置宽度
cell1 = dataRow.createCell(3);
cell1.setCellValue(map.get("Sum").toString());
cell1.setCellStyle(dataStyle);
sheet.autoSizeColumn(3);// 自动设置宽度
}
// 下载导出
// 设置头信息
ServletActionContext.getResponse().setContentType(
"application/vnd.ms-excel");
String filename = "任务人员.xls";
HttpServletRequest request = ServletActionContext.getRequest();
filename = processFileName(request,filename);
ServletActionContext.getResponse().setHeader("Content-Disposition",
"attachment;filename=" + filename);
ServletOutputStream outputStream = ServletActionContext.getResponse()
.getOutputStream();
wb.write(outputStream);
wb.close();
}