综合查询(五)查询结果页面
1)jsp页面代码
<%@ page contentType="text/html; charset=GBK"%>
<%@ page isELIgnored="false" %>
<%
String webPath = request.getContextPath();
%>
<html>
<head>
<link rel="stylesheet" href="main.css" type="text/css">
<script type="text/javascript" src="<%=webPath%>/application/dwy/js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="<%=webPath%>/application/dwy/js/import.js" charset="UTF-8"></script>
<script type="text/javascript">
var path="<%=webPath%>";
</script>
</head>
<body >
<c:if test="${resultText==null ||resultText==''}">
<p style="color: red">没有您要查询的结果</p>
</c:if>
${resultText}
<input id="importExcel" type="button" value="导出查询结果" class="button" onclick="import2Excel()" style="width:90px;height:20px" />
</body></html>
import.js页面代码
/**
* 分页功能中给当前的表单添加要查找的是第几页
* @param {Object} value
*/
var setpagenow=function(value){
var $form=$("#searchForm");
//创建当前页的隐藏按钮,将当前查询的页码传递到后台
var $currentPage=$("<input/>");
$currentPage.attr("type","hidden");
$currentPage.attr("name","currentPage");
$currentPage.attr("value",value);
$form.append($currentPage);
$form.submit();
}
var import2Excel=function(){
var $form=$("#searchForm");
$form.attr("action",path+"/zhSearchAction.do?method=import2Excel");
$form.submit();
}
导出成excel的工具类
/**
* 导出excel的工具类
*/
public class Export2ExcelUtils {
/**
* 导出Excel的方法
* @param title excel中的sheet名称
* @param headers 表头
* @param columns 表头对应的数据库中的列名
* @param result 结果集
* @param out 输出流
* @param pattern 时间格式
* @throws Exception
*/
public static void exportExcel(String title, String[] headers, String[] columns, List<Map<String, Object>> result, OutputStream out, String pattern) throws Exception{
// 声明一个工作薄
HSSFWorkbook workbook = new HSSFWorkbook();
// 生成一个表格
HSSFSheet sheet = workbook.createSheet(title);
// 设置表格默认列宽度为20个字节
sheet.setDefaultColumnWidth((short) 20);
// 生成一个样式
HSSFCellStyle style = workbook.createCellStyle();
// 设置这些样式
style.setFillForegroundColor(HSSFColor.GOLD.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 生成一个字体
HSSFFont font = workbook.createFont();
font.setColor(HSSFColor.VIOLET.index);
//font.setFontHeightInPoints((short) 12);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 把字体应用到当前的样式
style.setFont(font);
// 指定当单元格内容显示不下时自动换行
style.setWrapText(true);
// 产生表格标题行
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < headers.length; i++) {
HSSFCell cell = row.createCell((short) i);
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
// 遍历集合数据,产生数据行
if(result != null){
int index = 1;
//处理int类型和double类型的数据
String str="zdmj,jzmj,lhmj,lhl,wyfwfqkpzbzgc,wyfwfqkpzbzdcydt,wyfwfqkpzbzdcwdt,wyfwfqkpzbzqt,fwyfwfqkpzbzgc,fwyfwfqkpzbzdcydt,fwyfwfqkpzbzdcwdt,fwyfwfqkpzbzqt,cwzk_ze,cwzk_sjl,cwzk_tcf,cwzk_ggf,cwzk_qt,cwzk_yycb,cwzk_yylr,zczj,jzmj_gc,jzmj_dc";
String strInt="zts,yrzhs,fwslgc,fwsldc,ryzs,xmfzrzs,glrzs,jsryzs,barpzs,bawpzs,bjrpzs,bjwpzs,kfzs,qtzs";
String [] arrs=str.split(",");
String [] arrInt=strInt.split(",");
List<String> list=Arrays.asList(arrs);
List<String> intList=Arrays.asList(arrInt);
for(Map<String, Object> m:result){
row = sheet.createRow(index);
int cellIndex = 0;
for(String s:columns){ //遍历每行
HSSFCell cell = row.createCell((short) cellIndex);
//cell.setCellStyle(style2);
/**
* 设置单元格的数据格式,只有指定下面的单元格才设置
*/
s=s.toUpperCase();
if(list.contains(s.toLowerCase())){//如果是需要转成number的的列,在这里设置
Double num=0d;
String ss=m.get(s) == null ? "" : m.get(s).toString();
if(StringUtils.isNotBlank(ss)){
num=Double.parseDouble((String) m.get(s));
}
cell.setCellValue(num); // 设置单元格的值
// 设置单元格的显示格式,具体支持哪些格式详见BuiltinFormats类
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));
cell.setCellStyle(cellStyle);
}else if(intList.contains(s.toLowerCase())){
Integer num=0;
String ss=m.get(s) == null ? "" : m.get(s).toString();
if(StringUtils.isNotBlank(ss)){
num=Integer.parseInt((String) m.get(s));
}
cell.setCellValue(num); // 设置单元格的值
// 设置单元格的显示格式,具体支持哪些格式详见BuiltinFormats类
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0"));
cell.setCellStyle(cellStyle);
}else{
HSSFRichTextString richString = new HSSFRichTextString(m.get(s) == null ? "" : m.get(s).toString());
cell.setCellValue(richString);
}
cellIndex++;
}
index++;
}
}
workbook.write(out);
}
}