技術 struts2+easyui(參考,主要解決編碼和excel導出問題)
表單的設置
<form id="form1" name="form1" method="post" accept-charset="GBK" onsubmit="if(!!window.ActiveXObject){document.charset='GBK';}" ></form>
js代碼
//彈框式導出到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();
}
後臺代碼
// 彈出式導出Excel文件
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的數據list
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();
}
}