【问题标题】:create csv file java创建csv文件java
【发布时间】:2016-04-27 05:34:40
【问题描述】:

我正在尝试将打印方法更改为 csv。

    private static void printGaData(GaData results) { 
        System.out.println( 
            "printing results for profile: " + results.getProfileInfo().getProfileName()); 

        if (results.getRows() == null || results.getRows().isEmpty()) { 
          System.out.println("No results Found."); 
        } else { 

          // Print column headers. 
          for (ColumnHeaders header : results.getColumnHeaders()) { 
            System.out.printf("%30s", header.getName()); 
          } 
          System.out.println(); 

          // Print actual data. 
          for (List<String> row : results.getRows()) { 
            for (String column : row) { 
              System.out.printf("%30s", column); 
            } 
            System.out.println(); 
          } 

          System.out.println(); 
        } 
      }

上面的这个方法打印出三列效果很好。 所以我尝试使用bufferedwriter将这三列写入csv,方法是将代码修改为:

    private static void ExportGaData(GaData results,PrintWriter pw) {


            System.out.println("printing results for profile: " + results.getProfileInfo().getProfileName());

            if (results.getRows() == null || results.getRows().isEmpty()) {
              System.out.println("No results Found.");

              pw.close();

            } else {

              // Print column headers.
              for (ColumnHeaders header : results.getColumnHeaders()) {
                System.out.printf(header.getName() + " ");
              }
              System.out.println();

            for (List<String> row : results.getRows()) {
                for (String column : row) {
                  pw.printf("%30s", column,", ");
                    //pw.printf(column + ", ");
                }
                pw.println();

              }

             pw.println();
            }

    }

这吐出 1 列而不是 3 列。日期如下所示:

columnA's data    columnb's data    columnC's data

所有在 A 列中都有很多空格。我该如何解决这个问题?

【问题讨论】:

    标签: java google-analytics export-to-csv


    【解决方案1】:

    我想你想要

    for (String column : row) {
           pw.printf(column + ", "); // not row
    }
    

    【讨论】:

    • 是的,我刚刚意识到,但是在我将其更改为列后,csv 为空,我更改了代码,然后我在一列(A 列)中得到了三列数据,其中包含空格。如何将其解析为三列?T.T...
    • pw.printf(column,", ") 没有打印出任何东西,我使用 pw.printf("%30s", column,", "),为所有三列打印一列数据
    • 您需要关闭打印机
    • 我把 pw.close() 放在 System.out.println("No results Found.");它不能解决 1 列问题。
    • 所以你的问题似乎是传递给 printGaData 的 GaData 结果包含数据,但 ExportGaData 中没有数据 - 告诉我们你是如何调用它的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多