public void downLoadDept( HttpServletResponse response) throws Exception{
PageData pd = new PageData();//创建对象
List taskList =(List) dao.findForList("taskMapper.taskCombox",pd);//获取所有主任务
String title = "机构信息";//标题
String[] titleList = new String[]{"部门编号", "部门名称", "所属部门编号", "品类", "if36", "ifup","备注"};//表头数组
String[] titleColumnList = new String[]{"DEPT_CODE", "DEPT_NAME", "PID", "INDUSTRY_ID","IF_BIGCITY", "", "REMARK"};//字段数据
int cellNumber = titleList.length;//表头长度
//创建webbook对象
HSSFWorkbook wb = new HSSFWorkbook();
//动态创建多个sheet
for (int i= 0; i
String taskName = taskList.get(i).get("NAME").toString(); //获取主任务名称
String taskid = taskList.get(i).get("ID").toString();//获取主任务id
pd.put("TASK_ID",taskid);//将主任务id,存入对象中
//根据主任务id,获取部门信息
List deptList = (List)dao.findForList("DeptMapper.findBySubtaskId",pd);
//创建sheet
HSSFSheet sheet = wb.createSheet();
//设置sheet名称
wb.setSheetName(i,taskName);
//获取sheet
HSSFSheet sheetinput = wb.getSheetAt(i);
//在sheet第1行中添加表头
HSSFRow headerRow = sheetinput.createRow((short) 0);
//设置单元格样式
HSSFCellStyle style = getExcelStyle(wb);
//创建表头单元格
HSSFCell headerCell = null;
//遍历表头
for (int k = 0; k < cellNumber; k++) {
headerCell = headerRow.createCell((short) k); //单元格titleList[k]
headerCell.setCellValue(titleList[k]);//给单元格赋值
headerCell.setCellStyle(style);//单元格样式
sheet.setColumnWidth((short) k, (short) 5766); //设置单元格宽度
}
//循环遍历数据,存入excel中
for (int v = 0; v < deptList.size();v++) {
PageData single = deptList.get(v);
HSSFRow dataRow = sheet.createRow((short) v + 1);//创建行
HSSFCell contentCell = null;//创建单元格
for (int j = 0; j < cellNumber ; j++) {
String TABLE_COLUMN = titleColumnList[j];
String VALUE = "";
//判断map中是否存在key,并且判断key的值是否为空
if(single.containsKey(TABLE_COLUMN) && single.get(TABLE_COLUMN) != null && !single.get(TABLE_COLUMN).toString().equals("")){
if(TABLE_COLUMN.equals("IF_BIGCITY")){
VALUE = single.get(TABLE_COLUMN).toString().equals("1")? "是":"否";
}else if(TABLE_COLUMN.equals("INDUSTRY_ID") && single.get("INDUSTRY_ID") != null && (!single.get("INDUSTRY_ID").equals(""))){
String INDUSTRY_IDS = single.get("INDUSTRY_ID").toString();//获取品类id字符串
List ids = new ArrayList();//创建list对象
String[] arr = INDUSTRY_IDS.split(",");//将字符串转化成数组
for (int s = 0; s < arr.length; s++) {//遍历数组,将数据放入到对象中
ids.add(arr[s]);
}
pd = new PageData();
pd.put("ids", ids);//将list放入map中
//根据品类id,获取到品类名称
List listName = (List) dao.findForList("DeptMapper.findByIndustryId", pd);
String name = "";
for(int n=0;n
name +=listName.get(n).get("INDUSTRY_NAME")+",";
}
if(name.length()>0){
name = name.substring(0,name.length()-1);
}
VALUE = name;
}else{
VALUE = single.get(TABLE_COLUMN).toString();
}
}
contentCell = dataRow.createCell((short)j);//单元格
contentCell.setCellValue(VALUE);//单元格赋值
}
contentCell.setCellStyle(style);//行添加样式
}
}
//浏览器下载
OutputStream os=null;
try {
os = response.getOutputStream();// 取得输出流
response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment; filename=" + new String((title+".xls").getBytes("UTF-8"), "ISO8859-1"));
response.setContentType("text/html;charset=UTF-8");
response.setContentType("application/x-excel");
wb.write(os);
os.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static HSSFCellStyle getExcelStyle(HSSFWorkbook wb) {
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
HSSFFont font = wb.createFont();
font.setColor(HSSFColor.BLACK.index);//字体颜色
font.setFontHeightInPoints((short) 12);//字体大小
font.setFontName("宋体");//字体
style.setFont(font);
style.setWrapText(true);//自动换行
return style;
}