"Le package devrait contenir une partie de type de contenu "

Je tente d'écrire sur un file Excel, mais je continue d'get l'erreur:

Exception dans le thread "principal" org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: le package doit contenir une partie de type de contenu [M1.13]

D'après ce que je comprends, il me manque un file jar.

Quelqu'un peut-il m'aider à identifier quel file est-il?

PS J'utilise Netbeans.

mes fichiers actuels

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.JOptionPane; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * * @author nicholaskissaun */ public class Tester { public static void main (Ssortingng args \[\])throws FileNotFoundException, IOException, InvalidFormatException{ int RowCount = 7, iChoice; Ssortingng sChoice; XSSFSheet s; XSSFRow row1; XSSFWorkbook wb; XSSFCell r1c1, r1c2, r1c8, r1Episodes; FileInputStream fis = new FileInputStream("/Users/nicholaskissaun/Google Drive/Grade 11_12/Computer Science/Java/Term1/src/IA/Profiles/Becky/ShowDetails.xlsx"); wb = new XSSFWorkbook(fis); s = wb.getSheetAt(0); } } 

Cela peut se produire lorsque vous créez votre file XLS / XLSX via LibreOffice. Apparemment, quelque chose est perdu dans la conversion et le file n'est pas identique à une feuille de calcul réalisée dans Microsoft Office. J'ai eu la même erreur et la solution pour moi était de copyr tout le travail que j'ai effectué dans LibreOffice Calc vers une feuille de calcul MS Excel, puis de sauvegarder un nouveau file.

Utilisez l'extension de file pour gérer le type de WorkSheet

  Ssortingng inputFilename = new File(path).getName(); switch (inputFilename.subssortingng(inputFilename.lastIndexOf(".") + 1, inputFilename.length())) { case "xls": return readXLS(path); case "xlsx": return readXLSX(path); default: Log.e(TAG, "No XLS file chosen"); return "Please select valid \"Excel\" File\""; } case "xls":  Ssortingng inputFilename = new File(path).getName(); switch (inputFilename.subssortingng(inputFilename.lastIndexOf(".") + 1, inputFilename.length())) { case "xls": return readXLS(path); case "xlsx": return readXLSX(path); default: Log.e(TAG, "No XLS file chosen"); return "Please select valid \"Excel\" File\""; } 

Pour le file XLSX: utilisez XSSFWorkbook & XSSFSheet

  XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File(path))); XSSFSheet sheet = workbook.getSheetAt(0); 

Pour le file XLS: utilisez HSSFWorkbook & HSSFSheet

  HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(path))); HSSFSheet sheet = workbook.getSheetAt(0); 

VÉRIFIEZ LE FORMAT EXCEL … Tout d'abord, j'ai créé un exemple excel avec poi et j'ai changé les colonnes avec la première tentative de ma mère, elle a donné la même erreur, mais après que peu d'essai l'a réussi à lire. Je me request pourquoi il n'a pas fonctionné d'abord 🙁 mais si vous avez la bonne bibliothèque, vérifiez le format Excel correct

J'ai le même problème. Votre excel n'est pas au bon format. Vous pouvez copyr tous les travaux sur une nouvelle feuille ou Effacer le format. Bonne chance.