[]
Spread.Sheetsでは、WorksheetクラスのsetFormulaメソッドを使用して、セルに数式を設定できます。 次の図は、さまざまな数式が適用された後の列Bの結果を示しています。
次のサンプルコードは、セルに数式を設定します。
window.onload = function()
{
var spread =
new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
var activeSheet = spread.getActiveSheet();
activeSheet.setRowCount(5);
activeSheet.setColumnCount(2);
activeSheet.getRange(-1, 1, -1, 1)
.backColor("lightYellow")
.width(120);
activeSheet.setValue(0, 0, 10);
activeSheet.setValue(1, 0, 20);
activeSheet.setValue(2, 0, 30);
activeSheet.setValue(3, 0, 40);
activeSheet.setValue(4, 0, 50);
// SUM関数を設定します(全パラメータ値を合計)。
activeSheet.setFormula(0, 1, "SUM(A1:A5)");
// PRODUCT関数を設定します(全パラメータ値を乗算)。
activeSheet.setFormula(1, 1, "PRODUCT(A1:A5)");
// AVERAGE関数を設定します(全パラメータ値の平均を計算)。
activeSheet.setFormula(2, 1, "AVERAGE(A1:A5)");
// セル(0,0)とセル(4,0)の合計を計算します。
activeSheet.setFormula(3, 1, "A1 + A5");
// セル(0,0)の値が10より大きい場合はこの値に2を乗算し、そうでない場合は3を乗算します。
otherwise multiply it by 3. */
activeSheet.setFormula(4, 1, "IF(A1>10, A1*2, A1*3)");
}
数式内で、他のシートを参照できます。
編集状態を維持したまま数式内で他のシートを参照するには、シートタブまたは [すべてのシート]ボタン(ハンバーガーボタン)から対象シートを選択して、そのシートのセル範囲を選択します。
type=warning
メモ:すべてのシートのリストが表示されているときに、キーボードを使用して数式を入力することはできません。いったんシートの他の領域をクリックしてリストを閉じ、数式の編集状態を終了する必要があります。
次の図に示すように、数学 - 3 年生シートの B5 から F5 の値が、「山田 慎吾」シートの合計スコアを計算するために使用されます。
次のサンプルコードは、クロスシート参照を使用します。
window.onload = function () {
// コンストラクターを呼び出してスプレッドシートを作成します。
let spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 2 });
initSpread(spread);
};
function initSpread(spread) {
spread.suspendPaint();
// テンプレートをロードします。
spread.fromJSON(template);
//「山田 慎吾」シートに数式を設定します。
let sheet = spread.getSheetFromName("山田 慎吾")
sheet.setText(3,0,"平均スコア:");
sheet.setFormula(3,1,"=Average('数学 - 3 年生'!C5:G5)");
sheet.setText(4,0,"合計");
sheet.setFormula(4,1, "=Sum('数学 - 3 年生'!C5:G5)");
次の図に示すように、SUBTOTAL数式を設定できます。
次のサンプルコードは、小計を計算する数式を使用します。
$(document).ready(function ()
{
var spread =
new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
{sheetCount:3});
var activeSheet = spread.getActiveSheet();
activeSheet.setColumnCount(2);
activeSheet.options.colHeaderAutoText = GC.Spread.Sheets.HeaderAutoText.blank;
activeSheet.setText(0, 1, "Value", GC.Spread.Sheets.SheetArea.colHeader);
activeSheet.options.gridline = {showHorizontalGridline: false};
activeSheet.setText(3, 0, "Sub-Total1");
activeSheet.setText(7, 0, "Sub-Total2");
activeSheet.setText(8, 0, "Aggregate");
activeSheet.getRange(3, -1, 1, -1).backColor("lemonChiffon");
activeSheet.getRange(7, -1, 1, -1).backColor("lemonChiffon");
activeSheet.getRange(8, -1, 1, -1).backColor("lightPink");
activeSheet.setValue(0, 1, 100);
activeSheet.setValue(1, 1, 200);
activeSheet.setValue(2, 1, 300);
activeSheet.setValue(4, 1, 400);
activeSheet.setValue(5, 1, 500);
activeSheet.setValue(6, 1, 600);
// SUBTOTAL関数を使用して、小計と総計を設定します。
activeSheet.setFormula(3, 1, "SUBTOTAL(9,B1:B3)");
activeSheet.setFormula(7, 1, "SUBTOTAL(9,B5:B7)");
activeSheet.setFormula(8, 1, "SUBTOTAL(9,B1:B7)");
});