Class CalculationData
Namespace: Aspose.Cells
Assembly: Aspose.Cells.dll (25.2.0)
関数名、パラメータなど、1つの関数を計算する際に必要なデータを表します。
public class CalculationData
継承
継承されたメンバー
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
備考
このクラスによって提供されるすべてのオブジェクトは「読み取り専用」です。
ユーザーは、数式計算プロセス中にワークブック内のデータを変更してはいけません。
そうしないと、予期しない結果や例外が発生する可能性があります。
プロパティ
CalculatedValue
この関数の計算された値を取得または設定します。
public object CalculatedValue { get; set; }
プロパティ値
備考
ユーザーは、エンジンがサポートする関数のためにこのプロパティをカスタム計算エンジン内で設定する必要があります。
設定された値は、後でこのプロパティを取得する際に返されます。
設定された値は、Aspose.Cells.Cell.Valueの可能な型、またはそのような値の配列、または範囲、名前、参照エリアである可能性があります。
値を設定する前にこのプロパティを取得すると、Aspose.Cellsのデフォルト計算エンジンによって関数が計算され、その後計算された値が返されます(一般的にユーザー定義関数の場合、#NAME? であるべきです)。
Cell
関数が存在するセルオブジェクトを取得します。
public Cell Cell { get; }
プロパティ値
備考
セルに設定せずに数式を計算する場合、
例えば、Aspose.Cells.Worksheet.CalculateFormula(System.String,Aspose.Cells.CalculationOptions)によって、
数式はA1セルに設定されたかのように計算されます。
そのため、Aspose.Cells.CalculationData.CellRowとAspose.Cells.CalculationData.CellColumnは0になります。
ただし、ワークシートのA1セルはインスタンス化されていない可能性があります。
そのため、このような状況ではこのプロパティはnullになります。
CellColumn
関数が存在するセルの列インデックスを取得します。
public int CellColumn { get; }
プロパティ値
CellRow
関数が存在するセルの行インデックスを取得します。
public int CellRow { get; }
プロパティ値
FunctionName
計算される関数名を取得します。
public string FunctionName { get; }
プロパティ値
ParamCount
パラメータのカウントを取得します。
public int ParamCount { get; }
プロパティ値
Workbook
関数が存在するワークブックオブジェクトを取得します。
public Workbook Workbook { get; }
プロパティ値
Worksheet
関数が存在するワークシートオブジェクトを取得します。
public Worksheet Worksheet { get; }
プロパティ値
メソッド
GetParamText(int)
指定されたインデックスのパラメータのリテラルテキストを取得します。
public string GetParamText(int index)
パラメータ
index
int
パラメータのインデックス(0ベース)
戻り値
パラメータのリテラルテキスト
GetParamValue(int)
指定されたインデックスのパラメータの表現された値オブジェクトを取得します。
public object GetParamValue(int index)
パラメータ
index
int
パラメータのインデックス(0ベース)
戻り値
パラメータの計算された値。
備考
1つのパラメータの場合:
プレーン値であれば、プレーン値自体を返します;
参照であれば、ReferredAreaオブジェクトを返します;
複数の値を持つデータセットを参照している場合、オブジェクトの配列を返します;
計算が必要な式の一種であれば、値モードで計算され、一般的に現在のセルベースに基づいて単一の値が返されます。例えば、D2の数式の1つのパラメータがA:A+B:Bであれば、A2+B2が計算されて返されます。 ただし、このパラメータが配列モードとして指定されている場合 (Aspose.Cells.Workbook.UpdateCustomFunctionDefinition(Aspose.Cells.CustomFunctionDefinition)またはAspose.Cells.FormulaParseOptions.CustomFunctionDefinitionによって)、 A1+B1、A2+B2、...の項目を持つ配列(object[][])が返されます。
GetParamValueInArrayMode(int, int, int)
指定されたインデックスのパラメータの値を取得します。
パラメータが計算が必要な式の一種であれば、配列モードで計算されます。
public object[][] GetParamValueInArrayMode(int index, int maxRowCount, int maxColumnCount)
パラメータ
index
int
パラメータのインデックス(0ベース)
maxRowCount
int
返される配列の行数制限。
非正または実際の行数を超える場合、実際の行数が使用されます。
maxColumnCount
int
返される配列の列数制限。
非正または実際の列数を超える場合、実際の列数が使用されます。
戻り値
object[][]
指定されたパラメータによって表されるすべての項目を含む配列。
備考
計算が必要な式の場合、A:A+B:Bを例にとると:
値モードでは、現在のセルベースに基づいて単一の値に計算されます。
しかし、配列モードでは、A1+B1、A2+B2、A3+B3、…のすべての値が計算され、返される配列を構成するために使用されます。
このような状況では、行/列数の制限を指定する方が良いです
(例えば、Aspose.Cells.Cells.MaxDataRowやAspose.Cells.Cells.MaxDataColumnに基づいて)、
さもなければ、返される大きな配列が無駄なデータの大量によってメモリコストを増加させる可能性があります。