Convertir des .csv .xls en Java

Ce que quelqu'un ici sait de toute rapide, propre façon de convertir les fichiers csv en xls ou xlsx fichiers en java?

J'ai quelque chose à gérer les fichiers csv déjà en place et j'ai besoin de l'appoint de compatibilité pour d'autres programmes.

Exemple de code en plus de noms de paquets est toujours bien apprécié.

Merci beaucoup,

Justian

Voici mon code pour l'instant. J'ai besoin de supprimer les retours ("\n") des lignes. Certains de mes cellules contiennent plusieurs lignes d'informations (dans une liste), donc je peux l'utiliser "\n" dans le format csv pour indiquer plusieurs lignes à l'intérieur d'un cellule, mais xls traite ces que si je veux les mettre sur un nouveau ligne.

Le code est modifié à partir de l'internet et un peu salissant pour l'instant. Vous remarquerez peut-être quelques méthodes obsolètes, comme il a été écrit en 2004, et assurez-vous d'ignorer la terrible retour des déclarations. Je suis juste à l'aide de S. o.p à l'instant pour tester et je vais nettoyer plus tard.

package jab.jm.io;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class FileConverter {
public static String ConvertCSVToXLS(String file) throws IOException {
if (file.indexOf(".csv") < 0)
return "Error converting file: .csv file not given.";
String name = FileManager.getFileNameFromPath(file, false);
ArrayList<ArrayList<String>> arList = new ArrayList<ArrayList<String>>();
ArrayList<String> al = null;
String thisLine;
DataInputStream myInput = new DataInputStream(new FileInputStream(file));
while ((thisLine = myInput.readLine()) != null) {
al = new ArrayList<String>();
String strar[] = thisLine.split(",");
for (int j = 0; j < strar.length; j++) {
//My Attempt (BELOW)
String edit = strar[j].replace('\n', ' ');
al.add(edit);
}
arList.add(al);
System.out.println();
}
try {
HSSFWorkbook hwb = new HSSFWorkbook();
HSSFSheet sheet = hwb.createSheet("new sheet");
for (int k = 0; k < arList.size(); k++) {
ArrayList<String> ardata = (ArrayList<String>) arList.get(k);
HSSFRow row = sheet.createRow((short) 0 + k);
for (int p = 0; p < ardata.size(); p++) {
System.out.print(ardata.get(p));
HSSFCell cell = row.createCell((short) p);
cell.setCellValue(ardata.get(p).toString());
}
}
FileOutputStream fileOut = new FileOutputStream(
FileManager.getCleanPath() + "/converted files/" + name
+ ".xls");
hwb.write(fileOut);
fileOut.close();
System.out.println(name + ".xls has been generated");
} catch (Exception ex) {
}
return "";
}
}
Mise à jour de ma réponse. Désolé que vous deviez attendre un peu.

OriginalL'auteur Justian Meyer | 2010-07-06