如何从Google Sheets API获取“单元格中的图像” URL

时间:2019-05-14 20:24:49

标签: node.js google-sheets google-sheets-api

我使用sheets.spreadsheets.values.get在电子表格中获取信息,但是包含图像的单元格显示空字符串值

我尝试使用values:userEnteredValue作为请求的参数,如此问题Retrieve images in cells using Google Sheets API所示 但这没用

sheets.spreadsheets.values.get({
      spreadsheetId: 'XXX',
      range: 'firstSheet!A1:E10',
      key: "XXXX"
      //values: 'userEnteredValue'
}

这是我目前所拥有的 https://imgur.com/a/f2CBms7

编辑: 好的,所以我意识到我的问题之一是当我应该使用工作簿.get

时使用了工作表sheets.values.get。

我更改了此设置,但仍然无法获取网址

https://imgur.com/a/GDN3tFV

包含文本的单元格具有userEnteredValue属性,但包含图像的单元格没有

1 个答案:

答案 0 :(得分:2)

  • 您要从单元格中的=image("https://www.google.com/images/srpr/logo3w.png")检索URL。
  • 您要使用sheets.spreadsheets.values.get()的方法。
  • 您想使用Node.js的googleapis实现此目的。
    • 您已经可以使用Sheets API。

如果我的理解是正确的,那么该修改如何?

修改点:

  • =image("https://www.google.com/images/srpr/logo3w.png")作为公式放入单元格。因此,为了检索公式,请使用valueRenderOption: "FORMULA"

修改后的脚本:

此修改后的脚本假定=image("https://www.google.com/images/srpr/logo3w.png")放在工作表名称为“ Sheet1”的单元格“ A1”中。

sheets.spreadsheets.values.get(
  {
    spreadsheetId: "###",
    range: "Sheet1!A1",
    valueRenderOption: "FORMULA"
  },
  function(err, res) {
    if (err) {
      console.log(err);
      return;
    }
    const url = res.data.values[0][0].match(/https?:\/\/[\w\S][^"]+/)[0];
    console.log(url);
  }
);

结果:

https://www.google.com/images/srpr/logo3w.png

参考:

如果我误解了你的问题,而那不是你想要的结果,我深表歉意。

编辑:

  • 您要通过“电子表格中的INSERT选项”检索插入到单元格和工作表上的图像的URL。

不幸的是,如果我的理解是正确的,那么在当前阶段,当通过“电子表格中的INSERT选项”将图片从URL插入到单元格中时,Sheets API和Spreadsheet Service无法检索图片的URL。同样,当通过“电子表格中的INSERT选项”从URL将图像插入到工作表中时,Sheets API和Spreadsheet Service也无法检索该图像的URL。对于这种情况,我表示歉意。

参考: