Google Sheet: можно ли импортировать пользовательскую функцию из другой таблицы?

У меня есть 2 таблицы: A и B. Я создал свою пользовательскую функцию function_A() в таблице A:

function function_A() {
   return("test")
}

это работает, и я хочу использовать его в электронной таблице B. Как я могу импортировать свою пользовательскую функцию в B? Является ли это возможным ?

Хотя я не уверен, правильно ли я мог понять о вашей реальной цели, например, как простой метод, как насчет копирования сценария Google Spreadsheet A в редактор сценариев Google Spreadsheet B?

Tanaike 15.12.2020 06:22

Проблема, если я хочу использовать его во многих электронных таблицах: B, C, D, ... ZZ, тогда мне нужно сделать так много копий, это неэффективно, так как сложно отлаживать или обновлять функцию. Я должен идти один за другим. Использование одной основной функции в качестве библиотеки будет проще в обслуживании.

andio 15.12.2020 15:19

Спасибо за ответ. Теперь я заметил, что ваш вопрос был решен. Я рад за это.

Tanaike 16.12.2020 00:43
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
442
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение

В качестве альтернативного решения того, что предложил @Tanaike, вы можете использовать библиотеки сценариев приложений. Таким образом, вы можете импортировать внешний код Apps Script в свой проект, чтобы улучшить читаемость и включить расширяемость кода.

Пример

Ваш проект Apps Script с привязкой Spreadsheet_A выглядит следующим образом:

function function_A() {
  return "output_A";
}

Теперь, чтобы использовать этот код на вашем «Spreadsheet_B», вам нужно будет импортировать его, используя проект Apps Script «Spreadsheet_A» «Script ID».

Вы можете найти это в Apps Script «Настройки проекта».

После копирования переключитесь на связанный проект Apps Script «Spreadsheet_B» и импортируйте библиотеку «Spreadsheet_A», используя ее «идентификатор сценария». Перейдите к Resources>Libraries и вставьте «Идентификатор сценария» в поле ввода «Добавить библиотеку». Наконец, нажмите «Добавить».

Обратите внимание, что библиотеке теперь будет назначен идентификатор. Вы можете редактировать его в соответствии с вашими потребностями. В этом примере я буду использовать букву «А».

Теперь вы можете просто создать новый function_B() в вашем проекте Apps Script с привязкой к «Spreadsheet_B», который внутренне использует function_A() из библиотеки Apps Script:

/*
* @customfunction
*/
function function_B() {
  return A.function_A() + " from function_B";
}

Рекомендации

Библиотеки скриптов приложений

Большое спасибо. Перфекто, отлично работает. Но у меня есть вопрос, если возможно, вместо того, чтобы подключать его с помощью идентификатора сценария, есть ли способ сделать мою функцию «глобальной» для всей моей электронной таблицы? Некоторые другие приложения, которые я использовал, у них есть API для создания пользовательской функции и загрузки ее как «глобальной» функции, поэтому она будет немедленно доступна для всего моего проекта.

andio 15.12.2020 18:00

В этом случае я бы предложил использовать надстройку Editor. Вы можете определить функцию в надстройке, установить ее и использовать в каждой электронной таблице, которую вы будете использовать со своей учетной записью. Однако вам придется запустить надстройку на новой электронной таблице.

Alessandro 16.12.2020 14:16

Другие вопросы по теме