Именование и локализация пользовательских функций
В этой статье описаны рекомендации и рекомендации по именованию пользовательских функций. В ней также показано, как локализовать пользовательские имена функций на языках, отличных от английского.
Правила именования пользовательских функций
Пользовательская функция определяется свойством id
и name
в файле метаданных JSON.
- Функция
id
используется для уникальной идентификации пользовательских функций в коде JavaScript. - Функция
name
используется в качестве отображаемого имени, которое отображается пользователю в Excel.
Важно!
Обратите внимание, что настраиваемые функции доступны в Excel на следующих платформах.
- Office в Интернете
- Office для Windows
- Подписка на Microsoft 365
- Розничный бессрочный Office 2016 и более поздних версий
- Корпоративный бессрочный Office 2021 и более поздних версий
- Office для Mac
Пользовательские функции Excel в настоящее время не поддерживаются в следующих приложениях:
- Office для iPad
- корпоративные бессрочные версии Office 2019 или более ранних версий в Windows
Функция name
может отличаться от функции id
, например для локализации. Как правило, функции name
должны оставаться теми же, что и , id
если нет причин для их различий.
Функции name
и id
совместно используют некоторые общие требования.
Функция
id
может использовать только символы от A до Z, числа от нуля до девяти, символы подчеркивания и точки.Функция
name
может использовать любые алфавитные символы Юникода, символы подчеркивания и точки.name
Функция иid
должны начинаться с буквы и иметь минимальное ограничение в три символа.
Excel использует прописные буквы для встроенных имен функций (например SUM
, ). Используйте прописные буквы для пользовательской name
функции и id
, как рекомендуется.
Функция name
не должна совпадать с:
Любые ячейки между A1 и XFD1048576 или любые ячейки между R1C1 и R1048576C16384.
Любая функция макросов Excel 4.0 (например
RUN
, ).ECHO
Полный список этих функций см. в этом справочном документе по функциям макросов Excel.
Конфликты именования
Если функция name
совпадает с функцией name
в надстройке, которая уже существует, в книге появится ошибка #REF! .
Чтобы устранить конфликт именования, измените в надстройке name
и повторите попытку. Вы также можете удалить надстройку с конфликтующим именем. Или, если вы тестируете надстройку в разных средах, попробуйте использовать другое пространство имен, чтобы различать функцию (например NAMESPACE_NAMEOFFUNCTION
, ).
Лучшие методики
- Рассмотрите возможность добавления нескольких аргументов в функцию, а не создания нескольких функций с одинаковыми или похожими именами.
- Избегайте неоднозначных сокращений в именах функций. Ясность важнее краткости. Выберите имя, например
=INCREASETIME
, а не=INC
. - Имена функций должны указывать на действие функции, например =GETZIPCODE, а не ZIPCODE.
- Последовательно используйте одни и те же команды для функций, выполняющих аналогичные действия. Например, используйте
=DELETEZIPCODE
и=DELETEADDRESS
, а не=DELETEZIPCODE
и=REMOVEADDRESS
. - При именовании функции потоковой передачи рекомендуется добавить к ней примечание в описании функции или добавить
STREAM
в конец имени функции.
Совет
Если вы будете тестировать надстройку в нескольких средах (например, в среде разработки, промежуточной подготовки, демонстрации и т. д.), рекомендуется поддерживать разные файлы манифеста для каждой среды. В каждом файле манифеста можно:
- Указать URL-адреса, соответствующие среде.
- Настроить значения метаданных, такие как
DisplayName
, и метки вResources
для указания среды, чтобы конечные пользователи могли определить соответствующую среду надстройки, загруженной без публикации. - Настроить пользовательские функции
namespace
, чтобы указать среду, если ваша надстройка определяет пользовательские функции.
Соблюдение этих рекомендаций поможет вам упорядочить процесс тестирования и избежать проблем, которые могли бы возникнуть при одновременной загрузке вашей надстройки для нескольких сред.
Локализация пользовательских функций
Вы можете локализовать как надстройку, так и пользовательские имена функций. Для этого укажите локализованные имена функций в JSON-файле функций и сведения о языковом стандарте в файле манифеста только надстройки.
Важно!
Автоматически созданные метаданные не работают для локализации, поэтому необходимо обновить JSON-файл вручную. Сведения о том, как это сделать, см . в статье Создание метаданных JSON вручную для пользовательских функций.
Локализация имен функций
Чтобы локализовать пользовательские функции, создайте новый файл метаданных JSON для каждого языка. В JSON-файле каждого языка добавьте name
свойства и description
на целевом языке. Файл по умолчанию для английского языка называется functions.json. Используйте языковой стандарт в имени файла для каждого дополнительного JSON-файла, например functions-de.json , чтобы помочь идентифицировать их.
И name
description
отображаются в Excel и локализованы. Однако id
для каждой функции не выполняется локализация. Свойство id
— это то, как Excel определяет вашу функцию как уникальную, и ее не следует изменять после ее установки.
Важно!
Избегайте предоставления функции id
или name
, которая является встроенной функцией Excel на другом языке, так как это конфликтует с локализованными функциями.
В следующем формате JSON показано, как определить функцию со свойством id
"MULTIPLY". Свойство name
и description
функции локализуется для немецкого языка. Каждый параметр name
и description
также локализован для немецкого языка.
{
"id": "MULTIPLY",
"name": "SUMME",
"description": "Summe zwei Zahlen",
"helpUrl": "http://www.contoso.com",
"result": {
"type": "number",
"dimensionality": "scalar"
},
"parameters": [
{
"name": "eins",
"description": "Erste Nummer",
"dimensionality": "scalar"
},
{
"name": "zwei",
"description": "Zweite Nummer",
"dimensionality": "scalar"
},
],
}
Сравните предыдущий json со следующим json для английского языка.
{
"id": "MULTIPLY",
"name": "Multiply",
"description": "Multiplies two numbers",
"helpUrl": "http://www.contoso.com",
"result": {
"type": "number",
"dimensionality": "scalar"
},
"parameters": [
{
"name": "one",
"description": "first number",
"dimensionality": "scalar"
},
{
"name": "two",
"description": "second number",
"dimensionality": "scalar"
},
],
}
Локализация надстройки
После создания JSON-файла для каждого языка обновите файл манифеста только надстройки, указав значение переопределения для каждого языкового стандарта, указывающее URL-адрес каждого файла метаданных JSON. В следующем XML-коде манифеста показан языковой стандарт по умолчанию en-us
с URL-адресом JSON-файла переопределения для de-de
(Германия). Файл functions-de.json содержит локализованные немецкие имена и идентификаторы функций.
<DefaultLocale>en-us</DefaultLocale>
...
<Resources>
<bt:Urls>
<bt:Url id="Contoso.Functions.Metadata.Url" DefaultValue="https://localhost:3000/dist/functions.json"/>
<bt:Override Locale="de-de" Value="https://localhost:3000/dist/functions-de.json" />
</bt:url>
</bt:Urls>
</Resources>
Дополнительные сведения о процессе локализации надстройки см. в разделе Локализация надстроек Office.
Дальнейшие действия
Узнайте о рекомендациях по обработке ошибок.
См. также
Office Add-ins