/** * Clone this record. */ public override Object Clone() { ContinueRecord Clone = new ContinueRecord(); Clone.Data = (field_1_data); return(Clone); }
/** * @return the next available record, or <code>null</code> if * this pass didn't return a record that's * suitable for returning (eg was a continue record). */ private Record ReadNextRecord() { Record record = RecordFactory.CreateSingleRecord(_recStream); _lastRecordWasEOFLevelZero = false; if (record is BOFRecord) { _bofDepth++; return(record); } if (record is EOFRecord) { _bofDepth--; if (_bofDepth < 1) { _lastRecordWasEOFLevelZero = true; } return(record); } if (record is DBCellRecord) { // Not needed by POI. Regenerated from scratch by POI when spreadsheet is written return(null); } if (record is RKRecord) { return(RecordFactory.ConvertToNumberRecord((RKRecord)record)); } if (record is MulRKRecord) { Record[] records = RecordFactory.ConvertRKRecords((MulRKRecord)record); _unreadRecordBuffer = records; _unreadRecordIndex = 1; return(records[0]); } if (record.Sid == DrawingGroupRecord.sid && _lastRecord is DrawingGroupRecord) { DrawingGroupRecord lastDGRecord = (DrawingGroupRecord)_lastRecord; lastDGRecord.Join((AbstractEscherHolderRecord)record); return(null); } if (record.Sid == ContinueRecord.sid) { ContinueRecord contRec = (ContinueRecord)record; if (_lastRecord is ObjRecord || _lastRecord is TextObjectRecord) { // Drawing records have a very strange continue behaviour. //There can actually be OBJ records mixed between the continues. _lastDrawingRecord.ProcessContinueRecord(contRec.Data); //we must remember the position of the continue record. //in the serialization procedure the original structure of records must be preserved if (_shouldIncludeContinueRecords) { return(record); } return(null); } if (_lastRecord is DrawingGroupRecord) { ((DrawingGroupRecord)_lastRecord).ProcessContinueRecord(contRec.Data); return(null); } if (_lastRecord is DrawingRecord) { ((DrawingRecord)_lastRecord).ProcessContinueRecord(contRec.Data); return(null); } if (_lastRecord is UnknownRecord) { //Gracefully handle records that we don't know about, //that happen to be continued return(record); } if (_lastRecord is EOFRecord) { // This is really odd, but excel still sometimes // outPuts a file like this all the same return(record); } //if (_lastRecord is StringRecord) //{ // ((StringRecord)_lastRecord).ProcessContinueRecord(contRec.Data); // return null; //} throw new RecordFormatException("Unhandled Continue Record"); } _lastRecord = record; if (record is DrawingRecord) { _lastDrawingRecord = (DrawingRecord)record; } return(record); }