天天看点

java-导出excel并解决乱码问题

鎶€鏈爏truts2+easyui锛堝弬鑰冿紝涓昏瑙e喅缂栫爜鍜宔xcel瀵煎嚭闂)

琛ㄥ崟鐨勮缃?

<form id="form1" name="form1" method="post"聽 accept-charset="GBK" 慰nsubmit="if(!!window.ActiveXObject){document.charset='GBK';}"聽 ></form>

js浠g爜

//寮规寮忓鍑哄埌Excel琛ㄤ腑
	 function exportExcel(){
		var gs = $('#gs').combobox('getValue');
		var ssjd = $('#jd').combobox('getValue');
		var number = $("#number").val();
		var name = $("#name").val();
           
<%--鏂规硶涓€--%>
<%--		//alert("鏌ヨ鏉′欢锛氬綊灞烇細"+gs+",琛楅亾:"+ssjd+",缂栧彿锛?+number+",濮撳悕锛?+name);--%>
<%--		form1.action='/mzj/zjgl/exportExcel.action?rygs='+gs+'&ssjd='+ssjd+'&rybh='+number+'&name='+name,--%>
<%--		form1.submit();--%>
<%--鏂逛簩--%>
<%--		--%>
<%--		 $.ajax({  --%>
<%--			contentType : "application/json",--%>
<%--			url:'/mzj/zjgl/exportExcel.action?rygs='+gs+'&ssjd='+ssjd+'&rybh='+number+'&name='+name,--%>
<%--			type:"post",--%>
<%--			dataType:"json",--%>
<%--			async:false,--%>
<%--			success:function(data) --%>
<%--			{--%>
<%--			},--%>
<%--		 	error : function() {  --%>
<%--                alert("瀵煎嚭澶辫触");  --%>
<%--			}--%>
<%--		});--%>
<%--鏂逛笁--%>		 
<%--		 jQuery("form")//閫夋嫨form    --%>
<%--		 .first()//閫夋嫨绗竴涓?绗簩涓敤eq(1) 鏈€鍚庝竴涓?last()    --%>
<%--		 .attr("action",'/mzj/zjgl/exportExcel.action?rygs='+gs+'&ssjd='+ssjd+'&rybh='+number+'&name='+name)//鏇存敼灞炴€?   --%>
<%--		 .submit();//鎻愪氦--%>
<%--鍚屾柟涓?-%>		 
		    var url='/mzj/zjgl/exportExcel.action?rygs='+gs+'&ssjd='+ssjd+'&rybh='+number+'&name='+name; 
			$("#form1").attr("action",url); 
			$("#form1").submit(); 
		 
	 }
           

鍚庡彴浠g爜

