Задать значения диапазона с произвольным размером массива в Excel Javascript API? - PullRequest
1 голос
/ 31 марта 2020

У меня есть некоторый вложенный массив данных, например что-то вроде [[1, 2], [2, 3, 4]], и я хотел бы иметь возможность эффективно обновлять значения ячеек на указанном c рабочем листе с этими данными.

Проблема, с которой я столкнулся, заключается в том, что данные не квадратные, и поэтому я сейчас:

  1. перебираю данные и получаю каждый подмассив, а затем проверка длины этого подмассива
  2. получение объекта диапазона для строки, которая соответствует индексу во внешнем массиве, то есть длине подмассива, который я сейчас обрабатываю.
  3. Установка значений этого однорядного объекта диапазона.

Мне интересно, есть ли способ сделать все эти установки значений за один шаг. Как мне построить объект диапазона, который а) позволит мне писать вне его границ, или б) очень не прямоугольный angular? Или есть какой-то другой способ лучше подойти к этому вопросу?

Большое спасибо за любую помощь. Я немного застрял в расчете, если это лучшее решение в течение нескольких дней. Еще раз спасибо!

1 Ответ

2 голосов
/ 31 марта 2020

Я думаю, что вы все еще можете составить прямоугольник, в вашем примере вы можете использовать [[1, 2,,], [2, 3, 4,]]

async function setValues() {
  await Excel.run(async (context) => {
    const sheet = context.workbook.worksheets.getItem("Sample");

    const data = [[1,2,,], [2,3,4,]];

    const range = sheet.getRange("B5:D6");
    range.values = data;

    await context.sync();
  });
}

Здесь является результатом теста, обратите внимание, что старое значение не будет заменено, если вы пропустили его при назначении диапазона.

enter image description here

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