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

Bru*_*cio 7 google-sheets node.js 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'
}
Run Code Online (Sandbox Code Playgroud)

这是我目前得到和拥有的 在此处输入图片说明


编辑:我意识到我的问题之一是我spreadsheets.values.get在应该使用spreadsheets.get. 我已经改变了这个,但我仍然无法获得网址

在此处输入图片说明

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

Tan*_*ike 8

  • 您想从=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);
  }
);
Run Code Online (Sandbox Code Playgroud)

结果:

https://www.google.com/images/srpr/logo3w.png
Run Code Online (Sandbox Code Playgroud)

参考:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

编辑:

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

如果我的理解是正确的,不幸的是,在当前阶段,当通过“电子表格中的插入选项”将图像从 URL 插入到单元格中时,Sheets API 和电子表格服务无法检索图像的 URL。此外,当通过“电子表格中的 INSERT 选项”从 URL 将图像插入到工作表中时,Sheets API 和电子表格服务无法检索图像的 URL。我为这种情况道歉。

参考:

  • 使用 =image() 公式效果很好,但是是否可以使用电子表格中的 INSERT 选项获取上传图像的 URL?当我这样做时,图像显示在单元格上,但公式为空 (2认同)