// 寮瑰嚭寮忓鍑篍xcel鏂囦欢
	public void exportExcel() {
		HttpServletResponse response = this.getResponse();
//		response.setContentType("application/vnd.ms-excel; charset=UTF-8");
		response.setContentType("application/vnd.ms-excel;");
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
		Date date = new Date();
		String fileName = sdf.format(date);
		response.setHeader("Content-Disposition", "attachment;filename="
				+ fileName + ".xls");
		
		// ******************************************闆嗗悎
		String sort = this.getRequest().getParameter("sort");
		String order = this.getRequest().getParameter("order");
		String rygs = this.getRequest().getParameter("rygs");
		String ssjd = this.getRequest().getParameter("ssjd");
		String rybh = this.getRequest().getParameter("rybh");
		String name = this.getRequest().getParameter("name");
		// 鏌ヨ鏉′欢
		StringBuffer contions = new StringBuffer();
		if (null != rygs && !"".equals(rygs)) {
			contions.append(" and ").append(" CZ_RYGS='").append(rygs)
					.append("' ");
		}
		if (null != ssjd && !"".equals(ssjd)) {
			contions.append(" and ").append(" CZ_SSJD='").append(ssjd)
					.append("' ");
		}
		if (null != rybh && !"".equals(rybh)) {
			contions.append(" and ").append(" CZ_NUMBER = '").append(rybh)
					.append("' ");
		}
		if (null != name && !"".equals(name)) {
			contions.append(" and ").append(" CZ_NAME like '%")
					.append(name).append("%' ");
		}
		Map map = new HashMap();
		if (sort == null || order == null) {
			map.put("sort", "rygs");
			map.put("order", "asc");
		} else {
			map.put("sort", sort);
			map.put("order", order);
		}
		map.put("contions", contions.toString());

		CaptialService capitalService = new CaptialService();

		long time1 = new Date().getTime();
		System.out.println("寮€濮嬫椂闂达細"+new Date());
		//鍐欏叆Excel鐨勬暟鎹甽ist
		List<CzzjInfo> list = capitalService.findAll(map);
		//List<CzzjInfo> list=new ArrayList<CzzjInfo>();
		System.out.println("缁撴潫鏃堕棿锛?+new Date());
		//鏁版嵁鍒楀悕
		String[] headers = { "搴忓彿", "浜哄憳褰掑睘", "鎵€灞炶閬?, "缂栧彿", "濮撳悕", "鍟嗕繚锛堝厓锛?,
				"鍟嗕繚琛ュ樊锛堝厓锛?, "鍖鸿ˉ锛堝厓锛?, "鐢熻ˉ锛堝厓锛?, "寮€鎴烽摱琛?, "鍗″彿" };
		//鍐欏叆Excel
		try {
			HSSFWorkbook wb = new HSSFWorkbook();
			HSSFSheet sheet = wb.createSheet("sheet_1");
			sheet.setDefaultColumnWidth((short) 15);
			//璁剧疆鏍煎紡
			int iFontSize = 12;
			String sFontname = "瀹嬩綋";

			HSSFFont Headfont = wb.createFont();
			Headfont.setFontHeightInPoints((short) iFontSize); // 琛ㄥご瀛椾綋澶у皬
			Headfont.setFontName(sFontname); // 琛ㄥご瀛椾綋鍚嶇О
			Headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 琛ㄥご瀛椾綋鍔犵矖

			HSSFCellStyle HeadStyle = wb.createCellStyle(); // 琛ㄥご鏍煎紡
			HeadStyle.setFont(Headfont); // 琛ㄥご瀛椾綋
			HeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 琛ㄥご浣嶇疆
			
			HSSFFont bodyfont = wb.createFont();
			bodyfont.setFontHeightInPoints((short) 10); // 瀛椾綋澶у皬
			bodyfont.setFontName(sFontname); // 瀛椾綋鍚嶇О
			bodyfont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); // 瀛椾綋鍔犵矖
			HSSFCellStyle bodyStyle = wb.createCellStyle(); // 鏍煎紡
			bodyStyle.setFont(bodyfont); // 瀛椾綋
			bodyStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 浣嶇疆
			
			
			int i = 0;
			while (i <= list.size()) {
				HSSFRow row = sheet.createRow(i);
				if (i == 0) {
					for (int j = 0; j < headers.length; j++) {
						HSSFCell cell = row.createCell((short) j);
						cell.setCellStyle(HeadStyle);
						cell.setCellValue(headers[j]);
					}
				} else {
					CzzjInfo cz = list.get(i-1);
					HSSFCell cell = row.createCell((short) 0);
					cell.setCellStyle(bodyStyle);
					cell.setCellValue(i);
					cell = row.createCell((short) 1);
					cell.setCellValue(cz.getRygs());
					cell = row.createCell((short) 2);
					cell.setCellValue(cz.getSsjd());
					cell = row.createCell((short) 3);
					cell.setCellValue(cz.getBh());
					cell = row.createCell((short) 4);
					cell.setCellValue(cz.getXm());
					cell = row.createCell((short) 5);
					cell.setCellValue(cz.getSbs());
					cell = row.createCell((short) 6);
					cell.setCellValue(cz.getSbbcs());
					cell = row.createCell((short) 7);
					cell.setCellValue(cz.getQbs());
					cell = row.createCell((short) 8);
					cell.setCellValue(cz.getSbs());
					cell = row.createCell((short) 9);
					cell.setCellValue(cz.getKhyh());
					cell = row.createCell((short) 10);
					cell.setCellValue(cz.getKh());
					
	
				}
				i++;
			}

			java.io.OutputStream out = response.getOutputStream();
			wb.write(out);
			out.close();
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
           

锘匡豢

继续阅读