[]
        
(Showing Draft Content)

GC.Spread.Sheets.CalcEngine

名前空間: CalcEngine

Spread.Sheets.CalcEngine

Table of contents

Enumerations

関数

関数

evaluateFormula

evaluateFormula(context, formula, baseRow?, baseColumn?, useR1C1?): any

指定した数式を評価します。

実例

var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
sheet = spread.getSheet(0);
sheet.setValue(0, 0, 1);
sheet.setValue(1, 0, 2);
// EvaluateFormula()メソッドを使用し、シートのセルに数式を設定せずに数式を評価します。
var result = GC.Spread.Sheets.CalcEngine.evaluateFormula(sheet, "SUM(A1:A2)", 0, 0);
console.log("SUM(A1:A2) = " + result);

パラメータ

名前 説明
context Object 評価コンテキスト。通常はアクティブシートオブジェクトを使用します。
formula string 数式文字列。
baseRow? number -
baseColumn? number -
useR1C1? boolean -

戻り値

any

数式の評価結果。


expressionToFormula

expressionToFormula(context, expression, baseRow?, baseColumn?, useR1C1?): string

指定した式ツリーを数式文字列に逆解析します。

実例

var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
sheet = spread.getSheet(0);
sheet.setValue(0, 0, 1);
sheet.setValue(0, 1, 2);
sheet.setValue(0, 2, 3);
sheet.addCustomName("customName1", "=12", 0, 0);
sheet.addCustomName("customName2", "Average(20,45)", 0, 0);
sheet.addCustomName("customName3", "=$A$1:$C$1");
sheet.setFormula(1, 0, "customName1");
sheet.setFormula(1, 1, "customName2");
sheet.setFormula(1, 2, "sum(customName3)");
var cname = sheet.getCustomName("customName2");
if (cname instanceof GC.Spread.Sheets.NameInfo) {
    // カスタム名を取得します。
    var name = cname.getName();
    // 式を取得します。
    var expression = cname.getExpression();
    // 式文字列を取得します。
    var expStr = GC.Spread.Sheets.CalcEngine.expressionToFormula(sheet, expression, 0, 0);
    console.log("Name: " + name + " ; Expression: " + expStr);
}

パラメータ

名前 説明
context Object コンテキスト。通常はアクティブシートオブジェクトを使用します。
expression Expression 式ツリー。
baseRow? number -
baseColumn? number -
useR1C1? boolean -

戻り値

string

数式文字列。


formulaToExpression

formulaToExpression(context, formula, baseRow?, baseColumn?, useR1C1?): Expression

指定した数式を式ツリーに解析します。

実例

var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
sheet = spread.getSheet(0);
sheet.setValue(0, 0, 1);
sheet.setValue(0, 1, 2);
sheet.setValue(0, 2, 3);
sheet.getCell(4, 4).formula("=SUM(A1:C1)");
var formula = sheet.getFormula(4, 4);
var expression = GC.Spread.Sheets.CalcEngine.formulaToExpression(sheet, formula, 0, 0);
console.log("Function Name is: " + expression.functionName);

パラメータ

名前 説明
context Object コンテキスト。通常はアクティブシートオブジェクトを使用します。
formula string 数式文字列。
baseRow? number -
baseColumn? number -
useR1C1? boolean -

戻り値

Expression

式ツリー。


formulaToRanges

formulaToRanges(sheet, formula, baseRow?, baseCol?): Object[]

数式の文字列を指定されたセル範囲に変換します。

パラメータ

名前 説明
sheet Worksheet ベースシート。
formula string 数式
baseRow? number 数式の基本行インデックス。
baseCol? number 数式の基本列インデックス。

戻り値

Object[]

数式文字列を参照するセル範囲。


goalSeek

goalSeek(changingSheet, changingRow, changingColumn, formulaSheet, formulaRow, formulaColumn, desiredResult): boolean

あるセルに含まれる数式で目的の結果を得るために別のセルに代入すべき値を探索します。

実例

