• Java导出CSV


    Java导出CSV

    • 使用jar包为csv-jar

    • maven坐标,我用的是1.3,现在已经有1.8了。

      <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv -->
      <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-csv</artifactId>
          <version>1.3</version>
      </dependency>
      
      
    • Java代码

    /**
         * 获取系统类型
         * @return
         */
        public static String getOsName() {
            return System.getProperty("os.name");
        }
    
        /**
         * 返回文件名
         * @param excelUnit
         * @param name
         * @return
         */
        public static String exportCsvToFile(String name) {
            String osName = getOsName();
            String pathPrefix = "";
            if (osName.startsWith("Windows")) {
                File file=new File("C:\logFile");
                if(!file.exists()){
                    file.mkdir();
                }
                pathPrefix = "C:\logFile\";
            } else {
                File file=new File("/usr/apache-tomcat-6.0.44/workdata/logFile");
                if(!file.exists()){
                    file.mkdir();
                }
                pathPrefix = "/usr/apache-tomcat-6.0.44/workdata/logFile/";
            }
    
            String fileChName = pathPrefix + name + ".csv";
            BufferedWriter bufferedWriter = null;
            FileOutputStream out = null;
            try {
                out = new FileOutputStream(fileChName);
                // 避免中文乱码
                byte[] bytes = {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};
                out.write(bytes);
                bufferedWriter = new BufferedWriter(new OutputStreamWriter(out, "UTF-8"));
                // 设置第一行标题
                String[] titleNames = new String[]{"时间","用户","来源","操作类型", "内容","操作IP"};
                CSVFormat csvFormat = CSVFormat.EXCEL.withHeader(titleNames);
                // 设置内容输出目标
                CSVPrinter csvPrinter = new CSVPrinter(bufferedWriter, csvFormat);
                // 输出数据
                String[] contents = new String[]{"时间xx","用户xx","来源xx","操作类型xx", "内容xx","操作IPxx"};
                List<String[]> cellValueList = new ArrayList<>();
                cellValueList.add(contents);
                for (int i = 0; i < cellValueList.size(); i++) {
                    csvPrinter.printRecord(cellValueList.get(i));
                }
                return fileChName;
    
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            } finally {
                try {
                    bufferedWriter.flush();
                } catch (Exception e){
                    e.printStackTrace();
                }
                try {
                    bufferedWriter.close();
                } catch (Exception e){
                    e.printStackTrace();
                }
                try {
                    out.close();
                } catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
    

    • 稍微改动以上代码,标题和内容传入这个方法,就可以使用了。
  • 相关阅读:
    巧妙设备MTU的大小,轻松提网速
    BackTrack5 (BT5)无线password破解教程之WPA/WPA2-PSK型无线password破解
    给程序猿简历的一些建议
    servlet的抽取
    BeanUtils工具类
    保存密码操作
    The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
    java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
    Wed Nov 01 13:03:16 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended.
    修改web项目的启动页
  • 原文地址:https://www.cnblogs.com/darkclouds/p/14031166.html
Copyright © 2020-2023  润新知