Lorsque vous créez un fichier, vous devez décider à l'avance du format qu'il aura - vous ne pouvez pas attendre le moment de l'écriture pour le faire. Votre code serait quelque chose comme :
Workbook wb = null;
if (shouldBeXLS) {
wb = new HSSFWorkbook();
} else {
wb = new XSSFWorkbook();
}
// work on the file in a generic way
// save, with a suitable name
String filename = "test.xls";
if (!shouldBeXLS) { filename = filename + "x"; }
FileOutputStream fout = new FileOutputStream(filename);
wb.write(fout);
fout.close();
Au départ, décidez du format que vous souhaitez pour cette instance particulière et créez-le. Traitez-le comme un classeur général et écrivez-y de la manière habituelle. À la fin, souvenez-vous de ce que c'est pour pouvoir donner au fichier la bonne extension !
(Lors de la lecture d'un fichier en , WorkbookFactory
vous permettra de charger l'instance appropriée pour le type de fichier. Lors de la création d'un nouveau fichier, vous devez choisir vous-même car il n'y a encore rien).