69 lines
1.9 KiB
C#
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;
|
|
}
|
|
}
|