public static long SUPBOOK(BinaryWriter output, ushort cTab) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 430, 4); output.Write(BitConverter.GetBytes(cTab)); output.Write((byte)1); output.Write((byte)4); return(output.BaseStream.Position - position); }
public static long LABEL(BinaryWriter output, ushort rowIndex, ushort colIndex, ushort ixfe, string rgch) { long position = output.BaseStream.Position; bool compressed = default(bool); int num = StringUtil.CalcBIFF8StringSize(rgch, out compressed); RecordFactory.WriteCellHeader(output, 516, 9 + num, rowIndex, colIndex, ixfe); StringUtil.WriteBIFF8String(output, rgch, compressed); return(output.BaseStream.Position - position); }
public static long FORMAT(BinaryWriter output, string format, int ifmt) { long position = output.BaseStream.Position; bool compressed = default(bool); int num = StringUtil.CalcBIFF8StringSize(format, out compressed); RecordFactory.WriteHeader(output, 1054, 5 + num); output.Write((ushort)ifmt); StringUtil.WriteBIFF8String(output, format, compressed); return(output.BaseStream.Position - position); }
public static long DIMENSIONS(BinaryWriter output, uint rowStart, uint rowStop, ushort colStart, ushort colStop) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 512, 14); output.Write(rowStart); output.Write(rowStop + 1); output.Write(colStart); output.Write(colStop + 1); return(output.BaseStream.Position - position); }
public static long PANE(BinaryWriter output, ushort verticalSplit, ushort horizontalSplit, ushort topVisible, ushort leftVisible, ushort activePane) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 65, 10); output.Write(verticalSplit); output.Write(horizontalSplit); output.Write(topVisible); output.Write(leftVisible); output.Write(activePane); return(output.BaseStream.Position - position); }
public static long DBCELL(BinaryWriter output, uint startRowOffset, List <ushort> streamOffsets) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 215, 4 + 2 * streamOffsets.Count); output.Write(startRowOffset); foreach (ushort streamOffset in streamOffsets) { output.Write(streamOffset); } return(output.BaseStream.Position - position); }
public static long BOF(BinaryWriter output, BOFSubstreamType type) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 2057, 16); output.Write((ushort)1536); output.Write((ushort)type); output.Write((ushort)3515); output.Write((ushort)1996); output.Write(49353u); output.Write(518u); return(output.BaseStream.Position - position); }
public static long BOUNDSHEET(BinaryWriter output, uint offsetToBOF, string sheetName) { long position = output.BaseStream.Position; bool compressed = default(bool); int num = StringUtil.CalcBIFF8StringSize(sheetName, out compressed); RecordFactory.WriteHeader(output, 133, num + 8); output.Write(offsetToBOF); output.Write((ushort)0); output.Write((byte)sheetName.Length); StringUtil.WriteBIFF8String(output, sheetName, false, compressed); return(output.BaseStream.Position - position); }
public static long MARGINS(BinaryWriter output, double topMargin, double bottomMargin, double leftMargin, double rightMargin) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 40, 8); output.Write(topMargin); RecordFactory.WriteHeader(output, 41, 8); output.Write(bottomMargin); RecordFactory.WriteHeader(output, 38, 8); output.Write(leftMargin); RecordFactory.WriteHeader(output, 39, 8); output.Write(rightMargin); return(output.BaseStream.Position - position); }
public static long MULBLANK(BinaryWriter output, ushort row, ushort colFirst, ushort colLast, ushort[] xfIndexes, int numValues) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 190, 6 + 2 * numValues); output.Write(row); output.Write(colFirst); for (int i = 0; i < numValues; i++) { output.Write(xfIndexes[i]); } output.Write(colLast); return(output.BaseStream.Position - position); }
public static long PALETTE(BinaryWriter output, List <BIFF8Color> colors) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 146, 2 + colors.Count * 4); output.Write((ushort)colors.Count); foreach (BIFF8Color color in colors) { output.Write(color.Red); output.Write(color.Green); output.Write(color.Blue); output.Write((byte)0); } return(output.BaseStream.Position - position); }
public static long INDEX(BinaryWriter output, uint firstRow, uint lastRow, List <uint> dbCellOffsets) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 523, 16 + 4 * dbCellOffsets.Count); output.Write(0); output.Write(firstRow); output.Write(lastRow + 1); output.Write(0); foreach (uint dbCellOffset in dbCellOffsets) { output.Write(dbCellOffset); } return(output.BaseStream.Position - position); }
private static int ToColumnWidth(double valueInPoints) { double num = (double)RecordFactory.PointsToPixels(valueInPoints); double num2 = num / 7.0; if (num2 < 0.0) { num2 = 0.0; } else if (num2 > 255.0) { num2 = 255.0; } return((int)(num2 * 256.0)); }
public static long WINDOW2(BinaryWriter output, bool frozen, bool selected) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 574, 18); short aDst = BitField16.PutValue(180, 1536, (short)(selected ? 3 : 0)); aDst = BitField16.PutValue(aDst, 8, (short)(frozen ? 1 : 0)); output.Write(aDst); output.Write((ushort)0); output.Write((ushort)0); output.Write(64); output.Write((ushort)0); output.Write((ushort)0); output.Write(0); return(output.BaseStream.Position - position); }
public static long SETUP(BinaryWriter output, ushort paperSize, bool isPortrait, double headerMargin, double footerMargin) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 161, 34); output.Write(paperSize); output.Write((ushort)100); output.Write((ushort)1); output.Write((ushort)1); output.Write((ushort)1); output.Write((ushort)(isPortrait ? 2 : 0)); output.Write((ushort)0); output.Write((ushort)0); output.Write(headerMargin); output.Write(footerMargin); output.Write((ushort)1); return(output.BaseStream.Position - position); }
public static long WSBOOL(BinaryWriter output, bool rowSummaryBelow, bool colSummaryToRight) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 129, 2); ushort num = 1025; if (rowSummaryBelow) { num = BitField16.PutValue(num, 64, 1); } if (colSummaryToRight) { num = BitField16.PutValue(num, 128, 1); } output.Write(num); return(output.BaseStream.Position - position); }
public static long GUTS(BinaryWriter output, byte maxRowOutline, byte maxColOutline) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 128, 8); if (maxRowOutline > 0) { maxRowOutline = (byte)(maxRowOutline + 1); } if (maxColOutline > 0) { maxColOutline = (byte)(maxColOutline + 1); } output.Write((ushort)(15 * maxRowOutline)); output.Write((ushort)(15 * maxColOutline)); output.Write((ushort)maxRowOutline); output.Write((ushort)maxColOutline); return(output.BaseStream.Position - position); }
public static long FONT(BinaryWriter output, BIFF8Font font) { long position = output.BaseStream.Position; string text = font.Name; if (text.Length > 256) { text = text.Substring(0, 256); } bool flag = true; byte[] buffer = StringUtil.DecodeTo1Byte(text); char[] array = text.ToCharArray(); for (int i = 0; i < text.Length; i++) { if (!flag) { break; } if ((array[i] & 0xFF00) > 0) { flag = false; } } int num = 0; if (flag) { num = text.Length; } else { num = text.Length * 2; buffer = StringUtil.DecodeTo2ByteLE(text); } RecordFactory.WriteHeader(output, 49, 16 + num); output.Write(font.RecordData, 0, font.RecordData.Length); output.Write((byte)text.Length); output.Write(!flag); output.Write(buffer); return(output.BaseStream.Position - position); }
public static long HLINK(BinaryWriter output, HyperlinkInfo link) { long position = output.BaseStream.Position; int num = 40 + (link.Label.Length + 1) * 2 + (link.URL.Length + 1) * 2; if (!link.IsBookmark) { num += 16; } RecordFactory.WriteHeader(output, 440, num); link.WriteToStream(output); output.Write(new Guid("79EAC9D0-BAF9-11CE-8C82-00AA004BA90B").ToByteArray(), 0, 16); output.Write(2u); if (link.IsBookmark) { output.Write(28u); } else { output.Write(23u); } output.Write((uint)(link.Label.Length + 1)); byte[] bytes = RecordFactory.m_uniEncoding.GetBytes(link.Label); output.Write(bytes, 0, bytes.Length); output.Write((ushort)0); if (!link.IsBookmark) { output.Write(new Guid("79EAC9E0-BAF9-11CE-8C82-00AA004BA90B").ToByteArray(), 0, 16); } if (link.IsBookmark) { output.Write((uint)(link.URL.Length + 1)); } else { output.Write((uint)((link.URL.Length + 1) * 2)); } bytes = RecordFactory.m_uniEncoding.GetBytes(link.URL); output.Write(bytes, 0, bytes.Length); output.Write((ushort)0); return(output.BaseStream.Position - position); }
public static long COLINFO(BinaryWriter output, ushort column, double colWidth, ushort outlineLevel, bool collapsed) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 125, 12); output.Write(column); output.Write(column); output.Write((ushort)RecordFactory.ToColumnWidth(colWidth)); output.Write((ushort)15); ushort aDst = 0; outlineLevel = Math.Min(outlineLevel, (ushort)7); outlineLevel = Math.Max(outlineLevel, (ushort)0); aDst = BitField16.PutValue(aDst, 1792, outlineLevel); aDst = BitField16.PutValue(aDst, 4096, (ushort)(collapsed ? 1 : 0)); aDst = BitField16.PutValue(aDst, 1, (ushort)(collapsed ? 1 : 0)); output.Write(aDst); output.Write((ushort)0); return(output.BaseStream.Position - position); }
public static long MERGECELLS(BinaryWriter output, List <AreaInfo> mergeAreas) { long position = output.BaseStream.Position; int num = mergeAreas.Count; IEnumerator <AreaInfo> enumerator = (IEnumerator <AreaInfo>)(object) mergeAreas.GetEnumerator(); while (num > 0) { int num2 = Math.Min(num, 1024); num -= num2; RecordFactory.WriteHeader(output, 229, 2 + num2 * 8); output.Write((ushort)num2); for (int i = 0; i < num2; i++) { enumerator.MoveNext(); enumerator.Current.WriteToStream(output); } } return(output.BaseStream.Position - position); }
public static long ROW(BinaryWriter output, ushort rowIndex, ushort colMin, ushort colMax, ushort rowHeight, ushort outlineLevel, bool collapsed, bool autoSize) { long position = output.BaseStream.Position; RecordFactory.WriteHeader(output, 520, 16); output.Write(rowIndex); output.Write(colMin); output.Write(colMax); output.Write(rowHeight); output.Write((ushort)0); output.Write((ushort)0); ushort aDst = 320; outlineLevel = Math.Min(outlineLevel, (ushort)7); outlineLevel = Math.Max(outlineLevel, (ushort)0); aDst = BitField16.PutValue(aDst, 7, outlineLevel); aDst = BitField16.PutValue(aDst, 64, (ushort)((!autoSize) ? 1 : 0)); aDst = BitField16.PutValue(aDst, 32, (ushort)(collapsed ? 1 : 0)); aDst = BitField16.PutValue(aDst, 16, (ushort)(collapsed ? 1 : 0)); output.Write(aDst); output.Write((ushort)15); return(output.BaseStream.Position - position); }
public static long EXTERNSHEET(BinaryWriter output, ExternSheetInfo externSheetInfo) { long position = output.BaseStream.Position; int num = externSheetInfo.XTIStructures.Count; RecordFactory.WriteHeader(output, 23, 6 * Math.Min(num, 1370) + 2); output.Write(BitConverter.GetBytes((ushort)num)); int num2 = 0; foreach (ExternSheetInfo.XTI xTIStructure in externSheetInfo.XTIStructures) { output.Write(xTIStructure.SupBookIndex); output.Write(xTIStructure.FirstTab); output.Write(xTIStructure.LastTab); num2++; if (num2 == 1370) { num -= 1370; RecordFactory.WriteHeader(output, 60, 6 * Math.Min(num, 1370)); num2 = 0; } } return(output.BaseStream.Position - position); }
public static void WriteToStream(BinaryWriter output, Escher.DrawingGroupContainer dggContainer) { if (dggContainer != null) { int num = 0; uint num2 = dggContainer.Length + 8; uint num3 = 0u; int size; if (num2 > 8224) { size = 8224; num = (int)num2 / 8224; num3 = (uint)(num2 - num * 8224); } else { size = (ushort)num2; } RecordFactory.WriteHeader(output, 235, size); byte[] drawingGroupContainerData = dggContainer.DrawingGroupContainerData; int num4 = 0; MsoDrawingGroup.WriteDGHeader(output, drawingGroupContainerData, ref num4, ref num, num3); drawingGroupContainerData = dggContainer.DrawingGroupData; MsoDrawingGroup.WriteDGHeader(output, drawingGroupContainerData, ref num4, ref num, num3); drawingGroupContainerData = dggContainer.BStoreContainerData; MsoDrawingGroup.WriteDGHeader(output, drawingGroupContainerData, ref num4, ref num, num3); Hashtable bSEList = dggContainer.BSEList; ArrayList blipList = dggContainer.BlipList; int num5 = 0; Stream stream = null; int num6 = 0; byte[] array = MsoDrawingGroup.FillRecordWithBlips(dggContainer, blipList, bSEList, output.BaseStream, ref num5, ref num4, ref stream); if (array == null && num4 < 8224 && num == 1) { MsoDrawingGroup.WriteShapeProperties(dggContainer, output.BaseStream, ref num6, num4); } for (int i = 0; i < num; i++) { int size2 = (i != num - 1) ? 8224 : ((ushort)num3); RecordFactory.WriteHeader(output, 60, size2); num4 = 0; if (array != null) { output.BaseStream.Write(array, 0, array.Length); num4 += array.Length; array = null; } if (stream == null) { array = MsoDrawingGroup.FillRecordWithBlips(dggContainer, blipList, bSEList, output.BaseStream, ref num5, ref num4, ref stream); if (num4 < 8224) { MsoDrawingGroup.WriteShapeProperties(dggContainer, output.BaseStream, ref num6, num4); } } else { int num7 = 8224 - num4; int num8 = (int)(stream.Length - stream.Position); if (num8 <= num7) { if (num8 > 0) { byte[] array2 = new byte[num8]; stream.Read(array2, 0, array2.Length); output.BaseStream.Write(array2, 0, array2.Length); num4 += array2.Length; } dggContainer.StreamList[num5].Offset = -1; stream.Close(); stream = null; num5++; array = MsoDrawingGroup.FillRecordWithBlips(dggContainer, blipList, bSEList, output.BaseStream, ref num5, ref num4, ref stream); if (num4 < 8224) { MsoDrawingGroup.WriteShapeProperties(dggContainer, output.BaseStream, ref num6, num4); } } else { byte[] buffer = new byte[num7]; stream.Read(buffer, 0, num7); output.BaseStream.Write(buffer, 0, num7); dggContainer.StreamList[num5].Offset = (int)stream.Position; } } } output.BaseStream.Write(dggContainer.ShapePropertyData, num6, 50 - num6); } }
public static long BACKGROUNDIMAGE(BinaryWriter output, Stream imageStream, ushort pictureWidth, ushort pictureHeight) { if (imageStream != null && pictureWidth >= 0 && pictureHeight >= 0) { long position = output.BaseStream.Position; int num = pictureWidth * 3; int num2 = num % 4; if (num2 > 0) { num2 = 4 - num2; } int num3 = num2 * pictureHeight; uint num4 = (uint)(imageStream.Length + num3 + 12); imageStream.Position = 0L; uint num5 = 0u; uint num6 = 0u; uint num7 = num4 + 8; if (num7 > 8212) { num5 = num7 / 8212u; num6 = num7 - num5 * 8212; num7 = 8212u; } RecordFactory.WriteHeader(output, 233, (int)num7); output.Write((ushort)9); output.Write((ushort)1); output.Write(num4); output.Write((ushort)12); output.Write((ushort)0); output.Write(pictureWidth); output.Write(pictureHeight); output.Write((ushort)1); output.Write((ushort)24); if (num5 == 0) { byte[] array = new byte[imageStream.Length]; imageStream.Read(array, 0, array.Length); output.Write(array, 0, array.Length); } else { byte[] array2 = new byte[8192]; imageStream.Read(array2, 0, array2.Length); output.Write(array2, 0, array2.Length); for (int i = 0; i < num5; i++) { int num8 = 8212; if (i == num5 - 1) { num8 = (ushort)num6; } RecordFactory.WriteHeader(output, 60, num8); byte[] array3 = new byte[num8]; imageStream.Read(array3, 0, array3.Length); output.Write(array3, 0, array3.Length); } } return(output.BaseStream.Position - position); } return(0L); }