excel模板操作

javascript部分

//项目导出
function exportExl(){ 
  var xzqh = tree0.getValue();  
  var nf=NF.getValue();
  var xmmc=XMMC.getValue();
  var xmzt=XMZT.getValue();
    location.href = "exportxmexl?XMLX=001&XZQH="+xzqh+"&NF="+nf+"&XMMC="+xmmc+"&XMZT="+xmzt+"&ZHTJ="+SQL_ZHTJ;
}

java部分

	@SuppressWarnings("unchecked")
	@RequestMapping("/exportxmexl")
	public Object exportXmExl(HttpServletRequest request,
			HttpServletResponse response) {
		Subject subject = SecurityUtils.getSubject();
		User user = (User) subject.getPrincipal();
		Map<String, Object> p = new HashMap<String, Object>();
		p.put("XMLX", request.getParameter("XMLX"));
		p.put("XZQH", request.getParameter("XZQH"));
		p.put("NF", request.getParameter("NF"));
		p.put("XMMC", request.getParameter("XMMC"));
		p.put("XMZT", request.getParameter("XMZT"));
		p.put("ZHTJ", request.getParameter("ZHTJ"));
		// 获取数据list
		List<Map<String, Object>> list = daXmcxService.getXmList2(p, user);
		// 获取excl模本
		String path = "WEB-INF/exceltemplate/xmTemplate.xls";
		if( request.getParameter("XMLX").indexOf("002")!=-1){
			path = "WEB-INF/exceltemplate/xmTemplateCyhtx.xls";
		}
		if( request.getParameter("XMLX").indexOf("003")!=-1){
			path = "WEB-INF/exceltemplate/xmTemplateCyhbz.xls";
		}
		String realpath = request.getSession().getServletContext()
				.getRealPath(path);
		HSSFWorkbook workbook = null;
		try {
			workbook = new HSSFWorkbook(new FileInputStream(realpath));
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		// 创建sheet
		HSSFSheet sheet = workbook.getSheetAt(0);// 读取sheet
		HSSFCellStyle style1 = workbook.createCellStyle();
		style1.setBorderTop(HSSFCellStyle.BORDER_THIN);
		style1.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		style1.setBorderRight(HSSFCellStyle.BORDER_THIN);
		style1.setBorderBottom(HSSFCellStyle.BORDER_THIN);

		HSSFCellStyle cellStyle = workbook.createCellStyle();
		HSSFDataFormat format = workbook.createDataFormat();
		cellStyle.setDataFormat(format.getFormat("yyyy-mm-dd"));
		cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
		cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
		// 绘制单元格
		Iterator<Map<String, Object>> i = list.iterator();
		int iRow = 1;
		HSSFRow row;
		HSSFCell cell;
		while (i.hasNext()) {
			int iCell = 0;
			Map<String, Object> dataRow = (Map<String, Object>) i.next();
			Iterator<String> j = dataRow.keySet().iterator();

			row = sheet.createRow(iRow);// 创建行
			while (j.hasNext()) {
				cell = row.createCell(iCell);// 创建列
				cell.setCellStyle(style1);
				String keyvalue = String.valueOf(dataRow.get(j.next()));
				if (keyvalue == null || keyvalue == ""
						|| keyvalue.equals("null")) {
					keyvalue = "";
				}
				cell.setCellValue(keyvalue);
				iCell++;
			}
			iRow++;

		}

		ServletOutputStream os = null;
		try {
			String filename = "项目导出列表.xls";
			response.setContentType("application/vnd.ms-excel");// 设置生成的文件类型
			response.setHeader("Content-Disposition", "filename="
					+ new String(filename.getBytes("gb2312"), "iso8859-1"));//
			os = response.getOutputStream();
			workbook.write(os);
			os.flush();
			response.flushBuffer();
			os.close();
		} catch (Exception e) {
			e.printStackTrace();

		} finally {
			if (os != null) {
				try {
					os.close();
				} catch (IOException e) {
					os = null;
				}
			}

		}
		return null;
	}

猜你喜欢

转载自b090023.iteye.com/blog/2309986