zoukankan      html  css  js  c++  java
  • 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();

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

  • 相关阅读:
    51 Nod 1068 Bash游戏v3
    51 Nod Bash 游戏v2
    51 Nod 1073 约瑟夫环
    UVA 12063 Zeros and ones 一道需要好好体会的好题
    51 Nod 1161 Partial sums
    2018中国大学生程序设计竞赛
    UVA 11971 Polygon
    UVA 10900 So do you want to be a 2^n-aire?
    UVA 11346 Possibility
    python with as 的用法
  • 原文地址:https://www.cnblogs.com/jwlfpzj/p/6889836.html
Copyright © 2011-2022 走看看