CPF/CPF.ReoGrid/DataFormat/GeneralDataFormatter.cs
2024-06-24 10:15:59 +08:00

115 lines
2.0 KiB
C#

using System;
using CPF.ReoGrid.Core;
namespace CPF.ReoGrid.DataFormat
{
internal class GeneralDataFormatter : IDataFormatter
{
public string FormatCell(Cell cell)
{
object innerData = cell.InnerData;
bool flag = false;
double num = 0.0;
bool flag2 = innerData is int;
if (flag2)
{
num = (double)((int)innerData);
flag = true;
}
else
{
bool flag3 = innerData is double;
if (flag3)
{
num = (double)innerData;
flag = true;
}
else
{
bool flag4 = innerData is float;
if (flag4)
{
num = (double)((float)innerData);
flag = true;
}
else
{
bool flag5 = innerData is long;
if (flag5)
{
num = (double)((long)innerData);
flag = true;
}
else
{
bool flag6 = innerData is short;
if (flag6)
{
num = (double)((short)innerData);
flag = true;
}
else
{
bool flag7 = innerData is decimal;
if (flag7)
{
num = (double)((decimal)innerData);
flag = true;
}
else
{
bool flag8 = innerData is string;
if (flag8)
{
string text = (string)innerData;
bool flag9 = text.StartsWith(" ") || text.EndsWith(" ");
if (flag9)
{
text = text.Trim();
}
flag = double.TryParse(text, out num);
bool flag10 = flag;
if (flag10)
{
cell.InnerData = num;
}
}
}
}
}
}
}
}
bool flag11 = flag;
string result;
if (flag11)
{
bool flag12 = cell.InnerStyle.HAlign == ReoGridHorAlign.General;
if (flag12)
{
cell.RenderHorAlign = ReoGridRenderHorAlign.Right;
}
result = Convert.ToString(num);
}
else
{
result = null;
}
return result;
}
public string[] Formats
{
get
{
return null;
}
}
public bool PerformTestFormat()
{
return true;
}
}
}