Пример #1
0
        internal TransformResult CreateRKorNumberRecord(ValueType val, CellRenderingDetails details, out uint?rkValue)
        {
            if (val == null)
            {
                rkValue = null;
                return(TransformResult.Null);
            }
            double num2;

            if (val is float)
            {
                float num = (float)(object)val;
                num2 = ((num == float.PositiveInfinity) ? double.PositiveInfinity : ((num == float.NegativeInfinity) ? double.NegativeInfinity : ((num != float.NaN) ? Convert.ToDouble(val, CultureInfo.InvariantCulture) : double.NaN)));
            }
            else
            {
                num2 = Convert.ToDouble(val, CultureInfo.InvariantCulture);
            }
            rkValue = RKEncoder.EncodeRK(num2);
            if (rkValue.HasValue)
            {
                OnCellBegin(638, details.Column);
            }
            else
            {
                OnCellBegin(515, details.Column);
                RecordFactory.NUMBER(details.Output, (ushort)details.Row, (ushort)details.Column, details.Ixfe, num2);
            }
            return(TransformResult.Handled);
        }
Пример #2
0
 private TransformResult CreateBlankRecord(CellRenderingDetails details)
 {
     OnCellBegin(513, details.Column);
     m_recType        = 513;
     m_valueCol1      = ((m_counter == 0) ? details.Column : m_valueCol1);
     m_valueCol2      = details.Column;
     m_xfs[m_counter] = details.Ixfe;
     m_counter++;
     return(TransformResult.Handled);
 }
Пример #3
0
        internal TransformResult CreateBoolRecord(object val, CellRenderingDetails details)
        {
            if (val == null)
            {
                return(TransformResult.Null);
            }
            bool value = Convert.ToBoolean(val, CultureInfo.InvariantCulture);

            return(CreateBoolErrRecord(Convert.ToByte(value), isError: false, details));
        }
Пример #4
0
 private TransformResult CreateRKRecord(uint value, CellRenderingDetails details)
 {
     OnCellBegin(638, details.Column);
     m_recType        = 638;
     m_valueCol1      = ((m_counter == 0) ? details.Column : m_valueCol1);
     m_valueCol2      = details.Column;
     m_xfs[m_counter] = details.Ixfe;
     m_rks[m_counter] = value;
     m_counter++;
     return(TransformResult.Handled);
 }
Пример #5
0
        private TransformResult CreateRichStringRecord(RichTextInfo richTextInfo, CellRenderingDetails details)
        {
            StringWrapperBIFF8 stringWrapperBIFF = richTextInfo.CompleteRun();

            if (stringWrapperBIFF.Cch > 32767)
            {
                throw new ReportRenderingException(ExcelRenderRes.MaxStringLengthExceeded(details.Row.ToString(CultureInfo.InvariantCulture), details.Column.ToString(CultureInfo.InvariantCulture)));
            }
            int isst = m_stringHandler.AddString(stringWrapperBIFF);

            OnCellBegin(253, details.Column);
            RecordFactory.LABELSST(details.Output, (ushort)details.Row, (ushort)details.Column, details.Ixfe, (uint)isst);
            return(TransformResult.Handled);
        }
Пример #6
0
 internal TransformResult CreateStringRecord(string input, CellRenderingDetails details)
 {
     if (input.Length > 32767)
     {
         throw new ReportRenderingException(ExcelRenderRes.MaxStringLengthExceeded(details.Row.ToString(CultureInfo.InvariantCulture), details.Column.ToString(CultureInfo.InvariantCulture)));
     }
     if (input.Length < 256)
     {
         OnCellBegin(516, details.Column);
         RecordFactory.LABEL(details.Output, (ushort)details.Row, (ushort)details.Column, details.Ixfe, input.ToString());
     }
     else
     {
         int isst = m_stringHandler.AddString(input.ToString());
         OnCellBegin(253, details.Column);
         RecordFactory.LABELSST(details.Output, (ushort)details.Row, (ushort)details.Column, details.Ixfe, (uint)isst);
     }
     return(TransformResult.Handled);
 }
Пример #7
0
 private TransformResult CreateBoolErrRecord(byte val, bool isError, CellRenderingDetails details)
 {
     OnCellBegin(517, details.Column);
     RecordFactory.BOOLERR(details.Output, (ushort)details.Row, (ushort)details.Column, details.Ixfe, val, isError);
     return(TransformResult.Handled);
 }
Пример #8
0
 internal TransformResult CreateErrorRecord(ExcelErrorCode errorCode, CellRenderingDetails details)
 {
     return(CreateBoolErrRecord((byte)errorCode, isError: true, details));
 }