I have a script that requires an excel spreadsheet to be downloaded from a website and opened, ending in an assertion that a certain value exists or not on the spreadsheet.

Getting the following error:

java.lang.AssertionError: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] at Assert.fail(Assert.java:95)

Any ideas?


2 Answers 2


Use file extension to handle WorkSheet Type

String inputFilename = new File(path).getName();

switch (inputFilename.substring(inputFilename.lastIndexOf(".") + 1,
   inputFilename.length())) {
      case "xls":
      return readXLS(path);

      case "xlsx":
      return readXLSX(path);
      Log.e(TAG, "No XLS file chosen");
      return "Please select valid \"Excel\" File\"";

For XLSX file: use XSSFWorkbook & XSSFSheet

XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(new File(path)));

XSSFSheet sheet = workbook.getSheetAt(0);

For XLS file: use HSSFWorkbook & HSSFSheet

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(new File(path)));

HSSFSheet sheet = workbook.getSheetAt(0);

Refer the link for a more detail


This may happen when your create your XLS/XLSX file through LibreOffice. Apparently something is lost in the conversion and the file is not the same as a spreadsheet made in Microsoft Office. I had the same error and the solution for me was copying all the work I have done in LibreOffice Calc to a MS Excel spreadsheet and then save a new file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.