【发布时间】:2020-04-24 18:37:25
【问题描述】:
rangeObject.GetImage() 在 Excel for Windows 中运行良好,部分适用于 Excel Online,并在 Excel for Mac 16.16.1 中返回倒置图像。
我使用 range.getImage() 来获取范围内确切内容的图片。然后将其用于其他 Office 应用程序。
在 Excel for Windows(1806 版)中,它可以像我希望的那样完美运行。它获取范围内的任何内容,包括粘贴在范围内的单元格内容、图像、形状等。
在 Excel Online 中,它只是获取单元格内容,包括文本, 边框、背景颜色和条件格式,但不是其他 粘贴在范围顶部的东西。
在 Excel for Mac(版本 16.15)中,它只返回黑色图像(尺寸正确)。
- 在 Excel for Mac(版本 16.16.1 和 16.18)中,它会返回一个颜色不正确(蓝色而不是黑色)的颠倒图像。它也没有在范围顶部插入形状/图像。
要在 Script Lab 中复制问题:选择包含一些内容的范围,然后运行以下代码:
$("#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 中的新功能)是否会跨平台保持一致?如果有,什么时候?
【问题讨论】: