Как мне получить значение ячейки, скажем, A2, сформировать это с помощью API v4?
function myCallback(spreadsheetdata) < console.log(spreadsheetdata); // spreadsheetdata.A2 >
PlanBuildr 14 Июн 2020 в 17:46
1 ответ
Лучший ответ
Я верю вашей цели следующим образом.
- Вы хотите получить значение ячейки «A2» из электронной таблицы Google https://docs.google.com/spreadsheets/d/1hbHqrnYa4oMUquZcq8WkTJk0kI0t9scGBwro-EH-ALA/edit#gid=0 с помощью Javascript.
Для этого, как насчет этого ответа?
Если электронная таблица не является общедоступной и не публикуется в Интернете, необходимо использовать токен доступа, полученный OAuth2, и / или учетную запись службы. В этом случае сценарий немного усложняется. Но когда я увидел вашу электронную таблицу, мне показалось, что она является общедоступной и публикуется в Интернете. В этом случае значение можно получить без токена доступа. Так сценарий становится проще.
Схема 1:
В этом шаблоне значение ячейки «A2» извлекается без авторизации.
Google Sheets получение значений ячеек скриптом. Google Apps Script для начинающих
Пример сценария:
const url = «https://docs.google.com/spreadsheet/pub?key=1hbHqrnYa4oMUquZcq8WkTJk0kI0t9scGBwro-EH-ALAoutput=csv»; fetch(url) .then(response => response.text()) .then(text => < console.log(text) >);
const url = «https://docs.google.com/spreadsheet/pub?key=1hbHqrnYa4oMUquZcq8WkTJk0kI0t9scGBwro-EH-ALA; fetch(url) .then(response => response.text()) .then(text => < const ar = text.split(«n»).map(r =>r.split(«,»)); console.log(ar[2][0]); >);
- Когда вышеуказанные сценарии используются для вашей электронной таблицы, возвращается a ячейки «A2».
Схема 2:
В этом шаблоне значение ячейки «A2» извлекается с помощью метода spreadsheets.values.get в API Таблиц с ключом API. В этом случае получите свой ключ API и установите значение apiKey .
Пример сценария:
function handleClientLoad() < const apiKey = «###»; // Please set your API key. gapi.load(‘client’, () => < gapi.client.setApiKey(apiKey); gapi.client.load(‘sheets’, ‘v4’, () =>< gapi.client.sheets.spreadsheets.values.get(< spreadsheetId: «1hbHqrnYa4oMUquZcq8WkTJk0kI0t9scGBwro-EH-ALA», range: ‘Sheet1!A2’, >).then(res => < const value = res.result.values[0][0]; console.log(value); >); >); >); >
- Когда указанный выше сценарий используется для вашей электронной таблицы, возвращается a ячейки «A2».
Ссылки:
- Опубликовать документ Google Sheet в Интернете с помощью Google Sheets API
- Использование Fetch
- Метод: spreadsheets.values.get
Tanaike 15 Июн 2020 в 02:14
Спасибо за ваш ответ. Я хочу прочитать все значения листа и по-разному отображать их на HTML-странице с помощью JavaScript. Так что, если я хочу прочитать значения, скажем: for i = 1 to 6; for j = A to D; document.write(cell[j][i])
Google Apps Script! Поиск строки с искомым значением. Трюки Google Sheets.
Источник: question-it.com
Получение значения ячейки из таблицы Google Docs в Javascript
Я хотел бы, чтобы процентная ставка поступала из ячейки электронной таблицы Документов Google. Я создал таблицу Google Docs и сохранил процентную ставку в ячейке B2.
Я использовал функцию «Получить ссылку на опубликованные данные» в Документах Google, чтобы получить ссылку на ячейку B2. Ссылка выглядит так.
Есть ли способ получить значение по ссылке в моей функции JavaScript?
user757661 14 фев ’13 в 22:27 2013-02-14 22:27
2013-02-14 22:27
3 ответа
Прежде всего, я бы порекомендовал «Получить ссылку на опубликованные данные» как csv, так как это всего лишь 1 поле, поэтому вам не нужно его анализировать. Если создать эту электронную таблицу и сделать ссылку с «Получить ссылку на опубликованные данные», эта вторая ссылка получит CSV только с одним полем в этом случае. Вы сможете получить это с помощью следующего кода js (заметьте, я использую jQuery)
$.ajax(«https://docs.google.com/spreadsheet/pub?key=0Auwt3KepmdoudE1iZFVFYmlQclcxbW85YzNZSTYyUHcgid=0output=csv»).done(function(result)< alert(result); >);
РЕДАКТИРОВАТЬ: полный код
$.ajax(«https://docs.google.com/spreadsheet/pub?key=0Auwt3KepmdoudE1iZFVFYmlQclcxbW85YzNZSTYyUHcgid=0output=csv»).done(function(result)< alert(result); >);
user680933 14 фев ’13 в 23:15 2013-02-14 23:15
2013-02-14 23:15
Это возможно, но это немного неряшливо, несмотря на проблему с несколькими сайтами.
Сначала вам нужно создать ячейку в электронной таблице Google, которая считывает значение, которое вы хотите использовать, например, если нужное значение находится в ячейке A1 таблицы, вы можете поместить это в виде формулы в ячейку B1 следующим образом:
=»interestrate=»0.0″);»
Для этого нужно создать ячейку, содержащую текст (для иллюстрации я предположил, что в качестве числа содержится 5.7):
interestrate=»5.7″;
Который является действительным утверждением в JavaScript.
Затем вы помещаете следующее в заголовок своей HTML-страницы (или где-либо еще):
(очевидно, правильное значение ключа для вашей электронной таблицы, которая содержит эту новую функцию).
Теперь, когда страница загружается, браузер пользователя извлекает одну строку javascript из таблицы Google и выполняет ее. Следовательно, переменная, в данном случае «процентная ставка», устанавливается равной значению в исходной ячейке (в виде строки, поэтому вам потребуется выполнить parseFloat для выполнения вычислений).
Это займет немного времени, поэтому вам нужно убедиться, что он работает, прежде чем ваш скрипт попытается использовать это значение.
Кроме того, я подозреваю, что это будет очень медленно, если вы попробуете это с большим количеством цифр.
user2306368 25 апр ’13 в 14:16 2013-04-25 14:16
2013-04-25 14:16
Вы можете столкнуться с проблемами в связи с той же политикой происхождения. Обычно веб-браузеры не разрешают запросы AJAX другому домену в качестве меры безопасности. Я был немного удивлен, что решение Ultraklon работает в Firefox, поэтому, возможно, это изменилось в новых браузерах. Похоже, что он не работает в IE8, поэтому, если вам нужно поддерживать этот браузер, читайте дальше.
Обычно JSONP используется для обхода одной и той же политики происхождения, но в вашем случае это не вариант, поскольку документы Google не предоставляют данные в этом формате.
Возможно, лучшим решением было бы прокси-запрос на Google Docs через ваш собственный сервер, как предлагается в этом вопросе. Создайте метод на своем веб-сервере, который принимает ячейку (или диапазон ячеек) в качестве параметра. Попросите серверный метод запросить данные ячейки у Google Docs, а затем верните эти данные вызывающей стороне в формате JSON.
Получив запрос на прокси, вы можете добавить его в свой код javascript с небольшим количеством ajax, как в ответе ультраклона:
$.get(‘/google-docs-proxy?cell=B1’, function(data) < alert(‘data’); >);
Источник: stackru.com
Как установить значение ячейки в Google Sheets с помощью Apps Script?
Я хочу установить текст или число в Google Sheet из скрипта.
Я хочу установить Hello или пронумеровать 9 в ячейке F2 . Я нашел этот код до сих пор:
SpreadsheetApp.getActiveRange().setValue(‘hello’);
но это не указывает, какая ячейка.
Могу я предложить вам прочитать основы работы с приложениями, попробовав эти руководства?
Следующий код делает то, что требуется
function doTest() SpreadsheetApp.getActiveSheet().getRange(‘F2’).setValue(‘Hello’); >
как getRange с числами? каковы координаты ячейки c2?
C2 — вторая строка третьего столбца, поэтому >> getRange (2,3) >> getRange (row, col)
Привет. Теперь вы, как получить текущую строку ячейки и номер столбца?
Как я могу установить значение для текущей ячейки?
Используйте setValue метод Range класса, чтобы установить значение конкретной ячейки.
function storeValue() var ss = SpreadsheetApp.getActiveSpreadsheet(); // ss is now the spreadsheet the script is associated with var sheet = ss.getSheets()[0]; // sheets are counted starting from 0 // sheet is the first worksheet in the spreadsheet var cell = sheet.getRange(«B2»); cell.setValue(100); >
Вы также можете выбрать ячейку, используя номера строк и столбцов.
var cell = sheet.getRange(2, 3); // here cell is C2
Также возможно установить значение сразу для нескольких ячеек.
var values = [ [«2.000», «1,000,000», «$2.99»] ]; var range = sheet.getRange(«B2:D2»); range.setValues(values);
Решение : SpreadsheetApp.getActiveSheet().getRange(‘F2’).setValue(‘hello’)
Пояснение:
Установка значения в ячейке электронной таблицы, к которой прикреплен скрипт
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME).getRange(RANGE).setValue(VALUE);
Установка значения в ячейке на листе, которая открыта в данный момент и к которой прикреплен скрипт
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(RANGE).setValue(VALUE);
Установка значения в ячейке в некоторой электронной таблице, к которой НЕ прикреплен скрипт (известно имя целевого листа)
SpreadsheetApp.openById(SHEET_ID).getSheetByName(SHEET_NAME).getRange(RANGE).setValue(VALUE);
Установка значения в ячейке в какой-либо электронной таблице, к которой НЕ прикреплен скрипт (известна позиция конечного листа)
SpreadsheetApp.openById(SHEET_ID).getSheets()[POSITION].getRange(RANGE).setValue(VALUE);
Это константы, вы должны сами их определить
SHEET_ID SHEET_NAME POSITION VALUE RANGE
Под скриптом, прикрепленным к листу, я имею в виду, что скрипт находится в редакторе скриптов этого листа. Не прикрепленный означает, что он не находится в редакторе скриптов этого листа. Может быть в любом другом месте.
Источник: qastack.ru