Comment puis-je importer efficacement des données CSV avec Apache POI? Si j'ai un très gros fichier CSV que je voudrais stocker dans ma feuille de calcul Excel, je n'imagine pas qu'aller cellule par cellule est le meilleur moyen d'importer ...?Importation de données CSV avec POI Apache
Répondre
Le moyen le plus efficace d'ajouter des informations à votre feuille de calcul Excel consiste à utiliser une matrice. Ce code:
Sheets(1).Range("A1").Resize(uBound(myArray),uBound(myArray,2)).Value = myArray
renseigne la gamme de feuille d'un tableau à deux dimensions, où la limite est inférieure 1.
Dans votre situation, je lirais le fichier CSV dans un tableau d'abord, et ensuite utiliser la syntaxe comme ci-dessus pour le placer sur la feuille de travail.
Stan Scott
Apache POI n'a jamais été conçu pour faire appel à des fichiers CSV. Alors qu'un fichier CSV peut être ouvert dans Excel, Excel a son propre lecteur qui effectue une importation automatique. Cela suppose que votre CSV a le .csv au lieu du suffixe .txt. S'il a le suffixe .txt, enregistrez-le en tant que .csv. Tout ce que vous avez à faire est de faire un clic droit sur le CSV et Open With Excel. Presto, le fichier CSV a été importé dans Excel.
Je suppose que vous voulez analyser les données d'un fichier txt dans le fichier Excel. Si tel est le cas, je vous suggère d'utiliser une bibliothèque liE SuperCSV au lieu d'essayer d'obtenir POI pour faire quelque chose qu'il n'a jamais été conçu pour faire. Il chargera tout dans un Bean, Map ou List de votre choix comme il analyse les données et ensuite vous pouvez soit le réécrire dans le format que vous avez choisi dans un fichier .csv ou utiliser un JDBC-ODBC Bridge ou Apache POI pour écrire directement dans et format .XLS. Ajoute une étape supplémentaire, mais vous avez le contrôle complet des données. SuperCSV est doté de la licence Apache2, donc ce devrait être bon pour tout ce que vous choisissez d'en faire. Ou simplement utiliser la fonction .split() dans java et analyser le CSV en tableaux et charger les tableaux en .xls avec POI.