📄 function.cs
字号:
using System;
using System.Collections;
using Microsoft.Fawvw.Components.NExcel.ExcelCommon;
namespace Microsoft.Fawvw.Components.NExcel.Biff.Formula
{
/// <summary> An enumeration detailing the Excel function codes</summary>
class Function
{
/// <summary> Gets the function code - used when generating token data
///
/// </summary>
/// <returns> the code
/// </returns>
virtual internal int Code
{
get
{
return code;
}
}
/// <summary> Gets the property name. Used by the FunctionNames object when initializing
/// the locale specific names
///
/// </summary>
/// <returns> the property name for this function
/// </returns>
virtual internal string PropertyName
{
get
{
return name;
}
}
/// <summary> Gets the number of arguments for this function</summary>
virtual internal int NumArgs
{
get
{
return numArgs;
}
}
/// <summary> The logger</summary>
private static Logger logger;
/// <summary> The code which applies to this function</summary>
private int code;
/// <summary> The property name of this function</summary>
private string name;
/// <summary> The number of args this function expects</summary>
private int numArgs;
/// <summary> All available functions. This attribute is package protected in order
/// to enable the FunctionNames to initialize
/// </summary>
internal static Function[] functions;
/// <summary> Constructor
/// Sets the token value and adds this token to the array of all token
///
/// </summary>
/// <param name="v">the biff code for the token
/// </param>
private Function(int v, string s, int a)
{
code = v;
name = s;
numArgs = a;
// Grow the array
Function[] newarray = new Function[functions.Length + 1];
Array.Copy(functions, 0, newarray, 0, functions.Length);
newarray[functions.Length] = this;
functions = newarray;
}
/// <summary> Standard hash code method
///
/// </summary>
/// <returns> the hash code
/// </returns>
public override int GetHashCode()
{
return code;
}
/// <summary> Gets the function name</summary>
/// <param name="ws">the workbook settings
/// </param>
/// <returns> the function name
/// </returns>
internal virtual string getName(WorkbookSettings ws)
{
FunctionNames fn = ws.FunctionNames;
return fn.getName(this);
}
/// <summary> Gets the type object from its integer value</summary>
public static Function getFunction(int v)
{
Function f = null;
for (int i = 0; i < functions.Length; i++)
{
if (functions[i].code == v)
{
f = functions[i];
break;
}
}
return f != null?f:UNKNOWN;
}
/// <summary> Gets the type object from its string value. Used when parsing strings</summary>
/// <param name="">v
/// </param>
/// <param name="ws">the workbook settings
/// </param>
/// <returns> the function
/// </returns>
public static Function getFunction(string v, WorkbookSettings ws)
{
FunctionNames fn = ws.FunctionNames;
Function f = fn.getFunction(v);
return f != null?f:UNKNOWN;
}
// The functions
public static readonly Function COUNT;
public static readonly Function ATTRIBUTE;
public static readonly Function ISNA;
public static readonly Function ISERROR;
public static readonly Function SUM;
public static readonly Function AVERAGE;
public static readonly Function MIN;
public static readonly Function MAX;
public static readonly Function ROW;
public static readonly Function COLUMN;
public static readonly Function NA;
public static readonly Function NPV;
public static readonly Function STDEV;
public static readonly Function DOLLAR;
public static readonly Function FIXED;
public static readonly Function SIN;
public static readonly Function COS;
public static readonly Function TAN;
public static readonly Function ATAN;
public static readonly Function PI;
public static readonly Function SQRT;
public static readonly Function EXP;
public static readonly Function LN;
public static readonly Function LOG10;
public static readonly Function ABS;
public static readonly Function INT;
public static readonly Function SIGN;
public static readonly Function ROUND;
//public static final Function LOOKUP;
public static readonly Function INDEX;
//public static final Function REPT;
public static readonly Function MID;
public static readonly Function LEN;
public static readonly Function VALUE;
public static readonly Function TRUE_Renamed;
public static readonly Function FALSE_Renamed;
public static readonly Function AND;
public static readonly Function OR;
public static readonly Function NOT;
public static readonly Function MOD;
public static readonly Function DCOUNT;
public static readonly Function DSUM;
public static readonly Function DAVERAGE;
public static readonly Function DMIN;
public static readonly Function DMAX;
public static readonly Function DSTDEV;
public static readonly Function VAR;
public static readonly Function DVAR;
public static readonly Function TEXT;
public static readonly Function LINEST;
public static readonly Function TREND;
public static readonly Function LOGEST;
public static readonly Function GROWTH;
//public static final Function GOTO;
//public static final Function HALT;
public static readonly Function PV;
public static readonly Function FV;
public static readonly Function NPER;
public static readonly Function PMT;
public static readonly Function RATE;
//public static final Function MIRR;
//public static final Function IRR;
public static readonly Function RAND;
public static readonly Function MATCH;
public static readonly Function DATE;
public static readonly Function TIME;
public static readonly Function DAY;
public static readonly Function MONTH;
public static readonly Function YEAR;
public static readonly Function WEEKDAY;
public static readonly Function HOUR;
public static readonly Function MINUTE;
public static readonly Function SECOND;
public static readonly Function NOW;
public static readonly Function AREAS;
public static readonly Function ROWS;
public static readonly Function COLUMNS;
public static readonly Function OFFSET;
//public static final Function ABSREF;
//public static final Function RELREF;
//public static final Function ARGUMENT;
//public static final Function SEARCH;
public static readonly Function TRANSPOSE;
public static readonly Function ERROR;
//public static final Function STEP;
public static readonly Function TYPE;
//public static final Function ECHO;
//public static final Function SETNAME;
//public static final Function CALLER;
//public static final Function DEREF;
//public static final Function WINDOWS;
//public static final Function SERIES;
//public static final Function DOCUMENTS;
//public static final Function ACTIVECELL;
//public static final Function SELECTION;
//public static final Function RESULT;
public static readonly Function ATAN2;
public static readonly Function ASIN;
public static readonly Function ACOS;
public static readonly Function CHOOSE;
public static readonly Function HLOOKUP;
public static readonly Function VLOOKUP;
//public static final Function LINKS;
//public static final Function INPUT;
public static readonly Function ISREF;
//public static final Function GETFORMULA;
//public static final Function GETNAME;
//public static final Function SETVALUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -