/** * Create an array of records from an input stream * * @param in the InputStream from which the records will be obtained * @return an array of Records created from the InputStream * @exception RecordFormatException on error processing the InputStream */ public static List<Record> createRecords(InputStream in) throws RecordFormatException { List<Record> records = new ArrayList<>(NUM_RECORDS); RecordFactoryInputStream recStream = new RecordFactoryInputStream(in, true); Record record; while ((record = recStream.nextRecord()) != null) { records.add(record); } return records; }
/** * Processes a DocumentInputStream into essentially Record events. * * @see org.apache.poi.poifs.filesystem.POIFSFileSystem#createDocumentInputStream(String) * @param req an Instance of HSSFRequest which has your registered listeners * @param in a DocumentInputStream obtained from POIFS's POIFSFileSystem object * @return numeric user-specified result code. */ private short genericProcessEvents(HSSFRequest req, InputStream in) throws HSSFUserException { short userCode = 0; // Create a new RecordStream and use that RecordFactoryInputStream recordStream = new RecordFactoryInputStream(in, false); // Process each record as they come in while (true) { Record r = recordStream.nextRecord(); if (r == null) { break; } userCode = req.processRecord(r); if (userCode != 0) { break; } } // All done, return our last code return userCode; }