Есть ли простой способ получить базовый URL для ячеек в листе Google с помощью API Google Sheets? - PullRequest
0 голосов
/ 24 апреля 2020

Я использую API Google Sheets and Slides для чтения данных с листа и создания слайдов Google.

Некоторые ячейки содержат ссылки, и я хочу, чтобы они также отображались в виде ссылок на слайдах. Есть ли способ получить гиперссылку для ячейки с помощью API Google Sheets?

Я получаю значение в ячейке следующим образом:

var ss = SpreadsheetApp.openByUrl(dataSpreadsheetUrl); 
var sheet = ss.getSheetByName('countryData'); 
// Use the Sheets API to load data, one record per row. 
var values = sheet.getRange('A2:W10').getValues(); 
for (var i = 0; i < values.length; ++i) { 
    var row = values[i]; var country = row[0];
    //name in column 1 
    Logger.log(country);
} 

Есть ли метод на значения, которые я могу вызвать, чтобы получить гиперссылку на эту конкретную ячейку? (например, для значения Афганистан гиперссылка на листе - это страница BB C для Afg.)

Я использую следующее для замены страны токена на слайдах, используя: shape.getText().replaceAllText('{{country}}',country);

1 Ответ

1 голос
/ 24 апреля 2020

Из вашей дополнительной информации я вижу, что вы используете скрипт Apps.

Чтобы получить URL-адрес ссылок стран, вы можете использовать метод Range.getFormula(). Однако вам нужно использовать формулу: =HYPERLINK(url, [linkLabel]) в вашем листе. Затем вы можете, например, с помощью следующего кода получить URL-адрес со скриптом Apps:

function getHyperlinkUrl(range) {
  // The range should use the sheets formula: `=HYPERLINK(url,[linkLabel])`
  // Example: HYPERLINK("http://www.venezuela.com/", "Venezuela")

  var url = range.getFormula().split('"')[1];
  Logger.log(url);
  // Output: http://www.venezuela.com/
}

С этим значением вы можете построить объект textRun, как показано ниже:

"textRun": {
    "content": "<YOUR-HYPERLINK-FROM-SHEETS>",
    "style": {
        "foregroundColor": {
            "opaqueColor": {
                "themeColor": "HYPERLINK"
            }
        },
        "link": {
            "url": "<YOUR-HYPERLINK-FROM-SHEETS>"
        },
        "underline": true
    }

и вставьте его в слайд, используя метод presentations.batchUpdate.


Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...