こんにちは。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形式のセル参照を入力するとアクティブセルを移動します。
さいごに
弊社WebサイトにはSpreadJSを手軽に体験いただけるデモアプリケーションや無料のトライアル版がございます。今回の記事と併せてこちらも是非、ご確認ください。