Как получить доступ к электронным таблицам Google Sheet только с помощью Javascript?
Я хочу получить доступ к таблицам Google, используя только JavaScript. (нет .NET С#, Java)
Я пришел здесь и был шоком, чтобы знать, что нет JavaScript для JavaScript
для доступа к электронной таблице Google.
Скажите, пожалуйста, как получить доступ (CREATE/EDIT/DELETE) Таблицы Google с помощью JavaScript или любых его фреймворков, таких как jQuery и т.д.
Ответы
Ответ 1
Я создал простую библиотеку javascript, которая извлекает данные электронной таблицы google (если они опубликованы) через JSON api:
https://github.com/mikeymckay/google-spreadsheet-javascript
Вы можете увидеть это в действии здесь:
http://mikeymckay.github.com/google-spreadsheet-javascript/sample.html
Ответ 2
Здесь Gist.
Вы можете создать электронную таблицу, используя API Google Таблиц. В настоящее время нет способа удалить таблицу с помощью API (см. Документацию). Подумайте о API Google Документов в качестве маршрута для создания и поиска документов.
Вы можете добавлять/удалять рабочие листы в электронной таблице, используя листы, основанные на листах.
Обновление электронной таблицы выполняется через списки на основе списка или на основе ячейки каналы.
Чтение электронной таблицы можно выполнить с помощью API-интерфейсов Google Spreadsheets, упомянутых выше, или только для опубликованных листов, используя Язык запросов API визуализации Google для запроса данных (которые могут возвращать результаты в формате CSV, JSON или HTML-таблицы).
Забудьте jQuery. jQuery действительно очень ценен, если вы пересекаете DOM. Поскольку GAS (Scripting) не использует DOM, jQuery не добавит никакого значения вашему коду. Придерживайтесь ванили.
Я действительно удивлен, что никто не предоставил эту информацию в ответе. Не только может сделать это, но это относительно легко сделать с использованием vanilla JS. Единственным исключением является API визуализации Google, который является относительно новым (с 2011 года). API визуализации также работает исключительно через URI строки запроса HTTP.
Ответ 3
Янв 2018 UPDATE. Когда я ответил на этот вопрос в прошлом году, я забыл упомянуть третий способ доступа к API Google с помощью JavaScript, и это было бы из приложений Node.js, используя его клиент библиотеке, поэтому я добавил ее ниже.
Он Мар 2017, и большинство ответов здесь устарели - принятый ответ теперь относится к библиотеке, которая использует более старую версию API. Более актуальный ответ: вы можете получить доступ к большинству Google API только с использованием JavaScript. Google предлагает 3 способа сделать это сегодня:
- Как упоминалось в ответе Дэна Даскалеску, вы можете использовать Google Apps Script, решение JavaScript в Google. То есть, не-w631 > серверные JS-приложения за пределами браузера, которые запускаются на серверах Google.
- Вы кодируете свои приложения в Приложения Script редактор кода, и они могут получить доступ к Google Таблицам двумя различными способами:
- Приложения Script также поддерживают add-ons, и вы можете расширить функциональность пользовательского интерфейса Sheets с помощью надстроек листов (например, эти)
- Вы даже можете написать мобильные дополнения, которые расширяют Таблицы приложений на Android
- Чтобы узнать больше об использовании приложений Script, просмотрите эти видео, которые я создал (большинство из них связано с использованием таблиц)
- Вы также можете использовать Клиентскую библиотеку API Google API для JavaScript для доступа к последнему Google Lets REST API на стороне клиента.
- Ниже несколько общих образцов с использованием клиентской библиотеки
- В последнем листе API (v4) был выпущен в Google I/O 2016; он намного более мощный, чем все предыдущие версии, предоставляя разработчикам программный доступ к большинству функций, найденных в пользовательском интерфейсе Sheets
- Ниже представлен быстрый запуск JavaScript для API, который поможет вам начать работу
- образец "recipes" (полезные нагрузки JSON) для запросов основного API
- Если вы не "аллергия" на Python (если хотите, просто притворитесь, что это псевдокод;)), я сделал несколько видеороликов с более "реальными" образцами использования API, с помощью которого вы можете учиться, и перейти на JS если это необходимо (ПРИМЕЧАНИЕ. Несмотря на то что это код Python, большинство запросов API имеют JSON и легко переносятся в JS):
- Третий способ доступа к API Google с помощью JavaScript состоит из приложений Node.js, используя свою клиентскую библиотеку. Он работает аналогично использованию JavaScript-клиентской библиотеки, описанной выше, только вы будете получать доступ к тому же API со стороны сервера. Здесь пример Node.js Quickstart для листов. Вы можете найти видео на основе Python выше, чтобы быть еще более полезными, поскольку они также получают доступ к API со стороны сервера.
При использовании REST API вам необходимо управлять и хранить исходный код, а также выполнять авторизацию, скопировав собственный код auth (см. примеры выше). Приложения Script обрабатывают это от вашего имени, управляя данными (уменьшая "боль", как упоминалось Ape-inago в их ответе), и ваш код хранится на серверах Google. Но ваша функциональность ограничена возможностями, предоставляемыми сервисами App Script, и более старыми JS (ES3 + некоторыми функциями ES5 и настройками Google), тогда как REST API предоставляет разработчикам гораздо более широкий доступ к API. Но эй, хорошо иметь выбор, не так ли? Итак, чтобы ответить на исходный вопрос OP, вместо нуля у разработчиков есть три способа доступа к Google Таблицам с использованием JavaScript.
Ответ 4
Обновление 2016. Самый простой способ - использовать API Google Apps Script, в частности SpreadSheet Service. Это работает для личных листов, в отличие от других ответов, требующих опубликования электронной таблицы.
Это позволит вам привязать код JavaScript к листу Google и выполнить его при открытии листа или когда выбран пункт меню (который вы можете определить).
Здесь Быстрый старт/демонстрация. Код выглядит следующим образом:
// Let say you have a sheet of First, Last, email and you want to return the email of the
// row the user has placed the cursor on.
function getActiveEmail() {
var activeSheet = SpreadsheetApp.getActiveSheet();
var activeRow = .getActiveCell().getRow();
var email = activeSheet.getRange(activeRow, 3).getValue();
return email;
}
Вы также можете опубликовать такие сценарии, как веб-приложения.
Ответ 5
edit:. На это был дан ответ, прежде чем был выпущен google doc api. См. ответ Эвана Плэйса и Дэн Даскалеску ответ для получения более актуальной информации информация.
Похоже, вы можете, но это боль в использовании. Он включает использование API данных Google.
http://gdatatips.blogspot.com/2008/12/using-javascript-client-library-w-non.html
"В клиентской библиотеке JavaScript есть вспомогательные методы для Календаря, Контактов, Blogger и Google Finance. Однако вы можете использовать его практически с любым API данных Google для доступа к фидам с аутентификацией/приватом. В этом примере используется API DocList."
и пример написания гаджета, который взаимодействует с электронными таблицами: http://code.google.com/apis/spreadsheets/gadgets/
Ответ 6
"Доступ к Документам Google для JavaScript будет утомительным для реализации, и, кроме того, документация Google также не так проста. У меня есть хорошие ссылки для совместного использования, благодаря которым вы можете получить доступ к gs для js:
http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#UploadingDocs
http://code.google.com/apis/spreadsheets/gadgets/
http://code.google.com/apis/gdata/docs/js.html
http://www.mail-archive.com/[email protected]/msg01924.html
Может быть, это поможет вам...
Ответ 7
Для этого типа вы должны использовать Google Fusion Tables. API предназначен для этой цели.
Ответ 8
Извините, это отвратительный ответ. По-видимому, это было вопрос почти два года, поэтому не задерживайте дыхание.
Вот официальный запрос, который вы можете "star"
Вероятно, ближайший, к которому вы можете прийти, перекладывает свою собственную службу с помощью Google App Engine/Python и раскрывает все, что вам нужно, с вашей собственной библиотекой JS, Хотя мне бы хотелось, чтобы у меня было лучшее решение.
Ответ 9
В этом быстро меняющемся мире большинство этих ссылок устарели.
Теперь вы можете использовать Веб-интерфейсы Google Диска:
Ответ 10
вы можете сделать это, используя Sheetsee.js и tabletop.js