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 アドイン

    OfficeJS Snippet Explorerを使って新しいOffice アドインを体験する。

    前回の記事と打って変わって元のOffice アドインの記事に戻ります(…

  2. Office関連

    コマンドマクロ一覧(Word 2013 Customer Preview)

    Word 2013 CP版に組み込まれている「コマンドマクロ」のコマン…

  3. Office関連

    VBE用のCOMアドインをメモ帳で作ってみる。

    “Officeアプリケーション用のCOMアドインをVisual Stu…

  4. Office関連

    [Office 2013]コントロール日英比較表

    日本語版と英語版のOffice 2013でコントロール(コマンド)名や…

  5. アイコン一覧

    Office 365アイコン(imageMso)一覧(Q)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

PAGE TOP