Ссылка на конкретный лист во встроенной электронной таблице Google
Из-за большого количества листов, которые будут у меня в электронной таблице Google, я хочу создать ссылки на все листы на первом листе.
Это работает в электронных таблицах Google со следующим кодом:
function goToSheet2() {
goToSheet("Sheet2");
}
function goToSheet(sheetName) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
SpreadsheetApp.setActiveSheet(sheet);
}
Дальнейшее объяснение того, как именно в этом другом посте переполнения стека.
Однако, после того, как вы вложили лист, он больше не работает. Я полагаю, это связано с тем, что этот скрипт заставляет вашу кнопку / изображение работать как ссылка (скрипт просто помогает вам найти подходящий #gid=
) так что на самом деле он просто перезагружает всю страницу, что невозможно во встроенной версии.
Любые указатели в правильном направлении будет принята с благодарностью.
Изменить: теперь я знаю, почему это не работает. Как сказано на этой странице: "Только пользователи, которые имеют разрешение на редактирование электронной таблицы, документа или формы, могут запускать связанный сценарий. Сотрудники, имеющие только доступ к просмотру, не могут открыть редактор сценариев, хотя, если они делают копию родительского файла, они станут владельцем копии и смогут увидеть и запустить копию сценария ".
Однако я не могу понять, как превратить связанный скрипт в отдельный скрипт, который работает со встроенным файлом. Я попытался опубликовать сценарий, "развернув его как веб-приложение", но это не сработало.
Редактировать 2: Теперь у меня есть очень неуклюжий способ заставить скрипт работать со встроенной версией электронной таблицы, но электронная таблица не так, как я хочу.
Объяснение: В основном я изменяю код iframe с этого:
<iframe src="https://docs.google.com/spreadsheets/d/SPREADSHEET-ID/pubhtml?widget=true&headers=false&chrome=false" height="500" width="500"></iframe>
К этому:
<iframe src="https://docs.google.com/spreadsheets/d/SPREADSHEET-ID/edit?usp=sharing?widget=true&headers=false" height="500" width="500"></iframe>
Это заставило меня показать всю страницу электронной таблицы Google с меню и всем остальным. Однако скрипт работает: я могу перейти на другой лист, нажав на изображение.
Теперь о забавной части: я могу скрыть меню, добавив &rm=minimal
по ссылке, но теперь скрипт больше не работает.
1 ответ
Вам лучше создать код для отображения данных в формате HTML и развернуть его как веб-приложение. Исходя из этого, веб-приложение может показывать соответствующие данные на основе сделанного выбора. Вы можете начать здесь: Расширение Google Sheets, а затем посмотрите на HTML-сервис: создание и обслуживание HTML в качестве отправной точки. Теперь вы можете встроить веб-приложение в любую веб-страницу через iFrame. Это будет держать его в режиме только отображения, и зрителю не нужно будет иметь права доступа к файлу, так как вы можете запускать веб-приложение самостоятельно.