如何从javascript API Chart.getImage()获取Excel图表的图像?

时间:2017-01-19 10:36:45

标签: excel charts office-js

我遇到了Excel javascript API的Chart.getImage()方法的问题。 与从VBA生成的图像不同,来自javascript API的图像显示未与图像边界正确对齐的图表。

我仅在Windows 10上的Excel客户端版本16.0.6965.2117上进行了测试,并且在Windows上启用了高DPI,缩放率为175%。事情在100%时变得更好,但结果图像仍然不是像素完美。

以下是演示此问题的代码段。如果图表在图像边界上对齐,则红色不应显示在图表周围,因为剩余空间填充了透明度。

Office.initialize = function (reason) {
    $(document).ready(function () {
        Excel.run(function (ctx) {
            var worksheet = ctx.workbook.worksheets.getActiveWorksheet();
            var chart = worksheet.charts.getItemAt(0).load();
            var chartImgStream = null;

            return ctx.sync()
                .then(function () {
                    chartImgStream = chart.getImage();
                })
                .then(ctx.sync)
                .then(function () {
                    $('#content-main').html('<img src="data:image/png;base64,'+chartImgStream.value+'" style="background-color: red;" />');
                });
        });
    });
}

有没有人有反馈来提供此方法在其他平台上的行为?

1 个答案:

答案 0 :(得分:0)

大型设备上的

Chart.getImage()问题已于几个月前解决。请升级到最新的Excel客户端,然后重试。如有任何问题,请与我联系。