poi 实战代码---导出Excel(根据模板导出)

/**

* 导出excel

* @param request

* @param response

* @return

* @throws Exception

*/

@RequestMapping("exportExcel")

@Action(description="导出excel")

public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception

{

//获取实体类,并取得时刻点的值,存放到map里面

String  id = RequestUtil.getString(request,"id");

LoadDate ld = new LoadDate();

ld = loadDateService.getById(Long.parseLong(id));

String mapVal = ld.getValue();

JSONObject json = JSONObject.fromObject(mapVal);

Map<String,String> map = new HashMap<String,String>();

if (BeanUtils.isNotEmpty(json)) {

Iterator<String> iterator = json.keys();

while (iterator.hasNext()) {

String ie = (String) iterator.next();

map.put(ie, json.getString(ie));

}

}

String dirPath = FileUtil.getRootPath() + File.separator+"commons" +File.separator+"template"+File.separator+"exportMode"+File.separator;

String fileName="loadTemplate.xls";

FileInputStream inStream = new FileInputStream(new File(dirPath+fileName));

//读取excel模板

HSSFWorkbook wb = new HSSFWorkbook(inStream);    //读取excel模板

//读取了模板内所有sheet内容

HSSFSheet sheet = wb.getSheetAt(0);

HSSFCell cell = null;

//在相应的单元格进行赋值

for(int i=2;i<=97;i++){

cell = sheet.getRow(i).getCell(1);

String tmp = cell.getStringCellValue();

cell.setCellValue(map.get(tmp));

}

for(int i=98;i<=102;i++){

cell = sheet.getRow(i).getCell(1);

String tmp = cell.getStringCellValue();

if("ycgfdl".equals(tmp)){

if(BeanUtils.isNotEmpty(ld.getYcgfdl())){

cell.setCellValue(ld.getYcgfdl());

}else{

cell.setCellValue("");

}

}else if("ycqdl".equals(tmp)){

if(BeanUtils.isNotEmpty(ld.getYcqdl())){

cell.setCellValue(ld.getYcqdl());

}else{

cell.setCellValue("");

}

}else if("yccfdLi".equals(tmp)){

if(BeanUtils.isNotEmpty(ld.getYccfdLi())){

cell.setCellValue(ld.getYccfdLi());

}else{

cell.setCellValue("");

}

}else if("yccfdLl".equals(tmp)){

if(BeanUtils.isNotEmpty(ld.getYccfdLl())){

cell.setCellValue(ld.getYccfdLl());

}else{

cell.setCellValue("");

}

}else if("ycdgdl".equals(tmp)){

if(BeanUtils.isNotEmpty(ld.getYcdgdl())){

cell.setCellValue(ld.getYcdgdl());

}else{

cell.setCellValue("");

}

}

}

response.setContentType("application/octet-stream;charset=UTF-8");

response.setHeader("Content-Type","application/vnd.ms-excel");

response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("GB2312"), "8859_1" ));

response.addHeader("Pargam", "no-cache");

response.addHeader("Cache-Control", "no-cache");

OutputStream out = response.getOutputStream();

wb.write(out);

out.flush();

out.close();

}

上一篇:(转载)用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序“


下一篇:如何让VS2013编写的程序