public void Issue1163911644ForwardOnlyStream() { // Excel.Log.Log.InitializeWith<Log4NetLog>(); using (var stream = Configuration.GetTestWorkbook("Test_OpenOffice")) { using (var forwardStream = SeekErrorMemoryStream.CreateFromStream(stream)) using (IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(forwardStream)) { Assert.DoesNotThrow(() => excelReader.AsDataSet()); } } }
/// <summary> /// Creates SeekErrorMemoryStream copy data from the source /// </summary> public static SeekErrorMemoryStream CreateFromStream(Stream source) { var forwardStream = new SeekErrorMemoryStream { _canSeek = true }; CopyStream(source, forwardStream); forwardStream.Seek(0, SeekOrigin.Begin); // now disable seek forwardStream._canSeek = false; return(forwardStream); }