Microsoft Excels“放置在单元格中”AKA WebImage 内容类型可以接受 Base64 编码图像作为数据 URL 吗?

问题描述 投票:0回答:1

我正在为 Excel 编写一个插件,目前我正在根据参数生成图像并从 Web 服务器上的 URL 返回它们。我发现我正在做的一些渲染可以使用 HTML canvas 标签来实现。我希望能够使用 toDataUrl 函数在画布中生成图像并输出到 WebImage 内容类型。

到目前为止的努力都是徒劳的,有没有人有任何见解?

以下示例。


function drawShape() {

  let jpegUrl = '';

  try {
    const canvasContainer = document.getElementById('canvas-container');
    canvasContainer.innerHTML = '';
    let testCanvas = document.createElement('canvas');
    testCanvas.setAttribute("width","300");
    testCanvas.setAttribute("height","300");
    canvasContainer.append(testCanvas);
  
    if (canvas.getContext) {
      const ctx = canvas.getContext("2d");
  
      ctx.fillRect(25, 25, 100, 100);
      ctx.clearRect(45, 45, 60, 60);
      ctx.strokeRect(50, 50, 50, 50);
    }
  
    let jpegUrl = testCanvas.getDataURL("image/jpeg");
  } catch (e) {
    console.log(e);
  }

  return {
    type: "WebImage",
    address: jpegUrl,
    altText: 'An Image'
  };

}

Excel 不会将结果解释为有效。

javascript html5-canvas excel-addins excel-web-addins
1个回答
0
投票

你能拿到练习册吗?如果是,您是否尝试过这样的事情:

function main(workbook: ExcelScript.Workbook, sheetName: string, address: string, base64ImageString: string) {
  let sheet = workbook.getWorksheet(sheetName);
  let range = sheet.getRange(address);
  let image = sheet.addImage(base64ImageString);
  image.setTop(range.getTop());
  image.setLeft(range.getLeft());
}
© www.soinside.com 2019 - 2024. All rights reserved.