Office関連

[Excel Services ECMAScript]タイマーでグラフを描画する。

タイマーで特定のセルの値を増やしていき、それに合わせてグラフを描画してみました。

<script type="text/javascript" src="http://r.office.microsoft.com/r/rlidExcelWLJS?v=1&kip=1"></script>
<script type="text/javascript">
    var timer;
    var num = 0;
    var fileToken = "SD92A165759188B352!267/-7880906317294423214/";

    if (window.attachEvent) {
        window.attachEvent("onload", loadEwaOnPageLoad);
    } else {
        window.addEventListener("DOMContentLoaded", loadEwaOnPageLoad, false);
    }

    function loadEwaOnPageLoad() {
        var props = {
            uiOptions: {
                showGridlines: false,
                showRowColumnHeaders: false,
                showParametersTaskPane: false,
                selectedCell: "'Sheet1'!A9"
            },
            interactivityOptions: { }
        };

        Ewa.EwaControl.loadEwaAsync(fileToken, "myExcelDiv", props, onEwaLoaded);
    }

    function onEwaLoaded(result) {
        ewa = Ewa.EwaControl.getInstances().getItem(0);
    }
    
    function startTimer() {
        timer = setInterval("timerProc()",800);
    }
    
    function stopTimer() {
        clearInterval(timer);
    }
    
    function timerProc() {
        num++;
        if (num > 10) {num = 1;}
        var ary = new Array();
        ary[0] = new Array();
        ary[0][0] = num;
        ewa.getActiveWorkbook().getSheets().getItemByName("Sheet1").getRange(0,0,1,1).setValuesAsync(ary,setRangeValue,null);
    }
    
    function setRangeValue(asyncResult) {
        if (asyncResult.getCode() != 0) {
            alert("Err:" + asyncResult.getDescription());
        }
    }
</script>
<input type="button" value="タイマースタート" onclick="startTimer();"></input><br>
<input type="button" value="タイマーストップ" onclick="stopTimer();"></input>
<div id="myExcelDiv" style="width: 280px; height: 200px"></div>

タイマーのインターバルによってはグラフの描画処理がおいつかないため、思ったよりスムーズに描画することができませんでした。
色々と試したところ、インターバルは800 ~ 1000ミリ秒程度が良いようです。




・Ewa.SheetCollection.getItemByName(name)
http://msdn.microsoft.com/en-us/library/ee660110.aspx
・Ewa.Sheet.getRange(firstRow, firstColumn, rowCount, columnCount)
http://msdn.microsoft.com/en-us/library/ee589071.aspx

[Excel Services ECMAScript]セルにデータを入力する。前のページ

[Excel Services ECMAScript]JSON形式で取得したデータを元にグラフを描画する。次のページ

関連記事

  1. Office アドイン

    Ignite 2016で発表されたOffice アドイン関連の情報

    米国時間の9月26~30日にMicrosoftのビッグイベント「Ign…

  2. Office アドイン

    【2019年6月版】Excel カスタム関数(Excel Custom functions)の紹介

    1年半ほど前、Excel カスタム関数について記事を書きました。…

  3. Office関連

    [PowerPoint]Applicationオブジェクトのイベントを利用する

    PowerPointのApplicationオブジェクトには、スライド…

  4. Office関連

    【2018年7月版】ソースコードを番号行付きのテーブルに変換するWordマクロ

    6年以上前、Wordに貼り付けたソースコードを番号付きのテーブルに変換…

  5. Office関連

    [Win32 API]PowerPointマクロにショートカットキーを割り当てる。

    数日前、“PowerPointだとマクロにショートカットキーを割り当て…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP