请问一个写文件并下载的问题 请问一个写文件并下载的问题 :一个查询结果画面 有个下载按钮 点击后将页面中的数据以csv的形式保存下来 请问谁会阿? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个代码片段 你自己改改就可以了public ActionForward exportExcel(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws IOException, RowsExceededException, WriteException, ParseException{ int teamID = Integer.parseInt(request.getParameter("teamID")); int processID = Integer.parseInt(request.getParameter("processID")); int workID = Integer.parseInt(request.getParameter("workID")); String startDate = request.getParameter("startDate"); String endDate = request.getParameter("endDate"); String statistic = request.getParameter("statistic"); String pinNO = request.getParameter("pinNO"); List<TUserWork> userWorkList = userWorkService.getUserWorkListByConditions(teamID, startDate, endDate, processID, workID, Utils.dateToString(new Date()), "1900-01-01", pinNO); String teamName = ""; TUserInfo userInfo = (TUserInfo)request.getSession().getAttribute("userInfo"); if(null != userInfo) teamName = userInfo.getPinNO(); String curDateName=Utils.getExprotPeriod(startDate, endDate); OutputStream out = null; response.reset(); response.setContentType("application/x-msdownload"); if(Utils.isEmpty(statistic)) { response.setHeader("Content-Disposition", "attachment;filename=" + teamName+"_"+curDateName+".csv"); out = response.getOutputStream(); out.flush(); List<UserWorkStat> userWorkStatList = CommonService.getUserWorkStatList(userWorkList); String str = CommonService.getContent(userWorkStatList,curDateName); //String str = "2008/12/26 03:00:00"; ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes()); int len = 0; byte[] buffer = new byte[1024]; while ((len = bis.read(buffer, 0, 1024)) != -1 & bis != null) { out.write(buffer, 0, len); } out.flush(); out.close(); }else{ response.setHeader("Content-Disposition", "attachment;filename=" + teamName+"_"+curDateName+".xls"); out = response.getOutputStream(); out.flush(); int totalPerson = userWorkService.getTotalPerson(teamID, startDate, endDate, processID, workID, Utils.dateToString(new Date()), "1900-01-01", pinNO); List<UserWorkStatRep> userWorkStatRepList = CommonService.getUserWorkStatRepList(userWorkList, dataStatService, totalPerson); List<NormDataStat> normDataStatList = CommonService.getNormDataStatList(userWorkList, normDataService, dataStatService); List<ManageRecordStat> manageRecordStatList = CommonService.getManageRecordStatList(userWorkList); CommonService.writeFileToExcelRep(out, userWorkStatRepList, normDataStatList, manageRecordStatList); out.flush(); out.close(); } return null; } 上边是我以前用到的一个下载成csv格式文件的代码。你就取下载设置和写文件过程就可以了。 String str = "1,2,3,4,5,6"+"\r\n"+"11,22,33,44,55,66";//用逗号把字段连接起来,换行用"\r\n"response.setContentType("application/octet-stream"); response.setHeader("Content-disposition", "attachment; filename=test.csv"); response.setCharacterEncoding("gb2312"); PrintWriter out = response.getWriter(); out.write(str); out.flush(); out.close(); 关于网络验证的一个发问,求高手回答。 求一个马士兵html css javascript视频合集 jsp 页面警告'brower'未定义,求解 只刷新当前页面一次 在线等 一个列出了服务器上的jsp文件的代码的问题 问SmartUpload上传图片的问题(加急!!!) 如何控制动态添加的图片的显示大小 拿分问题,关于if语句 系统分析师进来,别人出去! 怎样在服务器端判断客户使用的浏览器是使用的简体中文的还是英文的还是日文的或者其他的? java中如何上传大的视频文件? 两张表
HttpServletRequest request,HttpServletResponse response) throws IOException, RowsExceededException, WriteException, ParseException{ int teamID = Integer.parseInt(request.getParameter("teamID"));
int processID = Integer.parseInt(request.getParameter("processID"));
int workID = Integer.parseInt(request.getParameter("workID"));
String startDate = request.getParameter("startDate");
String endDate = request.getParameter("endDate");
String statistic = request.getParameter("statistic");
String pinNO = request.getParameter("pinNO");
List<TUserWork> userWorkList = userWorkService.getUserWorkListByConditions(teamID, startDate, endDate, processID, workID, Utils.dateToString(new Date()), "1900-01-01", pinNO);
String teamName = "";
TUserInfo userInfo = (TUserInfo)request.getSession().getAttribute("userInfo");
if(null != userInfo) teamName = userInfo.getPinNO();
String curDateName=Utils.getExprotPeriod(startDate, endDate);
OutputStream out = null;
response.reset();
response.setContentType("application/x-msdownload");
if(Utils.isEmpty(statistic))
{
response.setHeader("Content-Disposition", "attachment;filename="
+ teamName+"_"+curDateName+".csv");
out = response.getOutputStream();
out.flush();
List<UserWorkStat> userWorkStatList = CommonService.getUserWorkStatList(userWorkList);
String str = CommonService.getContent(userWorkStatList,curDateName);
//String str = "2008/12/26 03:00:00";
ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes());
int len = 0;
byte[] buffer = new byte[1024];
while ((len = bis.read(buffer, 0, 1024)) != -1 & bis != null)
{
out.write(buffer, 0, len);
}
out.flush();
out.close();
}else{
response.setHeader("Content-Disposition", "attachment;filename="
+ teamName+"_"+curDateName+".xls");
out = response.getOutputStream();
out.flush();
int totalPerson = userWorkService.getTotalPerson(teamID, startDate, endDate, processID, workID, Utils.dateToString(new Date()), "1900-01-01", pinNO);
List<UserWorkStatRep> userWorkStatRepList = CommonService.getUserWorkStatRepList(userWorkList, dataStatService, totalPerson);
List<NormDataStat> normDataStatList = CommonService.getNormDataStatList(userWorkList, normDataService, dataStatService);
List<ManageRecordStat> manageRecordStatList = CommonService.getManageRecordStatList(userWorkList);
CommonService.writeFileToExcelRep(out, userWorkStatRepList, normDataStatList, manageRecordStatList);
out.flush();
out.close();
}
return null;
}
你就取下载设置和写文件过程就可以了。
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment; filename=test.csv");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
out.write(str);
out.flush();
out.close();