Кто-нибудь знает, какой быстрый, чистый способ конвертировать CSV-файлы в xls или xlsx-файлы в java?Преобразование .csv в .xls в Java
У меня есть что-то управлять файлами csv уже на месте, и мне нужна дополнительная совместимость для других программ.
Образец кода в дополнение к названиям пакетов всегда хорошо оценивается.
Большое спасибо,
Жюстьян
Вот мой код до сих пор. Мне нужно удалить возвращаемые строки ("\ n") из строк. Некоторые из моих ячеек содержат несколько строк информации (список), поэтому я могу использовать «\ n» в csv, чтобы указать несколько строк в ячейке , но xls рассматривает их так, как если бы я помещал их в новую строку .
Код изменен из Интернета и немного запутанный на данный момент. Вы можете заметить некоторые устаревшие методы, как это было написано в 2004 году, и не забудьте проигнорировать ужасные заявления о возврате. Я просто использую S.o.p на данный момент для тестирования, и я уберу это позже.
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 "";
}
}
Update в моем ответе. Извините, вам пришлось немного подождать. –