public OldFormulaRecord(RecordInputStream ris) : base(ris, ris.Sid == biff2_sid) { ; if (IsBiff2) { field_4_value = ris.ReadDouble(); } else { long valueLongBits = ris.ReadLong(); specialCachedValue = SpecialCachedValue.Create(valueLongBits); if (specialCachedValue == null) { field_4_value = BitConverter.Int64BitsToDouble(valueLongBits); } } if (IsBiff2) { field_5_options = (short)ris.ReadUByte(); } else { field_5_options = ris.ReadShort(); } int expression_len = ris.ReadShort(); int nBytesAvailable = ris.Available(); field_6_Parsed_expr = Formula.Read(expression_len, ris, nBytesAvailable); }
/** * Constructs a Formula record and Sets its fields appropriately. * Note - id must be 0x06 (NOT 0x406 see MSKB #Q184647 for an * "explanation of this bug in the documentation) or an exception * will be throw upon validation * * @param in the RecordInputstream to Read the record from */ public FormulaRecord(RecordInputStream in1) : base(in1) { long valueLongBits = in1.ReadLong(); field_5_options = in1.ReadShort(); specialCachedValue = SpecialCachedValue.Create(valueLongBits); if (specialCachedValue == null) { field_4_value = BitConverter.Int64BitsToDouble(valueLongBits); } field_6_zero = in1.ReadInt(); int field_7_expression_len = in1.ReadShort(); field_8_parsed_expr = NPOI.SS.Formula.Formula.Read(field_7_expression_len, in1, in1.Available()); }
public SheetExtRecord(RecordInputStream in1) { rt = in1.ReadShort(); if (rt != 0x0862) { throw new ArgumentException("frtHeader.rt must be equals 0x0862 in SheetExt record"); } grbitFrt = in1.ReadShort(); in1.ReadInt(); //reserved in1.ReadInt(); //reserved cb = in1.ReadInt(); optionflag = in1.ReadShort(); in1.ReadShort(); //reserved if (cb == 0x28) { optionflag2 = in1.ReadShort(); xclrType = in1.ReadInt(); xclrValue = in1.ReadInt(); numTint = in1.ReadLong(); in1.ReadShort(); } }
private static object ReadAConstantValue(RecordInputStream in1) { byte grbit = (byte)in1.ReadByte(); switch (grbit) { case TYPE_EMPTY: in1.ReadLong(); // 8 byte 'not used' field return EMPTY_REPRESENTATION; case TYPE_NUMBER: return in1.ReadDouble(); case TYPE_STRING: return in1.ReadUnicodeString(); case TYPE_bool: return ReadBoolean(in1); case TYPE_ERROR_CODE: int errCode = in1.ReadUShort(); // next 6 bytes are Unused in1.ReadUShort(); in1.ReadInt(); return ErrorConstant.ValueOf(errCode); } throw new Exception("Unknown grbit value (" + grbit + ")"); }
/** * Constructs a Formula record and Sets its fields appropriately. * Note - id must be 0x06 (NOT 0x406 see MSKB #Q184647 for an * "explanation of this bug in the documentation) or an exception * will be throw upon validation * * @param in the RecordInputstream to Read the record from */ public FormulaRecord(RecordInputStream in1):base(in1) { long valueLongBits = in1.ReadLong(); field_5_options = in1.ReadShort(); specialCachedValue = SpecialCachedValue.Create(valueLongBits); if (specialCachedValue == null) { field_4_value = BitConverter.Int64BitsToDouble(valueLongBits); } field_6_zero = in1.ReadInt(); int field_7_expression_len = in1.ReadShort(); field_8_parsed_expr = NPOI.SS.Formula.Formula.Read(field_7_expression_len, in1,in1.Available()); }
private static Object ReadBoolean(RecordInputStream in1) { byte val = (byte)in1.ReadLong(); // 7 bytes 'not used' switch (val) { case FALSE_ENCODING: return false; case TRUE_ENCODING: return true; } // Don't tolerate Unusual bool encoded values (unless it becomes evident that they occur) throw new Exception("unexpected bool encoding (" + val + ")"); }
/** * Constructs a Formula record and Sets its fields appropriately. * Note - id must be 0x06 (NOT 0x406 see MSKB #Q184647 for an * "explanation of this bug in the documentation) or an exception * will be throw upon validation * * @param in the RecordInputstream to Read the record from */ public FormulaRecord(RecordInputStream in1) { try { field_1_row = in1.ReadUShort(); field_2_column = in1.ReadUShort(); field_3_xf = in1.ReadShort(); long valueLongBits = in1.ReadLong(); field_5_options = in1.ReadShort(); specialCachedValue = SpecialCachedValue.Create(valueLongBits); if (specialCachedValue == null) { field_4_value = BitConverter.Int64BitsToDouble(valueLongBits); } field_6_zero = in1.ReadInt(); int field_7_expression_len = in1.ReadShort(); field_8_parsed_expr = Ptg.ReadTokens(field_7_expression_len, in1); if (in1.Remaining == 10) { // TODO - this seems to occur when IntersectionPtg is present // 10 extra bytes are just 0x01 and 0x00 // This causes POI stderr: "WARN. Unread 10 bytes of record 0x6" } } catch (InvalidOperationException uoe) { throw new RecordFormatException(uoe); } if (in1.Remaining == 10) { // TODO - this seems to occur when IntersectionPtg Is present // 10 extra bytes are just 0x01 and 0x00 // This causes POI stderr: "WARN. UnRead 10 bytes of record 0x6" } }