J'ai besoin de créer un fichier XLS sur la base d'un fichier CSV utilisant Java.Comment créer un fichier Excel basé sur un fichier CSV en utilisant Java?
S'il vous plaît suppest à moi quelle API est préférable de créer un fichier Excel.
Merci
J'ai besoin de créer un fichier XLS sur la base d'un fichier CSV utilisant Java.Comment créer un fichier Excel basé sur un fichier CSV en utilisant Java?
S'il vous plaît suppest à moi quelle API est préférable de créer un fichier Excel.
Merci
Je vous suggère d'utiliser le Apache POI framework (en particulier le HSSF/XSSF API) pour écrire le fichier XLS.
Pour lire un fichier CSV, je vous suggère d'utiliser OpenCSV car il prendra soin des caractères d'échappement, etc. pour vous.
Mettre sur pied l'exemple POI à partir here et l'exemple OpenCSV de here vous donne ceci:
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import au.com.bytecode.opencsv.CSVReader;
class Test {
public static void main(String[] args) throws IOException {
Workbook wb = new HSSFWorkbook();
CreationHelper helper = wb.getCreationHelper();
Sheet sheet = wb.createSheet("new sheet");
CSVReader reader = new CSVReader(new FileReader("data.csv"));
String[] line;
int r = 0;
while ((line = reader.readNext()) != null) {
Row row = sheet.createRow((short) r++);
for (int i = 0; i < line.length; i++)
row.createCell(i)
.setCellValue(helper.createRichTextString(line[i]));
}
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
}
}
Il y a beaucoup de contrôle
http://jexcelapi.sourceforge.net/
vous obtiendrez beaucoup d'alternative. Juste google.
Apache POI est une bibliothèque qui peut gérer tous les types de documents Microsoft Office, y compris MS Excel. Vous pouvez lire le contenu du fichier csv avec un code java simple et utiliser cette bibliothèque pour créer et enregistrer un document MS Excel.
Vous pouvez essayer Aspose.Cells for Java. Vous pouvez utiliser ce composant pour open a CSV file et save it as XLS file en utilisant Java. Il vous aide également à travailler avec différentes versions de fichiers Excel.
Divulgation: Je travaille comme développeur évangéliste chez Aspose.
En utilisant Groovy, je le ferais de cette façon:
// groovy to generate large csv file
def GROOVY_HOME = new File(System.getenv('GROOVY_HOME'))
if (!GROOVY_HOME.canRead()) {
println("Missing environment variable GROOVY_HOME: '${GROOVY_HOME}'")
System.exit(0)
}
File file = new File("csv.csv")
if (file.exists()) {
assert file.delete()
assert file.createNewFile()
}
boolean append = true
FileWriter fileWriter = new FileWriter(file, append)
BufferedWriter buffWriter = new BufferedWriter(fileWriter)
buffWriter.write "sdiType=ReferenceValue,,,\n"
buffWriter.write "ListName,ListStartDate,Value,ValueStartDate\n"
println("Writing to file 'csv.csv'")
def y = 5000
while (y-- > 0) {
buffWriter.write "test" + y + ",1/1/2001,2008,1/1/2001\n"
}
buffWriter.flush()
buffWriter.close()
il sera terriblement lent méthode lorsque votre csv a plus de 100k lignes – whd