import org.apache.poi.hssf.extractor.EventBasedExcelExtractor; import org.apache.poi.hssf.extractor.ExcelExtractor; import org.apache.poi.poifs.filesystem.Entry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Iterator; public class Foo { public static void main(String[] args) throws Exception { BufferedInputStream bis = null; File file = new File("/Users/phil.varner/Documents/poi_format_bug_repro.xls"); bis = new BufferedInputStream(new FileInputStream(file)); try { POIFSFileSystem pfs = new POIFSFileSystem(bis); for (Iterator entries = pfs.getRoot().getEntries(); entries.hasNext();) { Entry entry = (Entry) entries.next(); if (entry.getName().equals("Workbook")) { System.out.println("with EventBasedEE"); try { System.out.println(new EventBasedExcelExtractor(pfs).getText()); } catch (IllegalArgumentException e){ System.out.println(e.getMessage()); } System.out.println("\nwith UserModel EE"); try { System.out.println(new ExcelExtractor(pfs).getText()); } catch (IllegalArgumentException e){ System.out.println(e.getMessage()); } } } } finally { if (bis != null) { try { bis.close(); } catch (IOException e){ /* don't care */ } } } } }