2017-10-20 54 views
0

J'utilise Java et opencsv (2.3) pour créer des fichiers csv.contenu opencsv - valeurs après la virgule

Il est créé correctement. Mais quand j'ouvre le fichier je vois toutes les données apparaissent dans une seule colonne.

Afin d'aligner les valeurs dans des colonnes séparées

1.I sélectionnez « Texte à colonnes » dans l'onglet données Excel

Je sélectionnez Délimiteur 2. Et comme « ; »

  1. Je vois toutes les valeurs sont découpés en colonnes separte correctement, mais les valeurs après la virgule sont se disparaissaient

CSVWriter J'utilise pour créer des fichiers CSV:

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

    for(Customer c : CustomerList) { 
     col[0] = c.getCustomerName(); 
     col[1] = c.getCustomerId(); 
     col[2] = c.getCustomerBirthDate(); 
     col[3] = c.getRegFee(); /** 145,65**/ 
     col[4] = c.getRegPlace(); 
     writer.writeNext(col); 
    } 

    writer.close(); 

fichier CSV - contenu réel:

"Micky";"1";"19901220";"455,56";"Place1" 

"Grace";"2";"199";"465,87";"Place2" 

fichier CSV - tout en ouvrant en utilisant Excel:

"Micky";"1";"19901220";"455" // , 56 and Place1 are vanished 

    "Grace";"2";"199";"465" // , 87 and Place2 are vanished 

Répondre

0

Je pense que le problème est de faire de la façon dont vous l'importer dans Excel. En utilisant votre exemple ci-dessus, j'ai créé un fichier CSV et l'ai ouvert dans le Bloc-notes pour vérifier le contenu.

enter image description here

Si vous double-cliquez sur un fichier CSV (et Excel est associée à ce type de fichier), il est ouvert dans Excel et il semble que Excel tente d'utiliser la virgule comme séparateur par défaut. Il affiche les données sur 2 colonnes.

enter image description here

Si vous ouvrez Excel, puis importer le fichier CSV, vous pouvez dire que votre fichier Excel est délimité et que le point-virgule est le séparateur. Importation à l'aide du A partir du menu Texte de l'onglet Données:

enter image description here

Il sera alors afficher correctement:

enter image description here

+0

Non, je sélectionne point-virgule comme séparateur, peut-il être lié à format numérique, je veux dire séparateur de milliers et décimal ?? –

+0

@AlagammalP Je ne pense pas. J'ai configuré Excel pour utiliser un arrêt complet comme séparateur des milliers et une virgule comme séparateur décimal. J'ai toujours eu le même résultat que dans la capture d'écran ci-dessus. –