SpreadJSを使用すると、セル参照を使用してさまざまな操作を実行できます。
次のサンプルコードは、expressionToFormulaメソッドを使用して式ツリーを数式文字列に変換します。
JavaScript |
コードのコピー
|
---|---|
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) { //CustomNameを取得します。 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); } |
次のサンプルコードは、formulaToExpressionメソッドを使用して数式を式ツリーに変換します。
JavaScript |
コードのコピー
|
---|---|
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); |
次のサンプルコードは、formulaToRangesメソッドを使用して数式文字列をセル範囲に変換します。
JavaScript |
コードのコピー
|
---|---|
var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 }); sheet = spread.getSheet(0); //formulaToRangesメソッドを使用してセル範囲を作成します。 cellRanges = GC.Spread.Sheets.CalcEngine.formulaToRanges(sheet, 'B3:D5', 0, 0); //セル範囲の行または列のインデックス、および行数または列数を数式に取得します。 console.log("Starting Row Index of cell range 'B3:D5' is " + cellRanges[0].ranges[0].row); console.log("Starting Column Index of cell range 'B3:D5' is " + cellRanges[0].ranges[0].col); console.log("RowCount of cell range 'B3:D5' is " + cellRanges[0].ranges[0].rowCount); console.log("ColCount of cell range 'B3:D5' is " + cellRanges[0].ranges[0].colCount); |
次のサンプルコードは、evaluateFormulaメソッドを使用して数式を評価します。
JavaScript |
コードのコピー
|
---|---|
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); |
goalSeek メソッドを使用してあるセルに含まれる数式で目的の結果を得るために別のセルに代入すべき値を探索できます。
JavaScript |
コードのコピー
|
---|---|
// 次のサンプルコードは、目標値探索の使用方法を示します。 // ローン額が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% |