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関連

    Officeの新製品発売記念イベントに参加してきました。

    今月16日に開催された、Officeの新しい製品の発売記念イベント「平…

  2. Office関連

    メールアドレスからExchangeUserを取得するOutlookマクロ

    mougに“メールアドレスをキーとしてExchangeグローバルアドレ…

  3. Excel

    Google スライドで新規プレゼンテーションを作成するVBAマクロ

    ここ数日PowerPointのマクロに加え、Google Apps S…

  4. Office関連

    UI Automationの参考資料

    VBAからUI Automationを扱う際に参考になりそうな資料への…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP