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

69 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading;
namespace CPF.ReoGrid.Formula
{
public class FormulaExtension
{
static FormulaExtension()
{
try
{
FormulaExtension.ParameterSeparator = Thread.CurrentThread.CurrentCulture.TextInfo.ListSeparator;
FormulaExtension.NumberDecimalSeparator = Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator;
}
catch
{
}
}
public static Dictionary<string, Func<Cell, object[], object>> CustomFunctions
{
get
{
bool flag = FormulaExtension.customFunctions == null;
if (flag)
{
FormulaExtension.customFunctions = new Dictionary<string, Func<Cell, object[], object>>();
}
return FormulaExtension.customFunctions;
}
}
public static Func<Cell, string, object> NameReferenceProvider { get; set; }
public static Func<Worksheet, CellPosition, Cell, object> EmptyCellReferenceProvider { get; set; }
public static void ChangeToStandardFunctionNames()
{
bool flag = FormulaExtension.standardFunctionNameProvider == null;
if (flag)
{
FormulaExtension.standardFunctionNameProvider = new StandardFunctionNameProvider();
}
Evaluator.functionNameProvider = FormulaExtension.standardFunctionNameProvider;
}
public static void ChangeToRussianFunctionNames()
{
bool flag = FormulaExtension.russianFunctionNameProvider == null;
if (flag)
{
FormulaExtension.russianFunctionNameProvider = new RussianFunctionNameProvider();
}
Evaluator.functionNameProvider = FormulaExtension.russianFunctionNameProvider;
}
public static string ParameterSeparator = ",";
public static string NumberDecimalSeparator = ".";
internal static Dictionary<string, Func<Cell, object[], object>> customFunctions;
private static StandardFunctionNameProvider standardFunctionNameProvider = null;
private static RussianFunctionNameProvider russianFunctionNameProvider = null;
}
}