|  | /* Copyright (C) 2011  Jan Källman | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  |  | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
|  | * See the GNU Lesser General Public License for more details. | 
|  | * | 
|  | * The GNU Lesser General Public License can be viewed at http://www.opensource.org/licenses/lgpl-license.php | 
|  | * If you unfamiliar with this license or have questions about it, here is an http://www.gnu.org/licenses/gpl-faq.html | 
|  | * | 
|  | * All code and executables are provided "as is" with no warranty either express or implied. | 
|  | * The author accepts no liability for any damage or loss of business that this product may cause. | 
|  | * | 
|  | * Code change notes: | 
|  | * | 
|  | * Author							Change						Date | 
|  | ******************************************************************************* | 
|  | * Mats Alm   		                Added		                2013-12-03 | 
|  | *******************************************************************************/ | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Database; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; | 
|  |  | 
|  | namespace OfficeOpenXml.FormulaParsing.Excel.Functions | 
|  | { | 
|  | public class BuiltInFunctions : FunctionsModule | 
|  | { | 
|  | public BuiltInFunctions() | 
|  | { | 
|  | // Text | 
|  | Functions["len"] = new Len(); | 
|  | Functions["lower"] = new Lower(); | 
|  | Functions["upper"] = new Upper(); | 
|  | Functions["left"] = new Left(); | 
|  | Functions["right"] = new Right(); | 
|  | Functions["mid"] = new Mid(); | 
|  | Functions["replace"] = new Replace(); | 
|  | Functions["rept"] = new Rept(); | 
|  | Functions["substitute"] = new Substitute(); | 
|  | Functions["concatenate"] = new Concatenate(); | 
|  | Functions["char"] = new CharFunction(); | 
|  | Functions["exact"] = new Exact(); | 
|  | Functions["find"] = new Find(); | 
|  | Functions["fixed"] = new Fixed(); | 
|  | Functions["proper"] = new Proper(); | 
|  | Functions["text"] = new Text.Text(); | 
|  | Functions["t"] = new T(); | 
|  | Functions["hyperlink"] = new Hyperlink(); | 
|  | // Numbers | 
|  | Functions["int"] = new CInt(); | 
|  | // Math | 
|  | Functions["abs"] = new Abs(); | 
|  | Functions["asin"] = new Asin(); | 
|  | Functions["asinh"] = new Asinh(); | 
|  | Functions["cos"] = new Cos(); | 
|  | Functions["cosh"] = new Cosh(); | 
|  | Functions["power"] = new Power(); | 
|  | Functions["sign"] = new Sign(); | 
|  | Functions["sqrt"] = new Sqrt(); | 
|  | Functions["sqrtpi"] = new SqrtPi(); | 
|  | Functions["pi"] = new Pi(); | 
|  | Functions["product"] = new Product(); | 
|  | Functions["ceiling"] = new Ceiling(); | 
|  | Functions["count"] = new Count(); | 
|  | Functions["counta"] = new CountA(); | 
|  | Functions["countblank"] = new CountBlank(); | 
|  | Functions["countif"] = new CountIf(); | 
|  | Functions["countifs"] = new CountIfs(); | 
|  | Functions["fact"] = new Fact(); | 
|  | Functions["floor"] = new Floor(); | 
|  | Functions["sin"] = new Sin(); | 
|  | Functions["sinh"] = new Sinh(); | 
|  | Functions["sum"] = new Sum(); | 
|  | Functions["sumif"] = new SumIf(); | 
|  | Functions["sumifs"] = new SumIfs(); | 
|  | Functions["sumproduct"] = new SumProduct(); | 
|  | Functions["sumsq"] = new Sumsq(); | 
|  | Functions["stdev"] = new Stdev(); | 
|  | Functions["stdevp"] = new StdevP(); | 
|  | Functions["stdev.s"] = new Stdev(); | 
|  | Functions["stdev.p"] = new StdevP(); | 
|  | Functions["subtotal"] = new Subtotal(); | 
|  | Functions["exp"] = new Exp(); | 
|  | Functions["log"] = new Log(); | 
|  | Functions["log10"] = new Log10(); | 
|  | Functions["ln"] = new Ln(); | 
|  | Functions["max"] = new Max(); | 
|  | Functions["maxa"] = new Maxa(); | 
|  | Functions["median"] = new Median(); | 
|  | Functions["min"] = new Min(); | 
|  | Functions["mina"] = new Mina(); | 
|  | Functions["mod"] = new Mod(); | 
|  | Functions["average"] = new Average(); | 
|  | Functions["averagea"] = new AverageA(); | 
|  | Functions["averageif"] = new AverageIf(); | 
|  | Functions["averageifs"] = new AverageIfs(); | 
|  | Functions["round"] = new Round(); | 
|  | Functions["rounddown"] = new Rounddown(); | 
|  | Functions["roundup"] = new Roundup(); | 
|  | Functions["rand"] = new Rand(); | 
|  | Functions["randbetween"] = new RandBetween(); | 
|  | Functions["quotient"] = new Quotient(); | 
|  | Functions["trunc"] = new Trunc(); | 
|  | Functions["tan"] = new Tan(); | 
|  | Functions["tanh"] = new Tanh(); | 
|  | Functions["atan"] = new Atan(); | 
|  | Functions["atan2"] = new Atan2(); | 
|  | Functions["atanh"] = new Atanh(); | 
|  | Functions["acos"] = new Acos(); | 
|  | Functions["acosh"] = new Acosh(); | 
|  | Functions["var"] = new Var(); | 
|  | Functions["varp"] = new VarP(); | 
|  | Functions["large"] = new Large(); | 
|  | Functions["small"] = new Small(); | 
|  | Functions["degrees"] = new Degrees(); | 
|  | // Information | 
|  | Functions["isblank"] = new IsBlank(); | 
|  | Functions["isnumber"] = new IsNumber(); | 
|  | Functions["istext"] = new IsText(); | 
|  | Functions["isnontext"] = new IsNonText(); | 
|  | Functions["iserror"] = new IsError(); | 
|  | Functions["iserr"] = new IsErr(); | 
|  | Functions["error.type"] = new ErrorType(); | 
|  | Functions["iseven"] = new IsEven(); | 
|  | Functions["isodd"] = new IsOdd(); | 
|  | Functions["islogical"] = new IsLogical(); | 
|  | Functions["isna"] = new IsNa(); | 
|  | Functions["na"] = new Na(); | 
|  | Functions["n"] = new N(); | 
|  | // Logical | 
|  | Functions["if"] = new If(); | 
|  | Functions["iferror"] = new IfError(); | 
|  | Functions["ifna"] = new IfNa(); | 
|  | Functions["not"] = new Not(); | 
|  | Functions["and"] = new And(); | 
|  | Functions["or"] = new Or(); | 
|  | Functions["true"] = new True(); | 
|  | Functions["false"] = new False(); | 
|  | // Reference and lookup | 
|  | Functions["address"] = new Address(); | 
|  | Functions["hlookup"] = new HLookup(); | 
|  | Functions["vlookup"] = new VLookup(); | 
|  | Functions["lookup"] = new Lookup(); | 
|  | Functions["match"] = new Match(); | 
|  | Functions["row"] = new Row(){SkipArgumentEvaluation = true}; | 
|  | Functions["rows"] = new Rows(){SkipArgumentEvaluation = true}; | 
|  | Functions["column"] = new Column(){SkipArgumentEvaluation = true}; | 
|  | Functions["columns"] = new Columns(){SkipArgumentEvaluation = true}; | 
|  | Functions["choose"] = new Choose(); | 
|  | Functions["index"] = new Index(); | 
|  | Functions["indirect"] = new Indirect(); | 
|  | Functions["offset"] = new Offset(){SkipArgumentEvaluation = true}; | 
|  | // Date | 
|  | Functions["date"] = new Date(); | 
|  | Functions["today"] = new Today(); | 
|  | Functions["now"] = new Now(); | 
|  | Functions["day"] = new Day(); | 
|  | Functions["month"] = new Month(); | 
|  | Functions["year"] = new Year(); | 
|  | Functions["time"] = new Time(); | 
|  | Functions["hour"] = new Hour(); | 
|  | Functions["minute"] = new Minute(); | 
|  | Functions["second"] = new Second(); | 
|  | Functions["weeknum"] = new Weeknum(); | 
|  | Functions["weekday"] = new Weekday(); | 
|  | Functions["days360"] = new Days360(); | 
|  | Functions["yearfrac"] = new Yearfrac(); | 
|  | Functions["edate"] = new Edate(); | 
|  | Functions["eomonth"] = new Eomonth(); | 
|  | Functions["isoweeknum"] = new IsoWeekNum(); | 
|  | Functions["workday"] = new Workday(); | 
|  | // Database | 
|  | Functions["dget"] = new Dget(); | 
|  | Functions["dcount"] = new Dcount(); | 
|  | Functions["dcounta"] = new DcountA(); | 
|  | Functions["dmax"] = new Dmax(); | 
|  | Functions["dmin"] = new Dmin(); | 
|  | Functions["dsum"] = new Dsum(); | 
|  | Functions["daverage"] = new Daverage(); | 
|  | Functions["dvar"] = new Dvar(); | 
|  | Functions["dvarp"] = new Dvarp(); | 
|  | } | 
|  | } | 
|  | } |