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

    • 稍微改动以上代码,标题和内容传入这个方法,就可以使用了。
  • 相关阅读:
    springboot项目前端页面中文搜索时,数据库查询为空(mysql)
    Eclipse修改项目包名
    eclipse中maven父子项目层级显示设置
    springboot整合pagehelper实现分页
    eclipse设置文档注释
    永久修改mysql时区
    前端页面展示时间与数据库时间相差8小时(mysql)
    前端页面展示时间与数据库时间相差5小时(mysql)
    AxureRP 9安装、激活、汉化
    PowerDesigner 16.5安装、激活
  • 原文地址:https://www.cnblogs.com/darkclouds/p/14031166.html
Copyright © 2020-2023  润新知