/**
* 文件導出
*
* @param request
* @param response
* @throws IOException
*/
public void exportData2(HttpServletRequest req,HttpServletResponse res) throws IOException{
String startTime = req.getParameter("startTime");
String endTime = req.getParameter("endTime");
String yjjb = req.getParameter("yjjb");
String cdbh = req.getParameter("cdbh");
List<DynaBean> dataDybList = dao.queryDataListAll(startTime, endTime, cdbh, yjjb);
JSONArray dataList = JSONArray.fromObject(dataDybList);
String sysFolder = "";
List<SystemCode> codeList = SystemCodesCache.getInstance().getSystemCodeList("XNML");
if (!BeanUtils.emptyCollection(codeList)) {
for (SystemCode code : codeList) {
String bm = code.getCodeId();
if(bm.equals("ROOT")){
sysFolder = code.getValue();
break;
}
}
}
String saveFilePath = sysFolder +"/SandWeather";
String saveName = "XJSandWeather"+DateUtils.format(new Date(), "yyyyMMddHH")+".xls";
List<String> headerEn = Arrays.asList("CSBH","CSMC","STARTTIME","ENDTIME","SJLX","MINAQI","MAXAQI","CXSJ","YJXQ","YBCSRQ");//字段
List<String> headerZh = Arrays.asList("城市編號","城市名稱","開始時間","結束時間","預報模式","最小值","最大值","持續時間","預警等級","預警批次");//字段名稱
File fPath = new File(saveFilePath);
if(!fPath.exists()){
fPath.mkdirs();
}
String absPath = saveFilePath+File.separator+saveName;
if(JXLExcelUtil.WriteDataToExcel(absPath, headerZh, headerEn, dataList)){
try{
String fileName = "文件名.xls"; //輸出頁面文件名稱
// 設置輸出的格式
res.reset();
res.setContentType("bin");
res.addHeader("Content-Disposition", "attachment; filename=\"" + new String((fileName).getBytes(),"ISO-8859-1") + "\"");
// 循環取出流中的數據
InputStream inStream = new FileInputStream(absPath);
byte[] b = new byte[100];
int len;
try {
while ((len = inStream.read(b)) > 0)
res.getOutputStream().write(b, 0, len);
inStream.close();
}catch (IOException e2) {
logger.error("下載文件失敗!" + e2.getMessage());
e2.printStackTrace();
}
}catch(Exception e){
logger.error("下載文件失敗!" + e.getMessage());
e.printStackTrace();
}
}
}
以流的形式傳到前臺 ;
接收的參數,和查詢的數據,文件名 等自行修改