Как получить URL "изображение в ячейке" из API Google листов - PullRequest
2 голосов
/ 14 мая 2019

я использую sheet.spreadsheets.values.get для получения информации внутри электронной таблицы, но в ячейках, содержащих изображения, отображается пустое строковое значение

я пытался использовать значения: userEnteredValue в качестве параметра для запроса, как показано вэтот вопрос Извлечение изображений в ячейки с помощью API Google Sheets , но это не сработало

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

Это то, что я в настоящее время получаю и имею https://imgur.com/a/f2CBms7

РЕДАКТИРОВАТЬ:Хорошо, поэтому я понял, что одна из моих проблем заключалась в том, что я использовал spreadsheets.values.get, когда мне нужно было использовать spreadsheets.get

. Я изменил это, но мне все еще не удается получить URL

https://imgur.com/a/GDN3tFV

ячейка, содержащая текст, имеет свойство userEnteredValue, но ячейка, содержащая изображение, не

1 Ответ

2 голосов
/ 15 мая 2019
  • Вы хотите получить URL из =image("https://www.google.com/images/srpr/logo3w.png") в ячейке.
  • Вы хотите использовать метод sheets.spreadsheets.values.get().
  • Вы хотите добиться этого с помощью googleapis ofNode.js.
    • Вы уже можете использовать Sheets API.

Если мое понимание верно, как насчет этой модификации?

Точка модификации:

  • =image("https://www.google.com/images/srpr/logo3w.png") помещается в ячейку в виде формулы.Поэтому, чтобы получить формулу, используйте valueRenderOption: "FORMULA".

Модифицированный скрипт:

Этот модифицированный скрипт предполагает, что =image("https://www.google.com/images/srpr/logo3w.png") помещается в ячейку "A1"имя листа "Sheet1".

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

Ссылка:

Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я приношу свои извинения.

Редактировать:

  • Вы хотите получить URL изображениякоторый вставляется в ячейку и на лист с помощью «опции ВСТАВИТЬ в электронную таблицу».

Если мое понимание верно, к сожалению, на текущем этапе, когда изображение вставляется в ячейку изURL-адрес с помощью параметра «ВСТАВИТЬ в электронную таблицу», URL-адрес изображения не может быть получен с помощью API Sheets и Spreadsheet Service.Кроме того, когда изображение вставляется на лист из URL-адреса с помощью «опции INSERT в электронной таблице», URL-адрес изображения не может быть получен с помощью API Sheets и Spreadsheet Service.Я извиняюсь за эту ситуацию.

Ссылка:

...