[]
▸ 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(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(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 |
- |
式ツリー。
▸ formulaToRanges(sheet
, formula
, baseRow?
, baseCol?
): Object
[]
数式の文字列を指定されたセル範囲に変換します。
名前 | 型 | 説明 |
---|---|---|
sheet |
Worksheet |
ベースシート。 |
formula |
string |
数式 |
baseRow? |
number |
数式の基本行インデックス。 |
baseCol? |
number |
数式の基本列インデックス。 |
Object
[]
数式文字列を参照するセル範囲。
▸ 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(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(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
指定したセル範囲を参照する数式文字列。