Java创建csv文件,其中列中的数据不是内联的

时间:2016-07-22 13:47:53

标签: java csv

我尝试生成CSV文件,数据用逗号“,”分隔,新行用“\ n”分隔。 新行正在运行,但不是逗号,我在第一列中有所有数据,而不是我想要的两列。

以下是代码:

BufferedWriter writer = new BufferedWriter(new FileWriter("test.csv"));
writer.write("Username");
writer.write(",");
writer.write("Count");
writer.write("\n");
writer.write("Bob");
writer.write(",");
writer.write("20");
writer.write("\n");
writer.write("Mike");
writer.write(",");
writer.write("32");
writer.write("\n");
writer.close();

结果如下:

Username,Count
Bob,20
Mike,32

预期的结果是那样的

Username | Count
  ------ | ------
    Bob  |  20
  ------ | ------
    Mike |  32

3 个答案:

答案 0 :(得分:1)

在此处的项目中,我们使用;分隔符创建CSV以创建我们的文件,而不是,

使用Excel正确解析,无需对文件或Excel进行任何更改。

编辑:正如Pshemo所说,您可以在文件的第一行指定分隔符。像这样:

sep=,
a,b
c,d

这将在Excel(已测试)中正确格式化。我不使用此解决方案,因为我使用生成的文件进行存档和数据传输,因此我不想检查第一行是数据还是仅属性。但这是一个更通用的解决方案。

答案 1 :(得分:0)

如果您希望文件如下所示:

job {
  scm {
    git {
      remote {
        url(GIT_URL)
      }
      branch('master')

      extensions {
        localBranch 'master'
      }
    }
  }
}

然后你需要修改你的代码来编写它。但是,你得到了完全预期的结果

Username | Count
  ------ | ------
    Bob  |  20
  ------ | ------
    Mike |  32

使用CSV(逗号分隔值),正如它所说的那样,是用逗号分隔的数据,每行是一个寄存器。我不知道你发布这个问题的预期。

答案 2 :(得分:0)

我相信文件正在正确创建,这就是csv文件的工作方式。例如,在excel中打开它们时,转到Data标题,然后单击Text to Columns,然后在弹出的窗口中选择分隔,然后点击下一步,选择逗号,然后点击完成!