dg.cs

来自「Excel的操作,其中可以读取及写入Excel 文件」· CS 代码 · 共 81 行

CS
81
字号
using System;

using Microsoft.Fawvw.Components.NExcel.Biff;

namespace Microsoft.Fawvw.Components.NExcel.Biff.Drawing
{
	
	/// <summary> The Drawing Group</summary>
	class Dg:EscherAtom
	{
		/// <summary> Gets the drawing id
		/// 
		/// </summary>
		/// <returns> the drawing id
		/// </returns>
		virtual public int DrawingId
		{
			get
			{
				return drawingId;
			}
			
		}
		/// <summary> The data</summary>
		new private sbyte[] data;
		
		/// <summary> The id of this drawing</summary>
		private int drawingId;
		
		/// <summary> The number of shapes</summary>
		private int shapeCount;
		
		/// <summary> The seed for drawing ids</summary>
		private int seed;
		
		/// <summary> Constructor invoked when reading in an escher stream
		/// 
		/// </summary>
		/// <param name="erd">the escher record
		/// </param>
		public Dg(EscherRecordData erd):base(erd)
		{
			drawingId = Instance;
			
			sbyte[] bytes = Bytes;
			shapeCount = IntegerHelper.getInt(bytes[0], bytes[1], bytes[2], bytes[3]);
			seed = IntegerHelper.getInt(bytes[4], bytes[5], bytes[6], bytes[7]);
		}
		
		/// <summary> Constructor invoked when writing out an escher stream
		/// 
		/// </summary>
		/// <param name="numDrawings">the number of drawings
		/// </param>
		public Dg(int numDrawings):base(EscherRecordType.DG)
		{
			drawingId = 1;
			shapeCount = numDrawings + 1;
			seed = 1024 + shapeCount + 1;
			Instance = drawingId;
		}
		
		/// <summary> Used to generate the drawing data
		/// 
		/// </summary>
		/// <returns> the data
		/// </returns>
		public override sbyte[] Data
		{
		get
		{
		data = new sbyte[8];
		IntegerHelper.getFourBytes(shapeCount, data, 0);
		IntegerHelper.getFourBytes(seed, data, 4);
		
		return setHeaderData(data);
		}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?