Работа с листами с использованием API JavaScript для ExcelWork with worksheets using the Excel JavaScript API

В этой статье приведены примеры кода, в которых показано, как выполнять стандартные задачи для листов с использованием API JavaScript для Excel. Полный список свойств и методов, поддерживаемых объектами Worksheet и WorksheetCollection, см. в статьях Объект Worksheet (API JavaScript для Excel) и Объект WorksheetCollection (API JavaScript для Excel).This article provides code samples that show how to perform common tasks with worksheets using the Excel JavaScript API. For the complete list of properties and methods that the Worksheet and WorksheetCollection objects support, see Worksheet Object (JavaScript API for Excel) and WorksheetCollection Object (JavaScript API for Excel).

Примечание

Сведения в этой статье применимы только к обычным листам, а не к листам диаграмм или макросов.The information in this article applies only to regular worksheets; it does not apply to "chart" sheets or "macro" sheets.

Получение листовGet worksheets

В примере кода ниже показано, как возвратить коллекцию листов, загрузить свойство name каждого листа и записать сообщение в консоль.The following code sample gets the collection of worksheets, loads the name property of each worksheet, and writes a message to the console.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;
    sheets.load("items/name");

    return context.sync()
        .then(function () {
            if (sheets.items.length > 1) {
                console.log(`There are ${sheets.items.length} worksheets in the workbook:`);
            } else {
                console.log(`There is one worksheet in the workbook:`);
            }
            sheets.items.forEach(function (sheet) {
              console.log(sheet.name);
            });
        });
}).catch(errorHandlerFunction);

Примечание

Свойство id листа уникальным образом идентифицирует лист в конкретной книге, и его значение не изменяется даже при переименовании или перемещении листа. При удалении листа из книги в Excel для Mac id удаленного листа можно назначить новому листу (созданному после удаления).The id property of a worksheet uniquely identifies the worksheet in a given workbook and its value will remain the same even when the worksheet is renamed or moved. When a worksheet is deleted from a workbook in Excel on Mac, the id of the deleted worksheet may be reassigned to a new worksheet that is subsequently created.

Получение активного листаGet the active worksheet

В примере кода ниже показано, как получить активный лист, загрузить его свойство name и записать сообщение в консоль.The following code sample gets the active worksheet, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The active worksheet is "${sheet.name}"`);
        });
}).catch(errorHandlerFunction);

Задание активного листаSet the active worksheet

В примере кода ниже показано, как задать лист Sample (Пример) в качестве активного, загрузить его свойство name и записать сообщение в консоль. Если нет листа с таким именем, метод activate() создаст ошибку ItemNotFound.The following code sample sets the active worksheet to the worksheet named Sample, loads its name property, and writes a message to the console. If there is no worksheet with that name, the activate() method throws an ItemNotFound error.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    sheet.activate();
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The active worksheet is "${sheet.name}"`);
        });
}).catch(errorHandlerFunction);

Ссылка на листы по их относительным положениямReference worksheets by relative position

В примерах ниже показано, как ссылаться на лист по его относительному положению.These examples show how to reference a worksheet by its relative position.

Получение первого листаGet the first worksheet

В примере кода ниже показано, как получить первый лист в книге, загрузить его свойство name и записать сообщение в консоль.The following code sample gets the first worksheet in the workbook, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var firstSheet = context.workbook.worksheets.getFirst();
    firstSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the first worksheet is "${firstSheet.name}"`);
        });
}).catch(errorHandlerFunction);

Получение последнего листаGet the last worksheet

В примере кода ниже показано, как получить последний лист в книге, загрузить его свойство name и записать сообщение в консоль.The following code sample gets the last worksheet in the workbook, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var lastSheet = context.workbook.worksheets.getLast();
    lastSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the last worksheet is "${lastSheet.name}"`);
        });
}).catch(errorHandlerFunction);

Получение следующего листаGet the next worksheet

