2016-04-04 14 views
0

Oracleが取得した一部のデータからCSVを取得しようとしています。私はちょうどcsvの列としてクエリの結果を使用して、csvを書く必要があります。これは私のコードです:Java csvパーサー/ライター

// get data 
    final List<myDto> dataCsv = myDao.getdata(); 

    StringWriter writer = new StringWriter(); 
    CSVWriter csvWriter = new CSVWriter(writer,';'); 

    List<String[]> result = toStringArray(dataCsv); 
    csvWriter.writeAll(result); 
    csvWriter.close(); 

    return Response.ok(result).header("Content-Disposition", "attachment; filename=" + fileName).build();` 

明らかにそれはtoStringArray()を見つけることができません。しかし私はそれを構築してもらえますか?それは本当に必要ですか?編集を編集するにはどのように編集する必要がありますか?

答えて

1

あなたはちょうどあなたが与えてくれたリンクからの例に従えば、あなたは彼らがやっていることがわかります...

基本的に
private static List<String[]> toStringArray(List<Employee> emps) { 
     List<String[]> records = new ArrayList<String[]>(); 
     //add header record 
     records.add(new String[]{"ID","Name","Role","Salary"}); 
     Iterator<Employee> it = emps.iterator(); 
     while(it.hasNext()){ 
      Employee emp = it.next(); 
      records.add(new String[]{emp.getId(),emp.getName(),emp.getRole(),emp.getSalary()}); 
     } 
     return records; 
    } 

、あなたは[文字列のリストを構築する必要があります] 。各String []は、CSVのデータの1行を表し、配列の各要素は値です。つまり、データモデルからListを作成し、それをCSVWriterのwriteAll()メソッドに渡す必要があります。

リストの最初のString []は、CSVの列ヘッダーです。後続のString配列はデータそのものです。