Importer des données CSV avec Apache POI

Comment puis-je importer efficacement des données CSV avec Apache POI? Si j'ai un très grand fichier CSV que je voudrais stocker dans mon tableur Excel, alors je n'imagine pas que d'aller cellule par cellule est la meilleure façon d'importer...?

13
demandé sur isherwood 2009-04-06 18:59:51

4 réponses

Apache POI n'a jamais été conçu pour faire appel aux fichiers CSV. Alors qu'un fichier CSV peut être ouvert dans Excel, Excel a son propre lecteur qui fait une importation automatique. Cela suppose que votre CSV a le .csv au lieu de la.suffixe txt. Si il a de la .txt suffixe, l'enregistrer en tant que .csv. Tout ce que vous avez à faire est de faire un clic droit sur le CSV et D'Ouvrir avec Excel. Presto, le CSV a été importé dans Excel.

je suppose que vous voulez analyser les données d'un fichier txt dans le fichier Excel. Si c'est le cas, je vous suggère d'utiliser une Bibliothèque comme SuperCSV au lieu d'essayer D'amener POI à faire quelque chose qu'il n'a jamais été conçu pour faire. Il chargera tout dans un haricot, une carte ou une liste de votre choix comme il analyse les données et puis vous pouvez soit l'écrire dans le format que vous avez choisi dans A.le fichier csv ou utilisez un pont JDBC-ODBC ou Apache POI pour l'écrire directement dans et .XLS. Ajoute une étape supplémentaire, mais ensuite vous avez le contrôle complet des données.

SuperCSV porte la licence Apache2, donc il devrait être bon pour tout ce que vous choisissez de faire avec elle.

ou utilisez simplement le .split() fonction en java et analyser le CSV dans les tableaux de charge et de tableaux .xls avec POI.

16
répondu WolfmanDragon 2009-07-06 17:00:22

la façon la plus efficace d'ajouter de l'information à votre tableur Excel est d'utiliser un tableau. Ce code:

Sheets(1).Range("A1").Resize(uBound(myArray),uBound(myArray,2)).Value = myArray

popule la gamme de la feuille à partir d'un tableau bidimensionnel, où la limite inférieure est 1.

dans votre situation, je voudrais lire le fichier CSV dans un tableau d'abord, et puis utiliser la syntaxe comme ci-dessus pour le placer sur la feuille de travail.

Stan Scott

1
répondu Stan Scott 2009-12-02 19:47:29

Utilisez apache commons-csv pour les fichiers CSV. Mettez à jour votre pom.xml avec la dépendance suivante

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.5</version>
</dependency>

Vous pouvez trouver utile de bonnes exaples de - cliquez ici

0
répondu Arundev 2018-03-15 11:05:07

nous écrivons le code java basé sur l'extension du fichier. Ici nous avons affaire .csv extension et voici le code poi Apache pour le gérer. Nous divisons le contenu et le stockons en tableau et l'utilisons ensuite sur la ligne.

CSVParser parser = new CSVParser(new FileReader("D:/your_file.csv"), CSVFormat.DEFAULT);
List<CSVRecord> list = parser.getRecords();
for (CSVRecord record : list) {
    String[] arr = new String[record.size()];
    int i = 0;
    for (String str : rec) {
        arr[i++] = str;
    }
}  
parser.close();    

Dépendance Liée À Maven:

<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.5</version>
</dependency>
<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>4.2</version>
</dependency>
0
répondu mannedear 2018-07-27 06:07:57