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();

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

  • 相关阅读:
    [LeetCode 题解]: Remove Duplicates from Sorted List
    [LeetCode 题解]: Merge k Sorted Lists
    [LeetCode 题解]: Insertion Sort List
    [LeetCode 题解]:Candy
    求任意多边形面积 python实现
    C++飞机大战
    version robot
    python一段代码 感受一下
    微机原理上机第四次实验内容
    初步的百度爬虫
  • 原文地址:https://www.cnblogs.com/jwlfpzj/p/6889836.html
Copyright © 2011-2022 走看看