• CSV文件导出2


    public void exportCSVFile(
    
    	HttpServletResponse response, ResultSet rs,String fileName,String headers) throws SQLException {
    
    		OutputStream o = null;
    		
    		try {
    //			String headers = "用户名, 操作时间, 操作模块, 操作内容";// 标题
    			headers += "
    ";
    			List<Log> logList = new ArrayList<Log>();
    
    			Log logs = null;
    			while (rs.next()) {
    				logs = new Log();
    				logs.setUser(rs.getString(1));
    				logs.setDatetime(rs.getString(2));
    				logs.setModule(rs.getString(3));
    				logs.setContent(rs.getString(4));
    				logList.add(logs);
    			}
    
    			if (logList.size() > 0) {
    
    				for (int i = 0; i < logList.size(); i++) {
    
    					Log logs1 = logList.get(i);
    
    					headers += logs1.getUser() + ",";
    					headers += logs1.getDatetime() + ",";
    					headers += logs1.getModule() + ",";
    					headers += logs1.getContent();
    
    					headers += "
    ";
    
    				}
    				Date d = new Date();
    				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    				String dateNowStr = sdf.format(d);
    //				String fileNames = "导出操作日志数据" + dateNowStr+".csv";
    				String fileNames = fileName + dateNowStr+".csv";
    				
    				System.out.println(fileNames);
    				response.setContentType("application/download;charset=GBK");
    
    				response.setContentType("Content-type:application/vnd.ms-excel;charset=GBK");
    				
    				response.setHeader("Content-Disposition", "attachment;filename="
    						+ new String(fileNames.getBytes("utf-8"), "iso8859-1"));// 设置头信息
    				o = response.getOutputStream();
    				o.write(headers.toString().getBytes("GBK"));
    
    			}
    
    		} catch (IOException e) {
    
    			e.printStackTrace();
    
    		} finally {
    
    			if (o != null) {
    
    				try {
    
    					o.close();
    
    				} catch (IOException e) {
    
    					// TODO Auto-generatedcatch block
    
    					e.printStackTrace();
    
    				}
    
    			}
    
    		}
    
    	}
    

      

    String headers = "用户名, 操作时间, 操作模块, 操作内容";// 标题
    String fileName = "导出操作日志数据";
    exportCSVFile(response, rs, fileName, headers);

    ----------------------------------------------

    前几天,做的导出csv文件,有个bug,如果服,务器是linux,部署到服务器上就不能导出,后来查出,是导出到了服务器,没有下载到浏览器,

    用这个方法,要注意,字节流和字符流的冲突问题;
    response.getOutputStream();

    PrintWriter out = response.getWriter();

    可以将提示写在前台;只用字节流

  • 相关阅读:
    Codeforces Round #613 选讲
    Codeforces Round #612 选讲
    Codeforces917E
    一道题20
    LOJ#2244. 「NOI2014」起床困难综合症
    求欧拉回路
    *LOJ#2134. 「NOI2015」小园丁与老司机
    vim操作命令
    常见问题解决
    CentOS7下如何修改mysql的数据目录
  • 原文地址:https://www.cnblogs.com/jwlfpzj/p/6889836.html
Copyright © 2020-2023  润新知