Opencsv将所有数据存储在单列

时间:2017-10-10 10:46:18

标签: java csv opencsv

我使用opencsv(2.3版本)CSVWriter在java中创建csv文件。

然而,在打开我创建的csv文件时,它以这样的方式打开,所有数据都存储在单列中。

CSVWriter我用来创建CSV文件:

   File file = new File(fileName);
   CSVWriter writer = new CSVWriter(new FileWriter(fileName, true), ';');
   String[] col= new String[3];

   for(Customer c : CustomerList) {
         col[0] = c.getCustomerName();
         col[1] = c.getCustomerId();
         col[2] = c.getCustomerBirthDate();
         writer.writeNext(col);
   }

   writer.close();

CSV文件 - 单列中的所有数据:

“米奇”; “1”; “19901220”

“宽限期”, “2”, “19901231”

all data in Single column

预期数据在单元格中过度对齐:

data aligned in cells peroperly

问题:

  1. 是否可以在写入时使用CSVWriter将数据放入单独的列中?
  2. 如果opencsv不支持我应该使用其他csv吗?

2 个答案:

答案 0 :(得分:1)

fn有问题的答案。您需要使用逗号作为分隔符(这是默认设置),以便外部阅读器自动选择它。逗号是openCSV的默认值。

或者你可以进入excel并告诉它使用半冒号作为分隔符。使用“文本到列”选项。

答案 1 :(得分:0)

尝试使用univocity-parsers以excel期望的格式编写此代码:

    new CsvRoutines(Csv.writeExcel())
       .writeAll(customerList, Customer.class, new File(fileName), Charset.forName("windows-1252"));

只需使用Customer注释@Parsed课程的字段,就可以了。

免责声明:我是这个图书馆的作者。它是开源和免费的(apache 2.0许可证)