Office.js Excel-range.getImage()

时间:2018-08-03 20:49:37

标签: excel office-js

rangeObject.GetImage()在Windows的Excel中运行良好,在Excel Online中部分运行,并在Excel for Mac 16.16.1中返​​回上下颠倒的图像。

我使用range.getImage()获取确切范围内的图片。然后将其用于其他Office应用程序。

  • 在Excel for Windows(版本1806)中,它可以按我希望的那样完美地工作。它会粘贴到范围内的任何内容,包括单元格内容,图像,形状等。

  • 在Excel Online中,它仅获取单元格内容,包括文本, 边框,背景色和条件格式,但其他条件除外 粘贴在范围顶部的内容。

  • 在Excel for Mac(版本16.15)中,它仅返回黑色图像(具有正确的尺寸)。

  • 在Mac版Excel(版本16.16.1和16.18)中,它返回的上下图像颜色不正确(蓝色而不是黑色)。它还没有在范围顶部插入形状/图像。

要在脚本实验室中重复该问题,请执行以下操作:选择一个包含一些内容的范围,然后运行以下代码:

$("#run").click(run);
function run() {
    Excel.run(function (ctx) {
        var rng = ctx.workbook.getSelectedRange();
        var image = rng.getImage();
        return ctx.sync().then(function () {
            var srcImage = "data:image/png;base64, " + image.value;
            $("#img").attr("src", srcImage);
        });
    }).catch(function (error) {
        console.log("Error: " + error);
        if (error instanceof OfficeExtension.Error) {
            console.log("Debug info: " + JSON.stringify(error.debugInfo));
        }
    });
}
<p class="ms-font-m">Shows the range image below</p>
<button id="run" class="ms-Button">
    <span class="ms-Button-label">Run code</span>
</button><br/>
<img id="img" src="" alt="" />

这是一个已知问题吗? method(API 1.7中的新增功能)会在各个平台之间变得一致吗?如果是这样,什么时候?

也在此处添加:https://github.com/OfficeDev/office-js/issues/235

1 个答案:

答案 0 :(得分:0)

是的,这是一个已知问题。我们的团队已尝试解决此问题,但是代码未检入,因为根据团队的调查,这不是错误级别的修复,否则可能导致其他潜在问题。 2585831是我们正在跟踪的工作项。