Поделиться через


Общее представление о пользовательских функциях служб Excel

Дата последнего изменения: 17 марта 2010 г.

Применимо к: SharePoint Server 2010

Пользовательские функции (UDF) представляют собой настраиваемые функции, расширяющие возможности вычислений и импорта данных в Excel. Разработчики могут создавать настраиваемые пакеты вычислений для предоставления:

  • функций, не встроенных в Excel;

  • специальных реализаций встроенных функций;

  • настраиваемых каналов данных для устаревших или неподдерживаемых источников данных и потоков данных, определяемых приложениями.

Пользователи, создающие книги, могут вызывать пользовательские функции из ячейки с помощью формул, например "=MyUdf(A1*3,42)", аналогично встроенным функциям.

Пользовательские функции служб Excel обеспечивают возможность использовать формулы в ячейках для вызова настраиваемых функций, созданных в управляемом коде и развернутых в Microsoft SharePoint Server 2010. Пользовательские функции можно создавать для:

  • вызова специальных математических функций;

  • получения данных из настраиваемых источников данных для помещения их в листы;

  • вызова веб-служб из пользовательских функций.

Создание пользовательских функций с управляемым кодом

Самый простой способ создания пользовательской функции служб Excel с управляемым кодом — использование шаблона библиотеки классов Microsoft Visual Studio 2005. Потребуется создать ссылку на библиотеку DLL пользовательской функции служб Excel с именем Microsoft.Office.Excel.Server.Udf.dll в проекте пользовательской функции с управляемым кодом.

Microsoft.Office.Excel.Server.Udf.dll скомпилирована с помощью Microsoft .NET Framework 2.0. При использовании Visual Studio 2003 для создания пользовательской функции с управляемым кодом сослаться на библиотеку Microsoft.Office.Excel.Server.Udf.dll будет невозможно. Сборка, созданная в предыдущей версии .NET Framework, не может ссылаться на сборку, созданную с помощью .NET Framework 2.0.

Обязательные атрибуты

Для использования настраиваемых функций в классе в качестве класса UDF служб Excel необходимо пометить класс UDF атрибутом Microsoft.Office.Excel.Server.Udf.UdfClass. Классы, не помеченные этим атрибутом в сборке UDF, будут пропускаться службы вычислений Excel. Они не будут считаться классами UDF служб Excel.

Для использования настраиваемых функций в классе в качестве методов UDF служб Excel необходимо пометить методы UDF атрибутом Microsoft.Office.Excel.Server.Udf.UdfMethod. Методы, не помеченные этим атрибутом в сборке UDF, будут пропущены, так как не будут считаться методами UDF служб Excel.

Атрибут Microsoft.Office.Excel.Server.Udf.UdfMethod имеет свойство IsVolatile. Свойство IsVolatile используется для обозначения метода UDF как переменного или постоянного. Свойство IsVolatile принимает логическое значение. Значение по умолчанию — false, означающее, что данный метод UDF является постоянным.

Расположение библиотеки Microsoft.Office.Excel.Server.Udf.dll

На компьютере, где установлена система SharePoint Server 2010, можно найти копию Microsoft.Office.Excel.Server.Udf.dll по следующему пути:

[drive:]\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI

Развертывание и безопасность

Тип расположения развертывания

Сборки UDF могут располагаться в локальном каталоге, глобальном кэше сборок или в сетевой папке. При использовании в ферме путь к локальному каталогу должен быть одинаков для всех участников фермы.

Идентификация сборок UDF

Идентифицировать сборку UDF можно, указав полный путь или строгое имя сборки для вызова служб вычислений Excel.

Например, можно использовать следующий путь:

  • C:\UDFs\MySampleUdf.dll

  • \\мой_сетевой_сервер\UDFs\MySampleUdf.dll

  • CompanyName.Hierarchichal.MyUdfNamespace.MyUdfClassName.dll, Version=1.1.0.0, Culture=en, PublicKeyToken=e8123117d7ba9ae38

Включение сборок UDF

Сборки UDF по умолчанию отключены.

Каждое надежное расположение служб Excel помечено флагом AllowUdfs.

ПримечаниеПримечание

Флаг AllowUdfs обозначается параметром Разрешенных пользовательских функций на странице "Надежные расположения файлов" служб Excel. Сведения о том, как перейти к странице "Надежные расположения файлов", см. в разделе Шаг 3. Развертывание и включение пользовательских функций.

Значение по умолчанию флага AllowUdfs — false. Если в определенном надежном расположении для флага AllowUdfs задано значение false, значит книгам в этом расположении запрещено вызывать пользовательские функции.

Чтобы разрешить вызов пользовательских функций из конкретного надежного расположения, необходимо задать для флага AllowUdfs значение true.

Если при запуске сценария в книге, имеющей вызовы пользовательских функций в данном надежном расположении, для флага AllowUdfs будет задано значение false, будет происходить сбой таких вызовов. При изменении значения флага AllowUdfs на true после запуска сеанса вызовы также не будут выполняться. Это связано с тем, что изменения флага AllowUdfs вступают в силу в следующем сеансе после обновления базы данных конфигурации.

Разрешение выполнения сборок UDF

Если администратору требуется разрешить выполнение сборок UDF, необходимо зарегистрировать все сборки UDF и разрешить книгам вызывать пользовательские функции, задав для флага AllowUdfs значение true в надежных расположениях.

Перезагрузка сборки UDF

Для перезагрузки сборки UDF можно выполнить команду iisreset или перезапустить домен приложений служб вычислений Excel.

Предупреждающая заметкаВнимание!

Перезапуск IIS приведет к сбросу всех текущих сеансов.

Дополнительные сведения см. в разделе Включение пользовательских функций.

Дополнительные сведения см. в статье Выгрузка приложения из памяти (Возможно, на английском языке) (https://msdn.microsoft.com/ru-ru/library/ms943779).

Разрешение разграничения доступа кода по умолчанию для сборок UDF

По умолчанию сборки UDF выполняются с уровнем "полное доверие".

Ограничение разрешения разграничения доступа кода для сборок UDF

Если требуется запретить выполнение определенной сборки UDF с уровнем полного доверия, необходимо явно ограничить разрешение безопасности разграничения доступа кода для этой сборки UDF. Можно настроить такие группы кода и ограничить разрешение с помощью средства настройки .NET Framework 2.0.

Разработчики также могут использовать методы RequestMinimum и RequestOptional в своем коде, чтобы гарантировать, что их сборки UDF не получат больше разрешений, чем им требуется.

Дополнительные сведения о настройке групп кода, а также о методах RequestMinimum и RequestOptional см. в следующих статьях в сети MSDN:

См. также

Задачи

Создание пользовательской функции, вызывающей веб-службу

Инструкции по определению надежного расположения

Практическое руководство. Перехват исключений

Включение пользовательских функций

Концепции

Пошаговое руководство. Разработка пользовательской функции с управляемым кодом

Вопросы и ответы по пользовательским функциям служб Excel

Архитектура служб Excel

Excel Services Alerts

Известные проблемы и советы по работе со службами Excel

Рекомендации по работе со службами Excel