您的位置:首页 > 其它

数据导出成excel格式

2016-11-02 16:05 375 查看
页面代码

//根据选择的查询条件导出相应数据
function exportData(){
var isDel = 0;
if ($('#yesOrNot').combobox('getText') == '已删除') {
isDel = 1;
}else if ($('#yesOrNot').combobox('getText') == '未删除') {
isDel = 0;
}else if($('#yesOrNot').combobox('getText') == 'All'){
isDel = 10;
}

var startTime = $("#startDate").val();
var endTime = $("#endDate").val();
var id = $("input[name='Id']").val();
var activity_type_id = $("input[name='activeTypeId']").val();

var elemIF = document.createElement("iframe");
elemIF.src = "${pageContext.request.contextPath}/visit/exportVisitPlan?is_deleted="+isDel+"&startTime="+startTime+
"&endTime="+endTime+"&id="+id+"&activity_type_id="+activity_type_id;
elemIF.style.display = "none";
document.body.appendChild(elemIF)
}后台代码
要导入这个包import   org.apache.poi.xssf.streaming.SXSSFWorkbook;

@RequestMapping(value = "/exportVisitPlan", method = RequestMethod.GET)
@ResponseBody
public void exportVisitPlan(PageBean visitPlan, HttpServletRequest request, HttpServletResponse response) {
long count = visitPlanService.getCount();
visitPlan.setPage(1);
visitPlan.setRows((int) count);
Map<String, Object> visitPlanList = visitPlanService.getVisitPlanList(visitPlan);
@SuppressWarnings("unchecked")
List<Plan> vpList = (List<Plan>) visitPlanList.get("rows");
Date date = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String sdate = sf.format(date);
String fileName = "visitPlan_" + sdate + ".xlsx";
// 设置导出Excel报表的导出形式
response.setContentType("application/vnd.ms-excel,charset=utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
// 获取输出流
OutputStream os = null;
try {
os = response.getOutputStream();
} catch (IOException e1) {
logger.error("IOException: " + e1);
throw new RestException(e1.getMessage());
}
<span style="white-space:pre"> </span>//#前数据库中表字段,后是导出excel列名
String[] headers = new String[] { "id#计划id", "activity_plan_date#计划活动日期 ",......};

SXSSFWorkbook workbook = new SXSSFWorkbook();
try {
Sheet sheet = workbook.createSheet();

Row rowHead = sheet.createRow(0);
Cell cellHead = null;
if (headers != null && headers.length > 0) {
for (int i = 0; i < headers.length; i++) {
cellHead = rowHead.createCell(i);
cellHead.setCellValue(headers[i].split("#")[1]);
}
}
Row row = null;
Cell cellInfo = null;
Method method = null;
Object objValue = null;
for (int j = 0; j < vpList.size(); j++) {
row = sheet.createRow(j + 1);
Object obj = vpList.get(j);
for (int m = 0; m < headers.length; m++) {
cellInfo = row.createCell(m);
String[] str = headers[m].split("#");
String first = str[0].substring(0, 1);
method = obj.getClass().getMethod("get" + first.toUpperCase() + str[0].substring(1));
objValue = method.invoke(obj);
if (method.getReturnType().getName() == "java.util.Date") {
if (objValue != null) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format((Date) objValue);
String strValue = objValue == null ? "" : format;
cellInfo.setCellType(Cell.CELL_TYPE_STRING);
cellInfo.setCellValue(strValue);
}
} else {
cellInfo.setCellValue(objValue == null ? ""
: objValue.toString().equals("null") ? ""
: objValue.toString().replaceAll("(\r\n|\r|\n|\n\r)", ""));
}
}
}
workbook.write(os);
os.close();
workbook.close();
} catch (FileNotFoundException e) {
logger.error("FileNotFoundException: " + e);
throw new RestException(e.getMessage());
} catch (IOException e) {
logger.error("IOException: " + e);
throw new RestException(e.getMessage());
} catch (SecurityException e) {
logger.error("SecurityException: " + e);
throw new RestException(e.getMessage());
} catch (IllegalArgumentException e) {
logger.error("IllegalArgumentException: " + e);
throw new RestException(e.getMessage());
} catch (NoSuchMethodException e) {
logger.error("NoSuchMethodException: " + e);
throw new RestException(e.getMessage());
} catch (IllegalAccessException e) {
logger.error("IllegalAccessException: " + e);
throw new RestException(e.getMessage());
} catch (InvocationTargetException e) {
logger.error("InvocationTargetException: " + e);
throw new RestException(e.getMessage());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息