¿Alguien aquí conoce alguna forma rápida y limpia de convertir archivos csv a archivos xls o xlsx en java?Convierta .csv a .xls en Java
Tengo algo para administrar los archivos csv que ya están en su lugar y necesito la compatibilidad adicional para otros programas.
El código de muestra además de los nombres de los paquetes siempre es muy apreciado.
Muchas gracias,
Justian
Aquí está mi código hasta ahora. Necesito eliminar los retornos ("\ n") de las líneas. Algunas de mis celdas contienen varias líneas de información (una lista), así que puedo usar "\ n" en csv para indicar varias líneas dentro de una celda , pero xls las trata como si quisiera ponerlas en una nueva línea .
El código se ha modificado desde Internet y está un poco desordenado en este momento. Es posible que observe algunos métodos en desuso, como fue escrito en 2004, y asegúrese de ignorar las terribles declaraciones de devolución. Solo estoy usando S.o.p en este momento para probar y lo limpiaré más tarde.
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 "";
}
}
actualización en mi respuesta. Lamento que tengas que esperar un poco. –