Как заблокировать диапазон в Excel через офисную надстройку - PullRequest
0 голосов
/ 06 ноября 2018

Я разрабатываю надстройку для Excel с использованием js. Я хочу заблокировать некоторые ячейки или строки или столбцы, в то время как другие ячейки еще можно редактировать Я не нашел документ об этом.

Я попробовал следующий код, но диапазон не заблокирован.

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    const range = sheet.getRange("B2:E5");
    range.format.protection.locked = true;

    await context.sync();
});

Я нашел решение:

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    var wholerange = sheet.getRange();
    wholerange.format.protection.locked = false;

    var range = sheet.getRange("A2:D5");
    range.format.protection.locked = true;

    sheet.protection.protect({ allowInsertRows: true });
    await context.sync();
});

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Я нашел решение, обратитесь к Как заблокировать только выделенные ячейки через Excel JavaScript API

await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getActiveWorksheet();
    var wholerange = sheet.getRange();
    wholerange.format.protection.locked = false;

    var range = sheet.getRange("A2:D5");
    range.format.protection.locked = true;

    sheet.protection.protect({ allowInsertRows: true });
    await context.sync();
});
0 голосов
/ 06 ноября 2018

Вы можете сделать это, используя свойство Range.format.protection. См., Например, Range.format и FormatProjection .

UPDATE: Диапазоны блокировки работают в сочетании с защитой рабочего листа. Блокировка / разблокировка диапазонов не действует до тех пор, пока лист не будет защищен. См. Рабочий лист защиты .

Кроме того, логика блокировки диапазона такая же, как и в случае, когда конечный пользователь блокирует диапазоны в пользовательском интерфейсе Excel: все ячейки будут заблокированы по умолчанию, когда рабочий лист защищен. Поэтому, прежде чем защитить лист, вы UN заблокируете ячейки, которые не должны быть заблокированы. Пожалуйста, работайте с блокировкой и защитой как конечный пользователь, пока вы не ознакомитесь с тем, как это работает и каковы варианты. Например, см. Эту страницу Блокировка ячеек Excel .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...