2009-12-16 7 views
1

J'ai un fichier dans ce format.Comment importer des fichiers csv multilignes?

"abc";"def";"ghi 
asdasd 
asdasd 
asd 
asd 
aas 
d 
" 

Maintenant je veux l'importer avec Java. Est-ce que quelqu'un connaît une bibliothèque qui supporte ce genre d'importation?

+0

Que voulez-vous dire par "importation"? –

+0

Parse, rangée par rangée, je suppose ... – Joel

Répondre

1

Peut-être JavaCSV.

+0

C'est la meilleure implémentation pour Java, fournissant des lecteurs et des écrivains de csv rapides et flexibles. – Joel

1

Commons CSV's format Excel avec succès parse CSVs multilignes:

Reader in = new FileReader("path/to/file.csv"); 
Iterable<CSVRecord> records = CSVFormat.EXCEL.parse(in); 
for (CSVRecord record : records) { 
    String lastName = record.get("Last Name"); 
    String firstName = record.get("First Name"); 
} 
0

Si vous voulez faire est de simplement importer ce genre de fichier, je pense que l'un des 3 ou 4 principales bibliothèques Java CSV devrait faire le travail.

Mais vous pouvez take a look at this post si vous voulez avoir un aperçu des nombreuses caractéristiques et différences entre SuperCSV, OpenCSV et JavaCSV. J'ai déjà utilisé JavaCSV pour écrire le type de fichier que vous voulez lire et c'était parfait.

Note: pas sûr, mais j'ai entendu que seul SuperCSV est toujours maintenu

0

Il y a un certain nombre d'utilitaires CSV là-bas, et le meilleur que je suis venu à travers est OsterMiller. L'API est bonne, elle peut gérer de très grands ensembles de données avec élégance, tout en étant consciente du CSV impair que MS Excel génère pour certains types de données.

0

Il y a un problème supplémentaire que je n'ai pas réalisé plus tôt. Je pense que c'est pourquoi les bibliothèques ne fonctionnent pas.

il y a des guillemets doubles à l'intérieur du csv "champs", comme ça:

un recordset:

"abc";"def";"ghi 
asdasd 
asdasd 
asdasd "asd" 
asd 
aas 
d 
" 
+0

Le problème n'est pas résolu. Les guillemets sont toujours le problème :( –

+0

ah, un recordset est une ligne dans csv et "doit être doublé" ".Ce n'est pas csv! –