工具類
package com.banxue.kmsservice.helper; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import rx.internal.util.LinkedArrayList; import javax.servlet.http.HttpServletResponse; import java.util.Iterator; import java.util.LinkedList; import java.util.Map; public class ExcelExportHelper { public static void writeExcelHeader(HttpServletResponse response,String fileName) throws Exception{ if(!(fileName.endsWith(".xls") || fileName.endsWith("xlsx"))){ fileName+=".xlsx"; } response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes("gb2312"),"ISO8859-1")); //設置文件頭編碼格式 response.setContentType("APPLICATION/OCTET-STREAM;charset=UTF-8");//設置類型 response.setHeader("Cache-Control","no-cache");//設置頭 response.setDateHeader("Expires", 0);//設置日期頭 } public static void writeExcelData(HttpServletResponse response, JSONArray dataAraay, Map<String,String> map, String sheetName) throws Exception{ XSSFWorkbook book=new XSSFWorkbook(); XSSFSheet sheet=book.createSheet(sheetName); //創建表頭 Iterator<String> iterator = map.keySet().iterator(); Row row = sheet.createRow(0); int i = 0; LinkedList list = new LinkedList(); while (iterator.hasNext()){ String key = iterator.next(); Cell cell = row.createCell(i); cell.setCellValue(map.get(key)); list.add(key); i++; } //寫入數據 for(int j = 0; j < dataAraay.size(); j++){ JSONObject jsonObject = JSONObject.fromObject(dataAraay.get(j)); Row dataRow = sheet.createRow(j+1); for(int k = 0; k < list.size(); k++){ dataRow.createCell(k).setCellValue(String.valueOf(jsonObject.get(list.get(k)))); } } book.write(response.getOutputStream()); response.getOutputStream().flush(); response.getOutputStream().close(); } }
引用:
//獲取活動下可以發貨的數據 List<Map> recordDaos = laXinActivityExchangeRecordMapperUser.selectWaitDeliverByActivityId(activityId); //生成excel ExcelExportHelper.writeExcelHeader(response,DateHelper.getDateTimeString(new Date(),"yyyy-MM-dd")); //設置字段對應的含義值 Map map = new HashMap(); map.put("id","id"); map.put("wx_name","用戶微信名"); map.put("receive_user","收貨人"); map.put("receive_phone","收貨電話"); map.put("receive_address","收貨地址"); map.put("receive_memo","備注"); map.put("quantity","申請數量"); map.put("id","id"); //寫入數據並下載excel ExcelExportHelper.writeExcelData(response,JSONArray.fromObject(recordDaos),map,DateHelper.getDateTimeString(new Date(),"yyyy-MM-dd"));