/// <summary> /// Processes a DocumentInputStream into essentially Record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="in1">a DocumentInputStream obtained from POIFS's POIFSFileSystem object</param> /// <returns>numeric user-specified result code.</returns> protected short GenericProcessEvents(HSSFRequest req, RecordInputStream in1) { bool going = true; short userCode = 0; Record r = null; // Create a new RecordStream and use that HSSFRecordStream recordStream = new HSSFRecordStream(in1); // Process each record as they come in while (going) { r = recordStream.NextRecord(); if (r != null) { userCode = req.ProcessRecord(r); if (userCode != 0) { break; } } else { going = false; } } // All done, return our last code return(userCode); }
public void TestRecord() { POIFSFileSystem fs = new POIFSFileSystem( HSSFTestDataSamples.OpenSampleFileStream("WithFormattedGraphTitle.xls")); // Check we can Open the file via usermodel HSSFWorkbook hssf = new HSSFWorkbook(fs); // Now process it through eventusermodel, and // look out for the title records ChartTitleFormatRecordGrabber grabber = new ChartTitleFormatRecordGrabber(); Stream din = fs.CreateDocumentInputStream("Workbook"); HSSFRequest req = new HSSFRequest(); req.AddListenerForAllRecords(grabber); HSSFEventFactory factory = new HSSFEventFactory(); factory.ProcessEvents(req, din); din.Close(); // Should've found one Assert.AreEqual(1, grabber.chartTitleFormatRecords.Count); // And it should be of something interesting AlRunsRecord r = (AlRunsRecord)grabber.chartTitleFormatRecords[0]; Assert.AreEqual(3, r.GetFormatCount()); }
public void TestWithCrazyContinueRecords() { // Some files have crazy ordering of their continue records // Check that we don't break on them (bug #42844) HSSFRequest req = new HSSFRequest(); MockHSSFListener mockListen = new MockHSSFListener(); req.AddListenerForAllRecords(mockListen); POIFSFileSystem fs = new POIFSFileSystem(OpenSample("ContinueRecordProblem.xls")); HSSFEventFactory factory = new HSSFEventFactory(); factory.ProcessWorkbookEvents(req, fs); Record[] recs = mockListen.GetRecords(); // Check we got the records Assert.IsTrue(recs.Length > 100); // And none of them are continue ones for (int i = 0; i < recs.Length; i++) { Assert.IsFalse(recs[i] is ContinueRecord); } // Check that the last few records are as we expect // (Makes sure we don't accidently skip the end ones) int numRec = recs.Length; Assert.AreEqual(typeof(DVALRecord), recs[numRec - 3].GetType()); Assert.AreEqual(typeof(DVRecord), recs[numRec - 2].GetType()); Assert.AreEqual(typeof(EOFRecord), recs[numRec - 1].GetType()); }
/// <summary> /// Processes a DocumentInputStream into essentially Record events. /// If an /// <c>AbortableHSSFListener</c> /// causes a halt to Processing during this call /// the method will return just as with /// <c>abortableProcessEvents</c> /// , but no /// user code or /// <c>HSSFUserException</c> /// will be passed back. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="in1">a DocumentInputStream obtained from POIFS's POIFSFileSystem object</param> public void ProcessEvents(HSSFRequest req, Stream in1) { try { GenericProcessEvents(req, new RecordInputStream(in1)); } catch (HSSFUserException) {/*If an HSSFUserException user exception Is thrown, ignore it.*/ } }
/// <summary> /// Processes a DocumentInputStream into essentially Record events. /// If an /// <c>AbortableHSSFListener</c> /// causes a halt to Processing during this call /// the method will return just as with /// <c>abortableProcessEvents</c> /// , but no /// user code or /// <c>HSSFUserException</c> /// will be passed back. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="in1">a DocumentInputStream obtained from POIFS's POIFSFileSystem object</param> public void ProcessEvents(HSSFRequest req, Stream in1) { try { GenericProcessEvents(req, new RecordInputStream(in1)); } catch (HSSFUserException) { /*If an HSSFUserException user exception Is thrown, ignore it.*/ } }
public void SetUp() { HSSFRequest req = new HSSFRequest(); mockListen = new MockHSSFListener(); listener = new EventWorkbookBuilder.SheetRecordCollectingListener(mockListen); req.AddListenerForAllRecords(listener); HSSFEventFactory factory = new HSSFEventFactory(); try { Stream is1 = HSSFTestDataSamples.OpenSampleFileStream("3dFormulas.xls"); POIFSFileSystem fs = new POIFSFileSystem(is1); factory.ProcessWorkbookEvents(req, fs); } catch (IOException) { throw; } }
public void TestAbortStops() { AbortableCountingListener l = new AbortableCountingListener(1); HSSFRequest req = new HSSFRequest(); req.AddListenerForAllRecords(l); HSSFEventFactory f = new HSSFEventFactory(); Assert.AreEqual(0, l.countSeen); Assert.AreEqual(null, l.lastRecordSeen); POIFSFileSystem fs = openSample(); short res = f.AbortableProcessWorkbookEvents(req, fs); Assert.AreEqual(1234, res); Assert.AreEqual(1, l.countSeen); Assert.AreEqual(BOFRecord.sid, l.lastRecordSeen.Sid); }
private void ProcessFile(String filename) { HSSFRequest req = new HSSFRequest(); mockListen = new MockHSSFListener(); listener = new FormatTrackingHSSFListener(mockListen); req.AddListenerForAllRecords(listener); HSSFEventFactory factory = new HSSFEventFactory(); try { Stream is1 = HSSFTestDataSamples.OpenSampleFileStream(filename); POIFSFileSystem fs = new POIFSFileSystem(is1); factory.ProcessWorkbookEvents(req, fs); } catch (IOException) { throw; } }
public void TestAbortingBasics() { AbortableCountingListener l = new AbortableCountingListener(1000); HSSFRequest req = new HSSFRequest(); req.AddListenerForAllRecords(l); HSSFEventFactory f = new HSSFEventFactory(); Assert.AreEqual(0, l.countSeen); Assert.AreEqual(null, l.lastRecordSeen); POIFSFileSystem fs = openSample(); short res = f.AbortableProcessWorkbookEvents(req, fs); Assert.AreEqual(0, res); //Assert.AreEqual(175, l.countSeen); Assert.AreEqual(176, l.countSeen); //Tony Qu add a sheetext record, so this value should be 176 Assert.AreEqual(EOFRecord.sid, l.lastRecordSeen.Sid); }
public void TestWithMissingRecords() { HSSFRequest req = new HSSFRequest(); MockHSSFListener mockListen = new MockHSSFListener(); req.AddListenerForAllRecords(mockListen); POIFSFileSystem fs = new POIFSFileSystem(OpenSample("SimpleWithSkip.xls")); HSSFEventFactory factory = new HSSFEventFactory(); factory.ProcessWorkbookEvents(req, fs); Record[] recs = mockListen.GetRecords(); // Check we got the records Assert.IsTrue(recs.Length > 100); // Check that the last few records are as we expect // (Makes sure we don't accidently skip the end ones) int numRec = recs.Length; Assert.AreEqual(typeof(WindowTwoRecord), recs[numRec - 3].GetType()); Assert.AreEqual(typeof(SelectionRecord), recs[numRec - 2].GetType()); Assert.AreEqual(typeof(EOFRecord), recs[numRec - 1].GetType()); }
private void ReadRecords(String sampleFileName) { HSSFRequest req = new HSSFRequest(); MockHSSFListener mockListen = new MockHSSFListener(); MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(mockListen); req.AddListenerForAllRecords(listener); HSSFEventFactory factory = new HSSFEventFactory(); try { Stream is1 = HSSFTestDataSamples.OpenSampleFileStream(sampleFileName); POIFSFileSystem fs = new POIFSFileSystem(is1); factory.ProcessWorkbookEvents(req, fs); } catch (IOException) { throw; } r = mockListen.GetRecords(); Assert.IsTrue(r.Length > 100); }
/// <summary> /// Processes a file into essentially record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="fs">a POIFS filesystem containing your workbook</param> public void ProcessWorkbookEvents(HSSFRequest req, POIFSFileSystem fs) { Stream in1 = fs.CreateDocumentInputStream("Workbook"); ProcessEvents(req, in1); }
public void TestUnknownContinueRecords() { HSSFRequest req = new HSSFRequest(); MockHSSFListener mockListen = new MockHSSFListener(); req.AddListenerForAllRecords(mockListen); POIFSFileSystem fs = new POIFSFileSystem(OpenSample("42844.xls")); HSSFEventFactory factory = new HSSFEventFactory(); factory.ProcessWorkbookEvents(req, fs); Assert.IsTrue(true, "no errors while Processing the file"); }
/// <summary> /// Processes a DocumentInputStream into essentially Record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="in1">a DocumentInputStream obtained from POIFS's POIFSFileSystem object</param> /// <returns>numeric user-specified result code.</returns> protected short GenericProcessEvents(HSSFRequest req, RecordInputStream in1) { bool going = true; short userCode = 0; Record r = null; // Create a new RecordStream and use that HSSFRecordStream recordStream = new HSSFRecordStream(in1); // Process each record as they come in while (going) { r = recordStream.NextRecord(); if (r != null) { userCode = req.ProcessRecord(r); if (userCode != 0) break; } else { going = false; } } // All done, return our last code return userCode; }
/// <summary> /// Processes a DocumentInputStream into essentially Record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="in1">a DocumentInputStream obtained from POIFS's POIFSFileSystem object</param> /// <returns>numeric user-specified result code.</returns> public short AbortableProcessEvents(HSSFRequest req, Stream in1) { return(GenericProcessEvents(req, new RecordInputStream(in1))); }
/// <summary> /// Processes a file into essentially record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="fs">a POIFS filesystem containing your workbook</param> public void ProcessWorkbookEvents(HSSFRequest req, POIFSFileSystem fs) { Stream in1 = fs.CreatePOIFSDocumentReader("Workbook"); ProcessEvents(req, in1); }
/// <summary> /// Processes a DocumentInputStream into essentially Record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="in1">a DocumentInputStream obtained from POIFS's POIFSFileSystem object</param> /// <returns>numeric user-specified result code.</returns> public short AbortableProcessEvents(HSSFRequest req, Stream in1) { return GenericProcessEvents(req, new RecordInputStream(in1)); }
/// <summary> /// Processes a file into essentially record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="fs">a POIFS filesystem containing your workbook</param> /// <returns>numeric user-specified result code.</returns> public short AbortableProcessWorkbookEvents(HSSFRequest req, POIFSFileSystem fs) { Stream in1 = fs.CreatePOIFSDocumentReader("Workbook"); return AbortableProcessEvents(req, in1); }
/// <summary> /// Triggers the extraction. /// </summary> /// <returns></returns> private TextListener TriggerExtraction() { TextListener tl = new TextListener(includeSheetNames,formulasNotResults); FormatTrackingHSSFListener ft = new FormatTrackingHSSFListener(tl); tl.ft = ft; // Register and process HSSFEventFactory factory = new HSSFEventFactory(); HSSFRequest request = new HSSFRequest(); request.AddListenerForAllRecords(ft); factory.ProcessWorkbookEvents(request, fs); return tl; }
/// <summary> /// Processes a file into essentially record events. /// </summary> /// <param name="req">an Instance of HSSFRequest which has your registered listeners</param> /// <param name="fs">a POIFS filesystem containing your workbook</param> /// <returns>numeric user-specified result code.</returns> public short AbortableProcessWorkbookEvents(HSSFRequest req, POIFSFileSystem fs) { Stream in1 = fs.CreateDocumentInputStream("Workbook"); return(AbortableProcessEvents(req, in1)); }