123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Runtime.InteropServices;
- using Biff8Excel.Interfaces;
- namespace Biff8Excel.Records
- {
- internal enum EnumBuiltInStles
- {
- bsNormal = 0x0,
- bsComma = 0x3,
- bsCurrency = 0x4,
- bsPercent = 0x5,
- bsCommaZero = 0x6,
- bsCurrencyZero = 0x7
- }
- internal enum EnumStyleType
- {
- sUserDefined = 0x0,
- sBuiltIn = 0x1
- }
- [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 1)]
- struct RecordStyle
- {
- public ushort opcode;
- public ushort length;
- public ushort xfindex;
- public ushort nameLength;
- }
- [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 1)]
- struct RecordStyle2
- {
- public ushort opcode;
- public ushort length;
- public ushort xfindex;
- [MarshalAs(UnmanagedType.U1, SizeConst = 1)]public byte builtinstyle;
- }
- internal class Style : IRecords
- {
- RecordStyle style;
- EnumStyleType stype;
- string m_name;
- byte m_builtinstyle;
- public Style()
- {
- style.opcode = 0x293;
- style.xfindex = 0x0;
- stype = EnumStyleType.sBuiltIn;
- }
- public ushort ID
- {
- get { return style.opcode; }
- }
- public ushort RecordSize
- {
- get { return 22; }
- }
- public EnumStyleType StyleType
- {
- set
- {
- stype = value;
- int i = (int)value;
- i <<= 15; //Set the last bit
- style.xfindex = (ushort)((ushort)style.xfindex | (ushort)i);
- }
- }
- public ushort XFIndex
- {
- set { style.xfindex |= value; }
- }
- public EnumBuiltInStles BuiltinStyle
- {
- set
- {
- m_builtinstyle = (byte)value;
- }
- }
- public string UserStyleName
- {
- set
- {
- style.nameLength = (ushort)Globals.GetDefaultBytesLength(value);
- m_name = value;
- }
- }
- #region IRecords ³ÉÔ±
- public byte[] GetByte()
- {
- byte[] b;
- int ln = (stype == EnumStyleType.sBuiltIn ? 8 : (Globals.GetDefaultBytesLength(m_name) + 8));
- b = new byte[ln];
- style.length = (ushort)(b.Length - 4);
- if (stype == EnumStyleType.sBuiltIn)
- {
- RecordStyle2 st;
- st.opcode = style.opcode;
- st.length = style.length;
- st.xfindex = style.xfindex;
- st.builtinstyle = m_builtinstyle;
- Globals.GetStructToBytes(st).CopyTo(b, 0);
- }
- else
- {
- Globals.GetStructToBytes(style).CopyTo(b, 0);
- Globals.GetDefaultBytes(m_name).CopyTo(b, 8);
- }
- return b;
- }
- #endregion
- }
- }
|