Avoir d'erreur “Votre InputStream était ni un OLE2 flux, ni un OOXML stream” lors de la création de fichier par le biais de apache POI
Je suis en train de vérifier si mon fichier excel en existe déjà. Si il n'existe pas, je veux en créer une nouvelle, et si elle existe, je vais le supprimer et en créer un nouveau. J'ai écrit à la suite d'un programme, mais j'obtiens l'erreur à la ligne - classeur= WorkbookFactory.créer(débit réservé);
L'erreur->
java.lang.IllegalArgumentException: Votre InputStream était ni un OLE2 flux, ni un OOXML flux
au org.apache.pi.ss.usermodel.WorkbookFactory.créer(WorkbookFactory.java:89)
à essayer.principal(en essayant.java:84)
Ici est un programme ->
try {
String filePath= "C:/Users/pritik/Desktop/t1.xlsx";
File file = new File(filePath);
filePath= file.getAbsolutePath();
xlFile = new File(filePath);
if(xlFile.exists() && !xlFile.isDirectory())
xlFile.delete(); //delete if file already exists.
xlFile.createNewFile();
inStream = new FileInputStream(xlFile);
workbook = WorkbookFactory.create(inStream); //I get error at this line
String sheetName="NewSheet";
Sheet sheet = workbook.createSheet(sheetName);
FileOutputStream fOut = new FileOutputStream(xlFile);
int i,j;
xRows = xTS.length;
xCols = xTS[0].length;
for(i =0;i<xRows;i++)
{
row = sheet.createRow(i);
for(j=0;j<xCols;j++)
{
cell = row.createCell(j);
cell.setCellType(Cell.CELL_TYPE_STRING);
cell.setCellValue(xTS[i][j]);
}
}
workbook.write(fOut);
fOut.flush();
fOut.close();
} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
OriginalL'auteur For Testing | 2015-03-24
Vous devez vous connecter pour publier un commentaire.
Ne pas créer un fichier vide et essayer de le lire, ça ne marchera pas. Un vide fichier de zéro octet n'est pas valide et ne peut pas être chargé au Lieu de cela, ont POI créer un nouveau fichier pour vous, ce qui vous permettra d'écrire plus tard.
Modifier le code:
Au lieu d'être:
Aussi, si vous souhaitez lire un fichier existant, ne pas utiliser un jet si vous avez un fichier! Voir ce bit de la PI docs pourquoi pas.
pourquoi n'utilisez-vous pas le Classeur de l'usine et à l'aide de hss et xssf classeur est-il une raison
WorkbookFactory est uniquement pour la lecture des fichiers existants. L'OP veut en créer un nouveau à partir de zéro
Ouais, je vais avoir des fichiers qui existe déjà mais j'obtiens l'erreur
Vérifiez que le fichier est vraiment, alors, pas ce que l'extension dit. L'Apache Tika application dans
--detect
mode devrait vous direOriginalL'auteur Gagravarr