Я работаю над надстройкой Excel с помощью API Office JS. Я испытываю проблему при обновлении значений типа привязки "диапазон", когда объект таблицы был вставлен внутри границ диапазона.
Например, у меня есть привязка к A1: C3, и таблица была вставлена в пользовательский интерфейс Excel с использованием. Insert → Table
в B2: C3 с My table has headers
.
Использование нижеприведенной функции для обновления необработанных значений этого диапазона, похоже, удаляет объект таблицы.
В качестве альтернативы, если диапазон привязки меньше, чем объект таблицы, т.е. привязка внутри границ объекта таблицы, таблица и форматирование остаются.
var bindingId = "123";
var newValue = [["123","123","123"], ["123","123","123"], ["123","123","123"]];
return Excel.run(function (ctx) {
var binding = ctx.workbook.bindings.getItem(bindingId);
var range = binding.getRange().load('values, address');
return ctx.sync().then(function () {
range.values = newValue;
return ctx.sync();
});
});
Чтобы вернуть объект table
из вашей привязки, следует использовать bindingObject.getTable()
а не bindingObject.getRange()
.
Когда у вас есть объект table
, вы можете использовать метод table.rows.add()
для добавления одной или нескольких строк при сохранении существующей таблицы.