GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の最新情報をお届けします。製品のTIPSや発売情報、イベントのお知らせなどをいち早く発信中です。

JavaScriptから組み込み関数を使用する

こんにちは。SPREADチームでテクニカルサポートを担当している小津です。 SpreadJSには、300種類を超えるExcel互換の関数が組み込まれているのは、ご存じの方も多いのではと思います。JavaScriptに限らず.NET版のSPREADでも、組み込み関数はすっかりおなじみの機能ですよね。

さて、この関数、コードから実行できることをご存じでしょうか。JavaScriptからも、とても簡単に使用できます。お客様からも、ときどきあるお問合せですが、

  • A1形式のセル参照から、行および列インデックスを取得したい
  • 反対に、行および列インデックスからA1形式のセル参照を取得したい

これらのご要望、ROW, COLUMN, ADDRESSといった組み込み関数を使用すると容易に実現できます。 SpreadJSのCalcEngineタイプが提供するevaluateFormulaメソッドで、JavaScriptから数式を実行できます。以下、ROWおよびCOLUMN関数を実行する例です。

var spCalc = GC.Spread.Sheets.CalcEngine;
//ROW関数を実行
var row = spCalc.evaluateFormula(sheet, 'ROW(A1)', 0, 0, false);
//COLUMN関数を実行
var col = spCalc.evaluateFormula(sheet, 'COLUMN(A1)', 0, 0, false);

evaluateFormulaメソッドの引数に、数式を指定します。メソッドの戻り値が、数式の戻り値です。 実にシンプルです。

以下、上の方法を使用したサンプルを作成してみました。 テキストボックスに、A1形式のセル参照を入力するとアクティブセルを移動します。