Пример #1
0
        /*
         * public FormulaFlags Flags
         * {
         *  get
         *  {
         *      LazyInit();
         *      return _flags;
         *  }
         * }
         */

        private void LazyInit()
        {
            if (_initialized)
            {
                return;
            }
            _initialized = true;

            if (_biffVersion == 2)
            {
                // _flags = (FormulaFlags)ReadUInt16(0xF);
                _xNumValue   = ReadDouble(0x7);
                _formulaType = FormulaValueType.Number;
            }
            else
            {
                // _flags = (FormulaFlags)ReadUInt16(0xE);
                var formulaValueExprO = ReadUInt16(0xC);
                if (formulaValueExprO != 0xFFFF)
                {
                    _formulaType = FormulaValueType.Number;
                    _xNumValue   = ReadDouble(0x6);
                }
                else
                {
                    // var formulaLength = ReadByte(0xF);
                    var formulaValueByte1 = ReadByte(0x6);
                    var formulaValueByte3 = ReadByte(0x8);
                    switch (formulaValueByte1)
                    {
                    case 0x00:
                        _formulaType = FormulaValueType.String;
                        break;

                    case 0x01:
                        _formulaType  = FormulaValueType.Boolean;
                        _booleanValue = formulaValueByte3 != 0;
                        break;

                    case 0x02:
                        _formulaType = FormulaValueType.Error;
                        _errorValue  = (CellError)formulaValueByte3;
                        break;

                    case 0x03:
                        _formulaType = FormulaValueType.EmptyString;
                        break;

                    default:
                        _formulaType = FormulaValueType.Unknown;
                        break;
                    }
                }
            }
        }
Пример #2
0
 public CellValue(FormulaValueType fvt, string str)
 {
     m_Fvt = fvt;
     m_Str = str;
 }