// 次のサンプルコードは、目標値探索の使用方法を示します。
// ローン額が10000、返済期間が18か月、毎月の返済額が600のローンを組むために必要な金利を求めます。
sheet.setValue(0, 1, 10000); //ローン額
sheet.setValue(1, 1, 18); // 返済月数
sheet.setFormatter(2, 1, "0%"); // 金利
sheet.setFormatter(3, 1, "0.00");
sheet.setFormula(3, 1, "PMT(B3/12,B2,B1)"); // 返済額
GC.Spread.Sheets.CalcEngine.goalSeek(sheet, 2, 1, sheet, 3, 1, -600); // B3の結果は10%

パラメータ

名前 説明
changingSheet Worksheet 調整するセルを含むシート。
changingRow number 調整する値を含むセルの行インデックス。
changingColumn number 調整する値を含むセルの列インデックス。
formulaSheet Worksheet 解決する数式を含むシート。
formulaRow number 解決する数式を含むセルの行インデックス。
formulaColumn number 解決する数式を含むセルの列インデックス。
desiredResult number 必要な数式の結果。

戻り値

boolean

解決が見つかったかどうかを示します。


rangeToFormula

rangeToFormula(range, baseRow?, baseCol?, rangeReferenceRelative?, useR1C1?): string

指定したセル範囲を数式文字列に変換します。

実例

var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
sheet = spread.getSheet(0);
// 設定値
sheet.setValue(0, 0, 1, 3);
sheet.setValue(1, 0, 50, 3);
sheet.setValue(2, 0, 100, 3);
sheet.setValue(3, 0, 2, 3);
sheet.setValue(4, 0, 60, 3);
sheet.setValue(5, 0, 90, 3);
sheet.clearSelection();
// 選択を追加します。
sheet.addSelection(2, 0, 3, 1);
var range = sheet.getSelections();
// 範囲文字列を取得します。
var rangeStr = GC.Spread.Sheets.CalcEngine.rangeToFormula(range[0]);
// 選択した範囲を使用して数式を作成します。
var formula = "Sum(" + rangeStr + ")";
// シートのセルに数式を設定します。
sheet.setFormula(5, 5, formula, GC.Spread.Sheets.SheetArea.viewport);

パラメータ

名前 説明
range Range シートのセル範囲。
baseRow? number -
baseCol? number -
rangeReferenceRelative? RangeReferenceRelative -
useR1C1? boolean -

戻り値

string

指定したセル範囲を参照する数式文字列。


rangesToFormula

rangesToFormula(ranges, baseRow?, baseCol?, rangeReferenceRelative?, useR1C1?): string

指定したセル範囲を数式文字列に変換します。

実例

spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
sheet = spread.getSheet(0);
// 設定値
sheet.setValue(0, 0, 1, 3);
sheet.setValue(1, 0, 50, 3);
sheet.setValue(2, 0, 100, 3);
sheet.setValue(3, 0, 2, 3);
sheet.setValue(4, 0, 60, 3);
sheet.setValue(5, 0, 90, 3);
sheet.setValue(6, 0, 3, 3);
sheet.setValue(7, 0, 40, 3);
sheet.clearSelection();
// 選択を追加します。
sheet.addSelection(0, 0, 3, 1);
sheet.addSelection(5, 0, 2, 1);
var ranges = sheet.getSelections();
// 範囲文字列を取得します。
var rangesStr = GC.Spread.Sheets.CalcEngine.rangesToFormula(ranges);
// 選択した範囲を使用して数式を作成します。
var formula = "Sum(" + rangesStr + ")";
// シートのセルに数式を設定します。
sheet.setFormula(5, 5, formula, GC.Spread.Sheets.SheetArea.viewport);

パラメータ

名前 説明
ranges Range[] シートのセル範囲。
baseRow? number -
baseCol? number -
rangeReferenceRelative? RangeReferenceRelative -
useR1C1? boolean -

戻り値

string

指定したセル範囲を参照する数式文字列。