スクラッチで実装するのは避けて Chart.js を使ってみることにした。Canvas を使用するけど、
Office 365 と Internet Explorer に関する FAQ
で、出来上がり。
いろいろ決め打ちではあるけれども、
Bindings.addFromSelectionAsync メソッド / Bindings.addFromSelectionAsync method
表示に使用するフィールドも無理やりなので、本来ならば、
Bindings.addFromPromptAsync メソッド / Bindings.addFromPromptAsync method
(function () { "use strict"; Office.initialize = function (reason) { $(document).ready(function () { app.initialize(); addBindingFromSelection(); }); }; function addBindingFromSelection() { Office.context.document.bindings.addFromSelectionAsync( Office.BindingType.Table, { id: "myBinding" }, function (result) { if (result.status === Office.AsyncResultStatus.Succeeded) { result.value.addHandlerAsync( Office.EventType.BindingSelectionChanged, drawChart ); drawChart(); } }); } function drawChart() { Office.select("bindings#myBinding").getDataAsync( { rows: "thisRow" }, function (result) { if (result.status === Office.AsyncResultStatus.Succeeded) { var labelData = result.value.headers[0]; labelData.shift(); var pointData = result.value.rows[0]; pointData.shift(); var chartData = { labels: labelData, datasets: [{ fillColor: "rgba(151, 187, 205, 0.5)", strokeColor: "rgba(151, 187, 205, 1)", pointColor: "rgba(151, 187, 205, 1)", pointStrokeColor: "#fff", data: pointData }] }; var options = { scaleOverride: true, scaleSteps: 2, scaleStepWidth: 5, scaleStartValue: 0, pointLabelFontFamily: "'Segoe UI'", pointLabelFontSize: 16 }; var ctx = document.getElementById("chart-radar").getContext("2d"); var myChart = new Chart(ctx).Radar(chartData, options); } }); } })();
0 件のコメント:
コメントを投稿