2017-08-24 11 views
0

xlsxをCSVに変換しようとすると、1つの列に複数の引用符とカンマがあり、CSVに変換すると1つのセルではなく別のセルに分割されます。POI xlsxをCSVコンマと二重引用符に変換するJava

例:以下 シナリオ、

Actual Data

Converted

あるタイトルは、あなたがこれらの特別な兆候をエスケープする必要があるコード

if(cell.getStringCellValue().contains(",")){ 
       if (cell.getStringCellValue().contains("\"")){ 
           String t= "\""+cell.getStringCellValue()+"\""; 
           data.append(t+","); 
           } 
           else{ 
           data.append("\""+cell.getStringCellValue()+"\""+","); 
           } 
          } 
+1

理由だけのものを使用しません多くの適切に書かれ、テストされたオープンソースのCSVライブラリは、あなた自身をひどく転がそうとするのではなく、エスケープする権利をしていますか? – Gagravarr

答えて

1

を取り付け、複数に動いています。列値の"は、二重引用符でそれをencolse二重引用符をエスケープし、エスケープする""を使用するには

one,"two,three" 

:あなたはCSVファイルの値onetwo,three 2などの列を持つようにしたい場合は、引用符の2番目の列を囲みます値の中の引用符。例えば、あなたがabc"defでフィールドを持っている場合、のようにエスケープする必要があります。だからあなたの場合のために、それは1つのライナーの代わりに、全体if文である可能性があり

"abc""def" 

data.append("\"").append(cell.getStringCellValue().replaceAll("\"", "\"\"")).append("\","); 
+0

ご返信ありがとうございます。私の場合は以下のようになります。 "BESPI:タスク" bespi_start bespi_mon.pl -m 600,609 "とユーザー" $ AGENT_USER "に対してスケジュールされたメトリック収集が失敗しました[Policy:BESPI_Collect_Router_5m]"、 "P3" –

+0

@ VICKY-TSC私の答えをあなたのために解決しました。 –

関連する問題