2012-07-05 2 views
9

Я создал один лист распространения Google, и я хочу найти идентификатор этого листа распространения. Я слишком много пытался найти в Google, но не смог добиться успеха.Как получить идентификатор Google Spread Sheet через скрипт Google Apps?

Пожалуйста, покажите мне путь/скрипт, который я могу принести в табличной идентификатор активного распространения листа ..

Благодарности

+0

Вы пытались просмотреть https://developers.google.com/apps-script/? – Edo

ответ

16

Идентификатор (ключ) из таблицы находится в URL (часть между клавишей = и # gid =). Вы можете получить его с помощью GAS использовать что-то вроде:

function getId() { 
    Browser.msgBox('Spreadsheet key: ' + SpreadsheetApp.getActiveSpreadsheet().getId()); 
} 

Примечания, часто вы получите совершенно другую строку с каждым способом, но они оба должны работать одинаково.

+1

Отличный ... Теперь он отлично работает –

+2

Любые идеи, для чего нужен #gid? –

+1

@ClickUpvote это идентификатор листа. Используйте, если вы хотите скачать как HTML/PDF/CSV и т. Д. – eddyparkinson

3

Помните, что функция getId() из объекта таблицы возвращает другой идентификатор по сравнению с getId() из объекта File, даже если файл (управляемый с DriveApp) представляет собой ту же таблицу.

Как бы то ни было, если вы открываете файл из DriveApp, используя идентификатор, предоставленный электронной таблицей, вы получите правильный объект File, возвращающий - с помощью getId() - идентификатор файла, который отличается от того, который вы используется для открытия файла.

Это кажется запутанным, но он работает так. У меня были некоторые проблемы в некоторых сценариях, исходящих из этого «двойного» id для одного и того же.

+0

SDK Google Диска больше не может открывать файлы, используя id: SpreadsheetApp .getActiveSpreadsheet(). getId(): https://code.google.com/p/google-api-java-client/issues/detail?id=859&can=4&colspec=Milestone%20Priority%20Component%20Type%20Summary% 20ID% 20Status% 20Owner – eddyparkinson

Смежные вопросы