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



















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