public static AbsXLSRec Read(BinaryReader br, AbsXLSRec previousRecord, IoOperationInfo operationInfo) { int code = br.ReadUInt16(); if (code == 0) { return(null); } int size = br.ReadUInt16(); XLSDescriptor byCode = XLSDescriptors.GetByCode(code); if (!XLSDescriptors.ValidBodySize(byCode, size, false)) { byCode = null; } if ((byCode != null) && (byCode.Name == "FILEPASS")) { throw new Exception("Current version of ebexcel can't read encrypted workbooks. You can use only simple password protection against modifying (set in MS Excel 'Save As' dialog)."); } if ((byCode != null) && (byCode.HandlerClass != typeof(XLSRecord))) { return((AbsXLSRec)Activator.CreateInstance(byCode.HandlerClass, new object[] { size, br, previousRecord, operationInfo })); } return(new XLSRecord(code, size, br)); }
public XLSRecord(int recordCode, int bodySize, BinaryReader br) { this.recordCode = recordCode; this.ReadBody(bodySize, br); this.descriptor = XLSDescriptors.GetByCode(recordCode); }