Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Добавление параметров в скрипт позволяет другим пользователям предоставлять данные для скрипта без необходимости изменять код. При выполнении скрипта с помощью ленты или кнопки появляется запрос, который запрашивает у пользователя входные данные, например массив или книгу.
Пример сценария: выделение больших значений
В следующем примере показан скрипт, который принимает число и строку от пользователя. Чтобы протестировать его, откройте пустую книгу и введите несколько чисел в несколько ячеек.
/**
* This script applies a background color to cells over a certain value.
* @param highlightThreshold The value used for comparisons.
* @param color A string representing the color to make the high value cells.
* This must be a color code representing the color of the background,
* in the form #RRGGBB (e.g., "FFA500") or a named HTML color (e.g., "orange").
*/
function main(
workbook: ExcelScript.Workbook,
highlightThreshold: number,
color: string) {
// Get the used cells in the current worksheet.
const currentSheet = workbook.getActiveWorksheet();
const usedRange = currentSheet.getUsedRange();
const rangeValues = usedRange.getValues();
for (let row = 0; row < rangeValues.length; row++) {
for (let column = 0; column < rangeValues[row].length; column++) {
if (rangeValues[row][column] >= highlightThreshold) {
usedRange.getCell(row, column).getFormat().getFill().setColor(color);
}
}
}
}
main параметры: передача данных в скрипт
Все входные данные скрипта указываются в качестве дополнительных main параметров для функции. После обязательного workbook: ExcelScript.Workbook параметра добавляются новые параметры. Например, если вы хотите, чтобы скрипт принимал string , который представляет имя в качестве входных данных, необходимо изменить подпись на mainfunction main(workbook: ExcelScript.Workbook, name: string).
Чтобы разрешить пользователям импортировать книгу с параметризованным скриптом, используйте двумерный массив для каждого параметра, который принимает книгу. Параметр может иметь тип string или number. В следующем примере показано, как создать скрипт, который принимает импорт книги для обоих параметров.
/**
* This script generates a monthly sales report.
* @param productData The product data for this month.
* @param salesData The sales data for this month.
*/
function main(workbook: ExcelScript.Workbook, productData: string[][], salesData: string[][]) {
// Code to process data goes here.
// Both the `productData` and `salesData` parameters accept workbook imports.
}
Необязательные параметры
Необязательные параметры не требуют, чтобы пользователь предоставлял значение. Это означает, что скрипт имеет поведение по умолчанию или этот параметр требуется только в угловом случае. Они обозначаются в скрипте необязательным модификатором?. Например, параметр function main(workbook: ExcelScript.Workbook, Name?: string) является Name необязательным.
Значения параметров по умолчанию
Значения параметров по умолчанию автоматически заполняют поле действия значением. Чтобы задать значение по умолчанию, присвойте параметру в сигнатуре main значение. Например, в function main(workbook: ExcelScript.Workbook, location: string = "Seattle") параметре location есть значение "Seattle" , если не указано что-то другое.
Раскрывающийся список параметров
Помогите другим пользователям, использующим ваш сценарий, в своем потоке, предоставив список допустимых вариантов параметров. Если скрипт использует небольшое подмножество значений, создайте параметр, представляющий собой эти литеральные значения. Для этого объявив тип параметра объединением значений литерала. Например, в function main(workbook: ExcelScript.Workbook, location: "Seattle" | "Redmond") параметре location может быть "Seattle" только или "Redmond". При выполнении скрипта пользователи получают раскрывающийся список с этими двумя параметрами.
Документирование скрипта
Примечания кода, которые соответствуют стандартам JSDoc , будут отображаться пользователям при выполнении скрипта. Чем больше сведений вы вложите в описания, тем проще будет для других в скриптах. Опишите назначение каждого входного параметра и любые ограничения или ограничения. В следующем примере JSDoc показано, как документировать скрипт с number помощью параметра с именем taxRate.
/**
* A script to apply the current tax rate to sales figures.
* @param taxRate The current sales tax rate in the region as a decimal number (enter 12% as .12).
*/
function main(workbook: ExcelScript.Workbook, taxRate: number)
Примечание.
Вам не нужно документировать ExcelScript.Workbook параметр в каждом скрипте.
Ограничения типов
При добавлении входных параметров и возвращаемых значений учитывайте следующие ограничения и ограничения.
Первый параметр должен иметь тип
ExcelScript.Workbook. Имя параметра не имеет значения.Типы
string,number,boolean,unknownиobject.Поддерживаются массивы (и
[]Array<T>стили) ранее перечисленных типов. Также поддерживаются вложенные массивы.Типы объединения разрешены, если они являются объединением литерал, принадлежащих к одному типу (например, , а
"Left" | "Right"не"Left" | 5).Типы объектов допускаются, если они содержат свойства типа
string,number,boolean, поддерживаемые массивы или другие поддерживаемые объекты. В следующем примере показаны вложенные объекты, которые поддерживаются в качестве типов параметров.// The Employee object is supported because Position is also composed of supported types. interface Employee { name: string; job: Position; } interface Position { id: number; title: string; }Объекты должны иметь определение интерфейса или класса в скрипте. Объект также можно определить анонимно, как показано в следующем примере.
function main(workbook: ExcelScript.Workbook, contact: {name: string, email: string})