スクラッチで実装するのは避けて 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 件のコメント:
コメントを投稿