Начало разработки пользовательских функций Excel
С помощью пользовательских функций разработчики могут добавлять новые функции в Excel, определяя их в JavaScript или Typescript как часть надстройки. Пользователи Excel могут получить доступ к пользовательским функциям так же, как и к любой встроенной функции в Excel, например SUM()
.
Предварительные требования
Node.js (последняя версия LTS). Посетите сайтNode.js , чтобы скачать и установить правильную версию для вашей операционной системы.
Последняя версия Yeoman и генератора Yeoman для надстроек Office. Выполните в командной строке указанную ниже команду, чтобы установить эти инструменты глобально.
npm install -g yo generator-office
Примечание.
Даже если вы уже установили генератор Yeoman, рекомендуем обновить пакет до последней версии из npm.
Пакет Office, подключенный к подписке Microsoft 365 (включая Office в Интернете).
Примечание.
Если у вас еще нет Office, вы можете получить подписку разработчика на Microsoft 365 E5 в рамках программы microsoft 365 для разработчиков. Дополнительные сведения см. в разделе Часто задаваемые вопросы. Кроме того, вы можете зарегистрироваться для получения бесплатной пробной версии на 1 месяц или приобрести план Microsoft 365.
Создание первого проекта пользовательских функций
Чтобы начать работу, создайте проект пользовательских функций с помощью генератора Yeoman. Это позволит настроить для проекта правильную структуру папок, исходные файлы и зависимости, чтобы начать написание кода пользовательских функций.
Выполните следующую команду, чтобы создать проект надстройки с помощью генератора Yeoman. Папка, содержащая проект, будет добавлена в текущий каталог.
yo office
Примечание.
При выполнении команды
yo office
может появиться запрос о политиках сбора данных генератора Yeoman и средств CLI надстройки Office. Используйте предоставленные сведения, чтобы ответить на запросы подходящим образом.При появлении запроса предоставьте следующую информацию для создания проекта надстройки.
-
Выберите тип проекта:
Excel Custom Functions using a Shared Runtime
-
Выберите тип скрипта:
JavaScript
-
Как вы хотите назвать надстройку?
My custom functions add-in
Генератор Yeoman создаст файлы проекта и установит вспомогательные компоненты Node.
-
Выберите тип проекта:
Генератор Yeoman предоставит вам инструкции в командной строке по действиям с проектом, но вам нужно их проигнорировать и продолжить выполнять наши инструкции. Перейдите к корневой папке проекта.
cd "My custom functions add-in"
Выполните построение проекта.
npm run build
Запустите локальный веб-сервер, работающий на Node.js. Вы можете попробовать использовать надстройку пользовательской функции в Excel. Вам может быть предложено открыть область задач надстройки, но это необязательно. Вы по-прежнему можете запускать свои пользовательские функции, не открывая область задач надстройки.
Чтобы проверить надстройку в Excel в Интернете, выполните следующую команду. После выполнения этой команды запустится локальный веб-сервер. Замените "{url}" на URL-адрес документа Excel в OneDrive или библиотеке SharePoint, для которой у вас есть разрешения.
Примечание.
Если вы разрабатываете на компьютере Mac, заключите в одинарные {url}
кавычки.
Не делайте этого в Windows.
npm run start:web -- --document {url}
Ниже приведены примеры.
npm run start:web -- --document https://contoso.sharepoint.com/:t:/g/EZGxP7ksiE5DuxvY638G798BpuhwluxCMfF1WZQj3VYhYQ?e=F4QM1R
npm run start:web -- --document https://1drv.ms/x/s!jkcH7spkM4EGgcZUgqthk4IK3NOypVw?e=Z6G1qp
npm run start:web -- --document https://contoso-my.sharepoint-df.com/:t:/p/user/EQda453DNTpFnl1bFPhOVR0BwlrzetbXvnaRYii2lDr_oQ?e=RSccmNP
Если надстройка не загружает неопубликованное приложение в документе, вручную загрузите ее, следуя инструкциям в разделе Ручная загрузка неопубликованных надстроек для Office в Интернете.
Примечание.
Надстройки Office должны использовать HTTPS, а не HTTP, даже во время разработки. Если после выполнения одной из следующих команд вам будет предложено установить сертификат, примите запрос на установку сертификата, который предоставляет генератор Yeoman. Кроме того, вам может потребоваться запустить командную строку или терминал с правами администратора, чтобы внести изменения.
Если вы впервые разрабатываете надстройку Office на компьютере, в командной строке может появиться запрос на предоставление Microsoft Edge WebView исключения замыкания на себя ("Разрешить замыкания на себя локальный узел для Microsoft Edge WebView?"). При появлении запроса введите
Y
, чтобы разрешить исключение. Обратите внимание, что вам потребуются права администратора, чтобы разрешить исключение. После этого вам не следует запрашивать исключение при загрузке неопубликованных надстроек Office в будущем (если вы не удалите исключение с компьютера). Дополнительные сведения см. в разделе "Не удается открыть эту надстройку из localhost" при загрузке надстройки Office или с помощью Fiddler.
Проверка работы готовой пользовательской функции
Проект пользовательских функций, созданный с помощью генератора Yeoman, содержит некоторые готовые пользовательские функции, определенные в файле ./src/functions/functions.js. Файл ./manifest.xml в корневом каталоге проекта указывает, что все пользовательские функции принадлежат пространству имен CONTOSO
.
В книге Excel проверьте, как работает пользовательская функция ADD
, выполнив описанные ниже шаги.
Выделите ячейку и введите
=CONTOSO
. Обратите внимание, что в меню автозаполнения содержится список всех функций в пространстве именCONTOSO
.Запустите функцию
CONTOSO.ADD
с числами10
и200
в качестве входных параметров, введя значение=CONTOSO.ADD(10,200)
в ячейке и нажав клавишу ВВОД.
Пользовательская функция ADD
вычисляет сумму двух чисел, которые вы указываете в качестве входных параметров. При вводе =CONTOSO.ADD(10,200)
в ячейке должен отобразиться результат 210 после нажатия клавиши ВВОД.
Если пространство имен CONTOSO
недоступно в меню автозаполнения, для регистрации надстройки в Excel выполните следующие действия.
В Excel выберите Главная>надстройки, а затем — Другие надстройки.
На вкладке MY ADD-INS выберите Управление моими надстройками и выберите Отправить мою надстройку.
Выберите Обзор... и откройте корневой каталог проекта, созданный генератором Yeoman.
Выберите файл manifest.xml и нажмите Открыть, затем нажмите кнопку Отправить.
Теперь давайте оценим, как работает новая функция. В ячейке B1 введите текст =CONTOSO.GETSTARCOUNT("OfficeDev", "Excel-Custom-Functions") и нажмите клавишу ВВОД. Результат в ячейке B1 — это текущее количество звезд, отданных репозиторию Excel-Custom-Functions Github.
Если вы хотите остановить локальный веб-сервер и удалить надстройку, следуйте применимым инструкциям:
Чтобы остановить сервер, выполните следующую команду. Если вы использовали
npm start
, следующая команда также удаляет надстройку.npm stop
Если вы вручную загрузили неопубликованную надстройку, см. статью Удаление неопубликоченной надстройки.
Дальнейшие действия
Поздравляем, вы успешно создали пользовательскую функцию в надстройке Excel! Затем создайте более сложную надстройку с возможностью потоковой передачи данных. Следующая ссылка поможет вам выполнить дальнейшие действия в руководстве по надстройке Excel с пользовательскими функциями.
Устранение неполадок
Убедитесь, что ваша среда готова к разработке в Office, следуя инструкциям в разделе Настройка среды разработки.
В некоторых примерах кода используется ES6 JavaScript. Это несовместимо с более старыми версиями Office, которые используют подсистему браузера Trident (Интернет-Обозреватель 11). Сведения о поддержке этих платформ в надстройке см. в разделе Поддержка более старых веб-представлений Майкрософт и версий Office. Если у вас еще нет подписки Microsoft 365 для разработки, вы можете получить право на Microsoft 365 E5 подписку разработчика в рамках программы microsoft 365 для разработчиков. Дополнительные сведения см. в разделе Вопросы и ответы. Кроме того, вы можете зарегистрироваться для получения бесплатной пробной версии на 1 месяц или приобрести план Microsoft 365.
- Автоматическое
npm install
выполнение шага Yo Office может завершиться ошибкой. Если при попытке запуститьnpm start
вы видите ошибки , перейдите в только что созданную папку проекта в командной строке и вручную запуститеnpm install
. Дополнительные сведения о Yo Office см. в статье Создание проектов надстроек Office с помощью генератора Yeoman.
При многократном выполнении быстрого запуска могут возникнуть проблемы. Если в кэше Office уже есть экземпляр функции с таким же именем, в вашей надстройке возникнет ошибка при ее загрузке без публикации. Это можно предотвратить, очистив кэш Office перед запуском
npm run start
и обязательно выполнив запускnpm stop
перед перезапуском надстройки.
См. также
Office Add-ins