Выберите непрерывный диапазон - PullRequest
0 голосов
/ 08 мая 2018

Я создаю надстройку office-js для Excel. Мне нужно выбрать две несмежные ячейки (например, A1 и C3). Следующий код работает для выбора диапазона из нескольких ячеек, начиная с A1 и заканчивая C3.

    Excel.run(function (ctx) {
        var sheet = ctx.workbook.worksheets.getItem('sheet1');
        var range = sheet.getRange('a1:c3');
        range.select();
        return ctx.sync(); 
    });

Однако я хочу выбрать только две ячейки (A1 и C3). В VBA синтаксис

worksheets("sheet1").range("a1,c3").select

Но я не могу найти ничего похожего в офисе-JS. Я пробовал аналогичный синтаксис с office-js:

Excel.run(function (ctx) {
        var sheet = ctx.workbook.worksheets.getItem('sheet1');
        var range = sheet.getRange('a1,c3');
        range.select();
        return ctx.sync(); 
});

но происходит сбой: {"code": "InvalidArgument", "message": "Аргумент недействителен или отсутствует или имеет неправильный формат.", "ErrorLocation": "Worksheet.getRange"}

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

На самом деле, на самых последних быстрых инсайдерах (16.0.9327.2006), развернутых всего несколько дней назад, вы можете попробовать нашу реализацию для областей (так называемых прерывистых диапазонов).

, пожалуйста, не забудьте использовать наш предварительный просмотр cdn, чтобы проверить это. (https://appsforoffice.microsoft.com/lib/beta/hosted/office.js)

но в основном вы можете делать такие вещи, как:

function run() {
    return Excel.run(function (context) {
        var range = context.workbook.getSelectedRange();
        range.load("address");
        return context.sync()
            .then(function () {
                console.log("The range address was \"" + range.address + "\".");
            });
    });
}

и вы увидите, что если вы выберете непостоянный диапазон, вы получите что-то вроде: «Лист1! C6: C14, Лист1! F12: H22».

вы можете передать аналогичную строку в метод getRange, чтобы создать Area и одновременно отформатировать ее и т. Д.

Пожалуйста, попробуйте и отправьте нам свой отзыв! Спасибо!

0 голосов
/ 08 мая 2018

API для работы с прерывистыми диапазонами еще не доступен в Office.js.Мы работаем над этим и дорабатываем дизайн прямо сейчас.Тем временем вам придется создавать отдельные объекты диапазона для двух ячеек и работать с каждой из них с помощью дублирующих команд.

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