В примере кода ниже показано, как получить лист, следующий за активным листом, в книге, загрузить его свойство name и записать сообщение в консоль. Если нет листа после активного листа, метод getNext() создаст ошибку ItemNotFound.The following code sample gets the worksheet that follows the active worksheet in the workbook, loads its name property, and writes a message to the console. If there is no worksheet after the active worksheet, the getNext() method throws an ItemNotFound error.

 Excel.run(function (context) {
    var currentSheet = context.workbook.worksheets.getActiveWorksheet();
    var nextSheet = currentSheet.getNext();
    nextSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the sheet that follows the active worksheet is "${nextSheet.name}"`);
        });
}).catch(errorHandlerFunction);

Получение предыдущего листаGet the previous worksheet

В примере кода ниже показано, как получить лист, предшествующий активному листу, в книге, загрузить его свойство name и записать сообщение в консоль. Если нет листа перед активным листом, метод getPrevious() создаст ошибку ItemNotFound.The following code sample gets the worksheet that precedes the active worksheet in the workbook, loads its name property, and writes a message to the console. If there is no worksheet before the active worksheet, the getPrevious() method throws an ItemNotFound error.

Excel.run(function (context) {
    var currentSheet = context.workbook.worksheets.getActiveWorksheet();
    var previousSheet = currentSheet.getPrevious();
    previousSheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`The name of the sheet that precedes the active worksheet is "${previousSheet.name}"`);
        });
}).catch(errorHandlerFunction);

Добавление листаAdd a worksheet

В примере кода ниже показано, как добавить лист Sample (Пример) в рабочую книгу, загрузить его свойства name и position и записать сообщение в консоль. Новый лист будет следовать за всеми остальными.The following code sample adds a new worksheet named Sample to the workbook, loads its name and position properties, and writes a message to the console. The new worksheet is added after all existing worksheets.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;

    var sheet = sheets.add("Sample");
    sheet.load("name, position");

    return context.sync()
        .then(function () {
            console.log(`Added worksheet named "${sheet.name}" in position ${sheet.position}`);
        });
}).catch(errorHandlerFunction);

Копирование существующего листаCopy an existing worksheet

Worksheet.copy добавляет новый лист, являющийся копией существующего листа.Worksheet.copy adds a new worksheet that is a copy of an existing worksheet. Имя нового листа будет содержать номер в конце по аналогии с копированием листов в пользовательском интерфейсе Excel (например, МойЛист (2)).The new worksheet's name will have a number appended to the end, in a manner consistent with copying a worksheet through the Excel UI (for example, MySheet (2)). Worksheet.copy может принимать два необязательных параметра:Worksheet.copy can take two parameters, both of which are optional:

  • positionType — перечисление WorksheetPositionType, указывающее, где в книге нужно добавить новый лист.positionType - A WorksheetPositionType enum specifying where in the workbook the new worksheet is to be added.
  • relativeTo — если параметру positionType присвоено значение Before или After, требуется указать лист, относительно которого нужно добавить новый лист (этот параметр отвечает на вопрос "До или после чего?").relativeTo - If the positionType is Before or After, you need to specify a worksheet relative to which the new sheet is to be added (this parameter answers the question "Before or after what?").

В примере кода ниже показано, как скопировать текущий лист и вставить новый лист непосредственно после текущего.The following code sample copies the current worksheet and inserts the new sheet directly after the current worksheet.

Excel.run(function (context) {
    var myWorkbook = context.workbook;
    var sampleSheet = myWorkbook.worksheets.getActiveWorksheet();
    var copiedSheet = sampleSheet.copy(Excel.WorksheetPositionType.after, sampleSheet);
    return context.sync();
});

Удаление листаDelete a worksheet

В примере кода ниже показано, как удалить последний лист в книге (если это не единственный лист в книге) и записать сообщение в консоль.The following code sample deletes the final worksheet in the workbook (as long as it's not the only sheet in the workbook) and writes a message to the console.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;
    sheets.load("items/name");

    return context.sync()
        .then(function () {
            if (sheets.items.length === 1) {
                console.log("Unable to delete the only worksheet in the workbook");
            } else {
                var lastSheet = sheets.items[sheets.items.length - 1];

                console.log(`Deleting worksheet named "${lastSheet.name}"`);
                lastSheet.delete();

                return context.sync();
            };
        });
}).catch(errorHandlerFunction);

Примечание

Лист с уровнем скрытия "надежно скрыт" невозможно удалить с помощью метода delete.A worksheet with a visibility of "Very Hidden" cannot be deleted with the delete method. Чтобы удалить лист, нужно сперва изменить его уровень скрытия.If you wish to delete the worksheet anyway, you must first change the visibility.

Переименование листаRename a worksheet

В примере ниже показано, как изменить имя активного листа на New Name (Новое имя).The following code sample changes the name of the active worksheet to New Name.

Excel.run(function (context) {
    var currentSheet = context.workbook.worksheets.getActiveWorksheet();
    currentSheet.name = "New Name";

    return context.sync();
}).catch(errorHandlerFunction);

Перемещение листаMove a worksheet

В примере ниже показано, как переместить лист из последней позиции в книге на первую.The following code sample moves a worksheet from the last position in the workbook to the first position in the workbook.

Excel.run(function (context) {
    var sheets = context.workbook.worksheets;
    sheets.load("items");

    return context.sync()
        .then(function () {
            var lastSheet = sheets.items[sheets.items.length - 1];
            lastSheet.position = 0;

            return context.sync();
        });
}).catch(errorHandlerFunction);

Настройка видимости листаSet worksheet visibility

В примерах ниже показано, как настроить видимость листа.These examples show how to set the visibility of a worksheet.

Скрытие листаHide a worksheet

В примере кода ниже показано, как сделать лист Sample (Пример) скрытым, загрузить его свойство name и записать сообщение в консоль.The following code sample sets the visibility of worksheet named Sample to hidden, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    sheet.visibility = Excel.SheetVisibility.hidden;
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`Worksheet with name "${sheet.name}" is hidden`);
        });
}).catch(errorHandlerFunction);

Отмена скрытия листаUnhide a worksheet

В примере кода ниже показано, как сделать лист Sample (Пример) видимым, загрузить его свойство name и записать сообщение в консоль.The following code sample sets the visibility of worksheet named Sample to visible, loads its name property, and writes a message to the console.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    sheet.visibility = Excel.SheetVisibility.visible;
    sheet.load("name");

    return context.sync()
        .then(function () {
            console.log(`Worksheet with name "${sheet.name}" is visible`);
        });
}).catch(errorHandlerFunction);

Получение одной ячейки листаGet a single cell within a worksheet

В примере кода ниже показано, как получить ячейку, расположенную в строке 2 и столбце 5 листа Sample (Пример), загрузить его свойства address и values и записать сообщение в консоль.The following code sample gets the cell that is located in row 2, column 5 of the worksheet named Sample, loads its address and values properties, and writes a message to the console. Значения, передаваемые в метод getCell(row: number, column:number), представляют собой индексируемые с нуля номера строк и столбцов получаемой ячейки.The values that are passed into the getCell(row: number, column:number) method are the zero-indexed row number and column number for the cell that is being retrieved.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    var cell = sheet.getCell(1, 4);
    cell.load("address, values");

    return context.sync()
        .then(function() {
            console.log(`The value of the cell in row 2, column 5 is "${cell.values[0][0]}" and the address of that cell is "${cell.address}"`);
        })
}).catch(errorHandlerFunction);

Обнаружение изменений данныхDetect data changes

Возможно, надстройке потребуется реагировать на изменения пользователями данных в листе.Your add-in may need to react to users changing the data in a worksheet. Чтобы обнаружить эти изменения, можно зарегистрировать обработчик событий для события onChanged листа.To detect these changes, you can register an event handler for the onChanged event of a worksheet. Обработчики события onChanged получают объект WorksheetChangedEventArgs при возникновении события.Event handlers for the onChanged event receive a WorksheetChangedEventArgs object when the event fires.

Объект WorksheetChangedEventArgs предоставляет сведения об изменениях и источнике.The WorksheetChangedEventArgs object provides information about the changes and the source. Так как событие onChanged возникает при изменении формата или значения данных, может быть полезно, чтобы надстройка проверяла, действительно ли значения изменились.Since onChanged fires when either the format or value of the data changes, it can be useful to have your add-in check if the values have actually changed. Свойство details объединяет эти сведения в виде интерфейса ChangedEventDetail.The details property encapsulates this information as a ChangedEventDetail. В следующем примере кода показано, как отобразить значения и типы измененной ячейки до и после изменения.The following code sample shows how to display the before and after values and types of a cell that has been changed.

// This function would be used as an event handler for the Worksheet.onChanged event.
function onWorksheetChanged(eventArgs) {
    Excel.run(function (context) {
        var details = eventArgs.details;
        var address = eventArgs.address;

        // Print the before and after types and values to the console.
        console.log(`Change at ${address}: was ${details.valueBefore}(${details.valueTypeBefore}),`
            + ` now is ${details.valueAfter}(${details.valueTypeAfter})`);
        return context.sync();
    });
}

Обработка событий сортировкиHandle sorting events

События onColumnSorted и onRowSorted указывают на сортировку любых данных на листе.The onColumnSorted and onRowSorted events indicate when any worksheet data is sorted. Эти события связаны с индивидуальными объектами Worksheet и с WorkbookCollection книги.These events are connected to individual Worksheet objects and to the workbook's WorkbookCollection. Они срабатывают при выполнении сортировки (программным образом или вручную с помощью пользовательского интерфейса Excel).They fire whether the sorting is done programmatically or manually through the Excel user interface.

Примечание

Событие onColumnSorted срабатывает при сортировке столбцов в результате операции сортировки слева направо.onColumnSorted fires when columns are sorted as the result of a left-to-right sort operation. Событие onRowSorted срабатывает при сортировке строк в результате операции сортировки сверху вниз.onRowSorted fires when rows are sorted as the result of a top-to-bottom sort operation. Сортировка таблицы с помощью раскрывающегося меню в заголовке столбца приводит к срабатыванию события onRowSorted.Sorting a table using the drop-down menu on a column header results in an onRowSorted event. Событие соответствует перемещаемым данным, а не критериям сортировки.The event corresponds with what is moving, not what is being considered as the sorting criteria.

События onColumnSorted и onRowSorted реализуют функции обратного вызова соответственно с помощью объектов WorksheetColumnSortedEventArgs и WorksheetRowSortedEventArgs.The onColumnSorted and onRowSorted events provide their callbacks with WorksheetColumnSortedEventArgs or WorksheetRowSortedEventArgs, respectively. Эти объекты предоставляют более подробную информацию о событии.These give more details about the event. В частности, оба EventArgs обладают свойством address, которое представляет строки или столбцы, перемещенные в результате операции сортировки.In particular, both EventArgs have an address property that represents the rows or columns moved as a result of the sort operation. Включаются все ячейки, содержимое которых было отсортировано, даже если значение ячейки не входит в состав критериев сортировки.Any cell with sorted content is included, even if that cell's value was not part of the sorting criteria.

На приведенных ниже рисунках показаны диапазоны, возвращенные свойством address для событий сортировки.The following images show the ranges returned by the address property for sort events. Вот образец данных до сортировки:First, here is the sample data before sorting:

Данные из таблицы в Excel до сортировки

Если выполнить сортировку сверху вниз для "Q1" (значения в "B"), WorksheetRowSortedEventArgs.address возвращает следующие выделенные строки:If a top-to-bottom sort is performed on "Q1" (the values in "B"), the following highlighted rows are returned by WorksheetRowSortedEventArgs.address:

Данные из таблицы в Excel после сортировки сверху вниз.

Если выполнить сортировку слева направо для "Quinces" (значения в "4") в исходных данных, WorksheetColumnsSortedEventArgs.address возвращает следующие выделенные столбцы:If a left-to-right sort is performed on "Quinces" (the values in "4") on the original data, the following highlighted columns are returned by WorksheetColumnsSortedEventArgs.address:

Данные из таблицы в Excel после сортировки слева направо.

В приведенном ниже примере кода показано, как зарегистрировать обработчик событий для события Worksheet.onRowSorted.The following code sample shows how to register an event handler for the Worksheet.onRowSorted event. Обратный вызов обработчика очищает цвет заливки для диапазона, затем применяет заливку к ячейкам перемещенных строк.The handler's callback clears the fill color for the range, then fills the cells of the moved rows.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();

    // This will fire whenever a row has been moved as the result of a sort action.
    sheet.onRowSorted.add(function (event) {
        return Excel.run(function (context) {
            console.log("Row sorted: " + event.address);
            var sheet = context.workbook.worksheets.getActiveWorksheet();

            // Clear formatting for section, then highlight the sorted area.
            sheet.getRange("A1:E5").format.fill.clear();
            if (event.address !== "") {
                sheet.getRanges(event.address).format.fill.color = "yellow";
            }

            return context.sync();
        });
    });

    return context.sync();
}).catch(errorHandlerFunction);

Поиск всех ячеек с соответствующим текстомFind all cells with matching text

У объекта Worksheet есть метод find для поиска указанной строки в листе.The Worksheet object has a find method to search for a specified string within the worksheet. Он возвращает объект RangeAreas, являющийся коллекцией объектов Range, которые можно отредактировать все сразу.It returns a RangeAreas object, which is a collection of Range objects that can be edited all at once. Приведенный ниже пример кода находит все ячейки со значениями, соответствующими строке Complete (Завершено), и окрашивает их зеленым цветом.The following code sample finds all cells with values equal to the string Complete and colors them green. Обратите внимание, что метод findAll выдаст ошибку ItemNotFound, если указанной строки не существует в листе.Note that findAll will throw an ItemNotFound error if the specified string doesn't exist in the worksheet. Если ожидается, что указанная строка может отсутствовать в листе, используйте вместо этого метод findAllOrNullObject, чтобы ваш код корректно обработал этот сценарий.If you expect that the specified string may not exist in the worksheet, use the findAllOrNullObject method instead, so your code gracefully handles that scenario.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getItem("Sample");
    var foundRanges = sheet.findAll("Complete", {
        completeMatch: true, // findAll will match the whole cell value
        matchCase: false // findAll will not match case
    });

    return context.sync()
        .then(function() {
            foundRanges.format.fill.color = "green"
    });
}).catch(errorHandlerFunction);

Примечание

В этом разделе описано, как найти ячейки и диапазоны с помощью функций объекта Worksheet.This section describes how to find cells and ranges using the Worksheet object's functions. Дополнительные сведения об извлечении диапазонов можно найти в статьях о конкретных объектах.More range retrieval information can be found in object-specific articles.

Фильтрация данныхFilter data

Объект AutoFilter применяет фильтры данных в диапазоне на листе.An AutoFilter applies data filters across a range within the worksheet. Он создается с помощью метода Worksheet.autoFilter.apply, содержащего следующие параметры:This is created with Worksheet.autoFilter.apply, which has the following parameters:

  • range: диапазон, к которому применяется фильтр, указанный в виде объекта Range или строки.range: The range to which the filter is applied, specified as either a Range object or a string.
  • columnIndex: отсчитываемый от нуля индекс столбца, по которому оценивается условие фильтра.columnIndex: The zero-based column index against which the filter criteria is evaluated.
  • criteria: объект FilterCriteria, определяющий, какие строки следует фильтровать на основе ячейки столбца.criteria: A FilterCriteria object determining which rows should be filtered based on the column's cell.

В первом примере кода показано, как добавить фильтр в используемый диапазон на листе.The first code sample shows how to add a filter to the worksheet's used range. Этот фильтр скрывает записи, не входящие в верхние 25 %, на основе значений в столбце 3.This filter will hide entries that are not in the top 25%, based on the values in column 3.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    var farmData = sheet.getUsedRange();

    // This filter will only show the rows with the top 25% of values in column 3.
    sheet.autoFilter.apply(farmData, 3, { criterion1: "25", filterOn: Excel.FilterOn.topPercent });
    return context.sync();
}).catch(errorHandlerFunction);

В следующем примере кода показано, как обновить автофильтр, используя метод reapply.The next code sample shows how to refresh the auto-filter using the reapply method. Это следует выполнять при изменении данных в диапазоне.This should be done when the data in the range changes.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    sheet.autoFilter.reapply();
    return context.sync();
}).catch(errorHandlerFunction);

В последнем примере кода автофильтра показано, как удалить автофильтр с листа с помощью метода remove.The final auto-filter code sample shows how to remove the auto-filter from the worksheet with the remove method.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    sheet.autoFilter.remove();
    return context.sync();
}).catch(errorHandlerFunction);

Объект AutoFilter также можно применять к отдельным таблицам.An AutoFilter can also be applied to individual tables. Дополнительные сведения см. в статье Работа с таблицами с использованием API JavaScript для Excel.See Work with tables using the Excel JavaScript API for more information.

Защита данныхData protection

Надстройка может управлять возможностью пользователя по изменению данных на листе.Your add-in can control a user's ability to edit data in a worksheet. Свойство protection листа является объектом WorksheetProtection с методом protect().The worksheet's protection property is a WorksheetProtection object with a protect() method. В приведенном ниже примере показан основной сценарий переключения полной защиты активного листа.The following example shows a basic scenario toggling the complete protection of the active worksheet.

Excel.run(function (context) {
    var activeSheet = context.workbook.worksheets.getActiveWorksheet();
    activeSheet.load("protection/protected");

    return context.sync().then(function() {
        if (!activeSheet.protection.protected) {
            activeSheet.protection.protect();
        }
    })
}).catch(errorHandlerFunction);

Метод protect содержит два необязательных параметра:The protect method has two optional parameters:

  • options: объект WorksheetProtectionOptions, определяющий конкретные ограничения на редактирование.options: A WorksheetProtectionOptions object defining specific editing restrictions.
  • password: строка, представляющая пароль, необходимый пользователю для обхода защиты и редактирования листа.password: A string representing the password needed for a user to bypass protection and edit the worksheet.

В статье Защита листа содержатся дополнительные сведения о защите листа и ее изменении с помощью пользовательского интерфейса Excel.The article Protect a worksheet has more information about worksheet protection and how to change it through the Excel UI.

Параметры разметки страницы и печатиPage layout and print settings

Надстройкам доступны параметры разметки страницы на уровне листа.Add-ins have access to page layout settings at a worksheet level. Они управляют печатью листа.These control how the sheet is printed. У объекта Worksheet есть три связанных с разметкой свойства: horizontalPageBreaks, verticalPageBreaks, pageLayout.A Worksheet object has three layout-related properties: horizontalPageBreaks, verticalPageBreaks, pageLayout.

Worksheet.horizontalPageBreaks и Worksheet.verticalPageBreaks относятся к PageBreakCollections.Worksheet.horizontalPageBreaks and Worksheet.verticalPageBreaks are PageBreakCollections. Это коллекции объектов PageBreak, указывающих диапазоны вставки разрывов страниц, добавляемых вручную.These are collections of PageBreaks, which specify ranges where manual page breaks are inserted. В следующем примере кода добавляется горизонтальный разрыв страницы над строкой 21.The following code sample adds a horizontal page break above row 21.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    sheet.horizontalPageBreaks.add("A21:E21"); // The page break is added above this range.
    return context.sync();
}).catch(errorHandlerFunction);

Worksheet.pageLayout является объектом PageLayout.Worksheet.pageLayout is a PageLayout object. Этот объект содержит параметры разметки и печати, не зависящие от применения конкретного принтера.This object contains layout and print settings that are not dependent any printer-specific implementation. Эти параметры включают поля, ориентацию, нумерацию страницы, строки заголовков и область печати.These settings include margins, orientation, page numbering, title rows, and print area.

В следующем примере кода страница выравнивается по центру (по вертикали и горизонтали), устанавливается строка заголовка, которая печатается в верхней части каждой страницы, и задается подраздел листа в качестве области печати.The following code sample centers the page (both vertically and horizontally), sets a title row that will be printed at the top of every page, and sets the printed area to a subsection of the worksheet.

Excel.run(function (context) {
    var sheet = context.workbook.worksheets.getActiveWorksheet();

    // Center the page in both directions.
    sheet.pageLayout.centerHorizontally = true;
    sheet.pageLayout.centerVertically = true;

    // Set the first row as the title row for every page.
    sheet.pageLayout.setPrintTitleRows("$1:$1");

    // Limit the area to be printed to the range "A1:D100".
    sheet.pageLayout.setPrintArea("A1:D100");

    return context.sync();
}).catch(errorHandlerFunction);

См. такжеSee also