public ExtendedPivotTableViewFieldsRecord(RecordInputStream in1) { grbit1 = in1.ReadInt(); grbit2 = in1.ReadUByte(); citmShow = in1.ReadUByte(); isxdiSort = in1.ReadUShort(); isxdiShow = in1.ReadUShort(); // This record seems to have different valid encodings switch (in1.Remaining) { case 0: // as per "Microsoft Excel Developer's Kit" book // older version of SXVDEX - doesn't seem to have a sub-total name reserved1 = 0; reserved2 = 0; subName = null; return; case 10: // as per "MICROSOFT OFFICE EXCEL 97-2007 BINARY FILE FORMAT SPECIFICATION" pdf break; default: throw new RecordFormatException("Unexpected remaining size (" + in1.Remaining + ")"); } int cchSubName = in1.ReadUShort(); reserved1 = in1.ReadInt(); reserved2 = in1.ReadInt(); if (cchSubName != STRING_NOT_PRESENT_LEN) { subName = in1.ReadUnicodeLEString(cchSubName); } }
public FeatRecord(RecordInputStream in1) { futureHeader = new FtrHeader(in1); isf_sharedFeatureType = in1.ReadShort(); reserved1 = (byte)in1.ReadByte(); reserved2 = in1.ReadInt(); int cref = in1.ReadUShort(); cbFeatData = in1.ReadInt(); reserved3 = in1.ReadShort(); cellRefs = new CellRangeAddress[cref]; for (int i = 0; i < cellRefs.Length; i++) { cellRefs[i] = new CellRangeAddress(in1); } switch (isf_sharedFeatureType) { case FeatHdrRecord.SHAREDFEATURES_ISFPROTECTION: sharedFeature = new FeatProtection(in1); break; case FeatHdrRecord.SHAREDFEATURES_ISFFEC2: sharedFeature = new FeatFormulaErr2(in1); break; case FeatHdrRecord.SHAREDFEATURES_ISFFACTOID: sharedFeature = new FeatSmartTag(in1); break; default: System.Console.WriteLine("Unknown Shared Feature " + isf_sharedFeatureType + " found!"); break; } }
/** * Constructs a Dimensions record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public DimensionsRecord(RecordInputStream in1) { field_1_first_row = in1.ReadInt(); field_2_last_row = in1.ReadInt(); field_3_first_col = in1.ReadShort(); field_4_last_col = in1.ReadShort(); field_5_zero = in1.ReadShort(); }
/** * Constructs a DVAL record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public DVALRecord(RecordInputStream in1) { this.field_1_options = in1.ReadShort(); this.field_2_horiz_pos = in1.ReadInt(); this.field_3_vert_pos = in1.ReadInt(); this.field_cbo_id = in1.ReadInt(); this.field_5_dv_no = in1.ReadInt(); }
/** * Constructs a ChartFormatRecord record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public ChartFormatRecord(RecordInputStream in1) { field1_x_position = in1.ReadInt(); field2_y_position = in1.ReadInt(); field3_width = in1.ReadInt(); field4_height = in1.ReadInt(); field5_grbit = in1.ReadShort(); field6_icrt = in1.ReadShort(); }
public FeatProtection(RecordInputStream in1) { fSD = in1.ReadInt(); passwordVerifier = in1.ReadInt(); title = StringUtil.ReadUnicodeString(in1); securityDescriptor = in1.ReadRemainder(); }
/** * Constructs a Tick record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public TickRecord(RecordInputStream in1) { field_1_majorTickType = (byte)in1.ReadByte(); field_2_minorTickType = (byte)in1.ReadByte(); field_3_labelPosition = (byte)in1.ReadByte(); field_4_background = (byte)in1.ReadByte(); field_5_labelColorRgb = (byte)in1.ReadInt(); field_6_zero1 = in1.ReadInt(); field_7_zero2 = in1.ReadInt(); field_8_zero3 = in1.ReadInt(); field_9_zero4 = in1.ReadInt(); field_10_options = in1.ReadShort(); field_11_tickColor = in1.ReadShort(); field_12_zero5 = in1.ReadShort(); }
public ArrayRecord(RecordInputStream in1) : base(in1) { _options = in1.ReadUShort(); _field3notUsed = in1.ReadInt(); int formulaTokenLen = in1.ReadUShort(); int totalFormulaLen = in1.Available(); _formula = LF.Utils.NPOI.SS.Formula.Formula.Read(formulaTokenLen, in1, totalFormulaLen); }
/** * Constructs an Index record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public IndexRecord(RecordInputStream in1) { field_1_zero = in1.ReadInt(); if (field_1_zero != 0) { throw new RecordFormatException("Expected zero for field 1 but got " + field_1_zero); } field_2_first_row = in1.ReadInt(); field_3_last_row_add1 = in1.ReadInt(); field_4_zero = in1.ReadInt(); int nCells = in1.Remaining / 4; field_5_dbcells = new IntList(nCells); // initial capacity of 30 for (int i = 0; i < nCells; i++) { field_5_dbcells.Add(in1.ReadInt()); } }
public TableStylesRecord(RecordInputStream in1) { rt = in1.ReadUShort(); grbitFrt = in1.ReadUShort(); in1.ReadFully(unused); cts = in1.ReadInt(); int cchDefListStyle = in1.ReadUShort(); int cchDefPivotStyle = in1.ReadUShort(); rgchDefListStyle = in1.ReadUnicodeLEString(cchDefListStyle); rgchDefPivotStyle = in1.ReadUnicodeLEString(cchDefPivotStyle); }
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(); } }
/** * Constructs a WindowTwo record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public WindowTwoRecord(RecordInputStream in1) { int size = in1.Remaining; field_1_options = in1.ReadShort(); field_2_top_row = in1.ReadShort(); field_3_left_col = in1.ReadShort(); field_4_header_color = in1.ReadInt(); if (size > 10) { field_5_page_break_zoom = in1.ReadShort(); field_6_normal_zoom = in1.ReadShort(); } if (size > 14) { // there Is a special case of this record that has only 14 bytes...undocumented! field_7_reserved = in1.ReadInt(); } }
/** * Constructs a Text record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public TextRecord(RecordInputStream in1) { field_1_horizontalAlignment = (byte)in1.ReadByte(); field_2_verticalAlignment = (byte)in1.ReadByte(); field_3_DisplayMode = in1.ReadShort(); field_4_rgbColor = in1.ReadInt(); field_5_x = in1.ReadInt(); field_6_y = in1.ReadInt(); field_7_width = in1.ReadInt(); field_8_height = in1.ReadInt(); field_9_options1 = in1.ReadShort(); field_10_IndexOfColorValue = in1.ReadShort(); field_11_options2 = in1.ReadShort(); field_12_textRotation = in1.ReadShort(); }
/** * Constructs a DV record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public DVRecord(RecordInputStream in1) { _option_flags = in1.ReadInt(); _promptTitle = ReadUnicodeString(in1); _errorTitle = ReadUnicodeString(in1); _promptText = ReadUnicodeString(in1); _errorText = ReadUnicodeString(in1); int field_size_first_formula = in1.ReadUShort(); _not_used_1 = in1.ReadShort(); //read first formula data condition _formula1 = LF.Utils.NPOI.SS.Formula.Formula.Read(field_size_first_formula, in1); int field_size_sec_formula = in1.ReadUShort(); _not_used_2 = in1.ReadShort(); //read sec formula data condition _formula2 = LF.Utils.NPOI.SS.Formula.Formula.Read(field_size_sec_formula, in1); //read cell range address list with all affected ranges _regions = new CellRangeAddressList(in1); }
private RkRec(RecordInputStream in1) { xf = in1.ReadShort(); rk = in1.ReadInt(); }
private static void ProcessFontRuns(RecordInputStream in1, IRichTextString str, int formattingRunDataLength) { if (formattingRunDataLength % FORMAT_RUN_ENCODED_SIZE != 0) { throw new RecordFormatException("Bad format run data length " + formattingRunDataLength + ")"); } int nRuns = formattingRunDataLength / FORMAT_RUN_ENCODED_SIZE; for (int i = 0; i < nRuns; i++) { short index = in1.ReadShort(); short iFont = in1.ReadShort(); in1.ReadInt(); // skip reserved. str.ApplyFont(index, str.Length, iFont); } }
/** * Constructs a BOFRecord and Sets its fields appropriately * @param in the RecordInputstream to Read the record from */ public BOFRecord(RecordInputStream in1) { field_1_version = in1.ReadShort(); field_2_type = in1.ReadShort(); // Some external tools don't generate all of // the remaining fields if (in1.Remaining >= 2) { field_3_build = in1.ReadShort(); } if (in1.Remaining >= 2) { field_4_year = in1.ReadShort(); } if (in1.Remaining >= 4) { field_5_history = in1.ReadInt(); } if (in1.Remaining >= 4) { field_6_rversion = in1.ReadInt(); } }
/** * Constructs an ExtendedFormat record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public ExtendedFormatRecord(RecordInputStream in1) { field_1_font_index = in1.ReadShort(); field_2_format_index = in1.ReadShort(); field_3_cell_options = in1.ReadShort(); field_4_alignment_options = in1.ReadShort(); field_5_indention_options = in1.ReadShort(); field_6_border_options = in1.ReadShort(); field_7_palette_options = in1.ReadShort(); field_8_adtl_palette_options = in1.ReadInt(); field_9_fill_palette_options = in1.ReadShort(); }
public FeatHdrRecord(RecordInputStream in1) { futureHeader = new FtrHeader(in1); isf_sharedFeatureType = in1.ReadShort(); reserved = (byte)in1.ReadByte(); cbHdrData = in1.ReadInt(); // Don't process this just yet, need the BOFRecord rgbHdrData = in1.ReadRemainder(); }
private void ProcessFontRuns(RecordInputStream in1) { while (in1.Remaining > 0) { short index = in1.ReadShort(); short iFont = in1.ReadShort(); in1.ReadInt(); // skip reserved. _text.ApplyFont(index, _text.Length, iFont); } }
public TextObjectRecord(RecordInputStream in1) { field_1_options = in1.ReadUShort(); field_2_textOrientation = in1.ReadUShort(); field_3_reserved4 = in1.ReadUShort(); field_4_reserved5 = in1.ReadUShort(); field_5_reserved6 = in1.ReadUShort(); int field_6_textLength = in1.ReadUShort(); int field_7_formattingDataLength = in1.ReadUShort(); field_8_reserved7 = in1.ReadInt(); if (in1.Remaining > 0) { // Text Objects can have simple reference formulas // (This bit not mentioned in the MS document) if (in1.Remaining < 11) { throw new RecordFormatException("Not enough remaining data for a link formula"); } int formulaSize = in1.ReadUShort(); _unknownPreFormulaInt = in1.ReadInt(); Ptg[] ptgs = Ptg.ReadTokens(formulaSize, in1); if (ptgs.Length != 1) { throw new RecordFormatException("Read " + ptgs.Length + " tokens but expected exactly 1"); } _linkRefPtg = (OperandPtg)ptgs[0]; if (in1.Remaining > 0) { _unknownPostFormulaByte = (byte)in1.ReadByte(); } else { _unknownPostFormulaByte = null; } } else { _linkRefPtg = null; } if (in1.Remaining > 0) { throw new RecordFormatException("Unused " + in1.Remaining + " bytes at end of record"); } String text; if (field_6_textLength > 0) { text = ReadRawString(in1, field_6_textLength); } else { text = ""; } _text = new HSSFRichTextString(text); if (field_7_formattingDataLength > 0) { ProcessFontRuns(in1, _text, field_7_formattingDataLength); } }
/** * Read hyperlink from input stream * * @param in the stream to Read from */ public HyperlinkRecord(RecordInputStream in1) { _range = new CellRangeAddress(in1); // 16-byte GUID _guid = new GUID(in1); /* * streamVersion (4 bytes): An unsigned integer that specifies the version number * of the serialization implementation used to save this structure. This value MUST equal 2. */ int streamVersion = in1.ReadInt(); if (streamVersion != 0x00000002) { throw new RecordFormatException("Stream Version must be 0x2 but found " + streamVersion); } _linkOpts = in1.ReadInt(); if ((_linkOpts & HLINK_LABEL) != 0) { int label_len = in1.ReadInt(); _label = in1.ReadUnicodeLEString(label_len); } if ((_linkOpts & HLINK_TARGET_FRAME) != 0) { int len = in1.ReadInt(); _targetFrame = in1.ReadUnicodeLEString(len); } if ((_linkOpts & HLINK_URL) != 0 && (_linkOpts & HLINK_UNC_PATH) != 0) { _moniker = null; int nChars = in1.ReadInt(); _address = in1.ReadUnicodeLEString(nChars); } if ((_linkOpts & HLINK_URL) != 0 && (_linkOpts & HLINK_UNC_PATH) == 0) { _moniker = new GUID(in1); if (URL_MONIKER.Equals(_moniker)) { int length = in1.ReadInt(); /* * The value of <code>length<code> be either the byte size of the url field * (including the terminating NULL character) or the byte size of the url field plus 24. * If the value of this field is set to the byte size of the url field, * then the tail bytes fields are not present. */ int remaining = in1.Remaining; if (length == remaining) { int nChars = length / 2; _address = in1.ReadUnicodeLEString(nChars); } else { int nChars = (length - TAIL_SIZE) / 2; _address = in1.ReadUnicodeLEString(nChars); /* * TODO: make sense of the remaining bytes * According to the spec they consist of: * 1. 16-byte GUID: This field MUST equal * {0xF4815879, 0x1D3B, 0x487F, 0xAF, 0x2C, 0x82, 0x5D, 0xC4, 0x85, 0x27, 0x63} * 2. Serial version, this field MUST equal 0 if present. * 3. URI Flags */ _uninterpretedTail = ReadTail(URL_uninterpretedTail, in1); } } else if (FILE_MONIKER.Equals(_moniker)) { _fileOpts = in1.ReadShort(); int len = in1.ReadInt(); _shortFilename = StringUtil.ReadCompressedUnicode(in1, len); _uninterpretedTail = ReadTail(FILE_uninterpretedTail, in1); int size = in1.ReadInt(); if (size > 0) { int charDataSize = in1.ReadInt(); //From the spec: An optional unsigned integer that MUST be 3 if present int optFlags = in1.ReadUShort(); if (optFlags != 0x0003) { throw new RecordFormatException("Expected 0x3 but found " + optFlags); } _address = StringUtil.ReadUnicodeLE(in1, charDataSize / 2); } else { _address = null; } } else if (STD_MONIKER.Equals(_moniker)) { _fileOpts = in1.ReadShort(); int len = in1.ReadInt(); byte[] path_bytes = new byte[len]; in1.ReadFully(path_bytes); _address = Encoding.UTF8.GetString(path_bytes); } } if ((_linkOpts & HLINK_PLACE) != 0) { int len = in1.ReadInt(); _textMark = in1.ReadUnicodeLEString(len); } if (in1.Remaining > 0) { Console.WriteLine(HexDump.ToHex(in1.ReadRemainder())); } }
public InfoSubRecord(RecordInputStream in1) { field_1_stream_pos = in1.ReadInt(); field_2_bucket_sst_offset = in1.ReadShort(); field_3_zero = in1.ReadShort(); }
/** * Constructs a RECALCID record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public RecalcIdRecord(RecordInputStream in1) { in1.ReadUShort(); // field 'rt' should have value 0x01C1, but Excel doesn't care during reading _reserved0 = in1.ReadUShort(); _engineId = in1.ReadInt(); }
/** * Constructs an SST record and Sets its fields appropriately. * * @param in the RecordInputstream to Read the record from */ public SSTRecord(RecordInputStream in1) { // this method Is ALWAYS called after construction -- using // the nontrivial constructor, of course -- so this Is where // we initialize our fields field_1_num_strings = in1.ReadInt(); field_2_num_unique_strings = in1.ReadInt(); field_3_strings = new IntMapper<UnicodeString>(); deserializer = new SSTDeserializer(field_3_strings); deserializer.ManufactureStrings(field_2_num_unique_strings, in1); }
/** Creates new FontFormatting */ public BorderFormatting(RecordInputStream in1) { field_13_border_styles1 = in1.ReadInt(); field_14_border_styles2 = in1.ReadInt(); }
/** * 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 = LF.Utils.NPOI.SS.Formula.Formula.Read(field_7_expression_len, in1,in1.Available()); }
/** * Constructs an LabelSST record and Sets its fields appropriately. * @param in the RecordInputstream to Read the record from */ public LabelSSTRecord(RecordInputStream in1) : base(in1) { field_4_sst_index = in1.ReadInt(); }
public FeatFormulaErr2(RecordInputStream in1) { errorCheck = in1.ReadInt(); }
public CFRuleRecord(RecordInputStream in1) { field_1_condition_type = (byte)in1.ReadByte(); field_2_comparison_operator = (byte)in1.ReadByte(); int field_3_formula1_len = in1.ReadUShort(); int field_4_formula2_len = in1.ReadUShort(); field_5_options = in1.ReadInt(); field_6_not_used = in1.ReadShort(); if (ContainsFontFormattingBlock) { fontFormatting = new FontFormatting(in1); } if (ContainsBorderFormattingBlock) { borderFormatting = new BorderFormatting(in1); } if (ContainsPatternFormattingBlock) { patternFormatting = new PatternFormatting(in1); } field_17_formula1 = FR.Formula.Read(field_3_formula1_len, in1); field_18_formula2 = FR.Formula.Read(field_4_formula2_len, in1); }