Надстройка Excel: addRowsAsync не работает после deleteAllDataValuesAsync в Office для Mac v16 - PullRequest
0 голосов
/ 12 июня 2019

Мы создали новую надстройку для MS Office Excel. Он запрашивает данные из нашего API и загружает данные в таблицу на листе Excel. Он не работает на Office для Mac. Я тестирую в версии 16.26. Не удалось, когда мы попытались получить одобрение в магазине Windows, однако он прошел все другие платформы, включая Excel Online в Safari.

Я сузил проблему до невозможности сделать addRowsAsync после выполнения deleteAllDataValuesAsync. После удаления deleteAllDataValuesAsync я как будто уже не могу добраться до таблицы. Если я закомментирую deleteAllDataValuesAsync, таблица будет загружена данными. Это, конечно, работает только в первый раз. После deleteAllDataValuesAsync я даже больше не могу получить доступ к «this» в обратном вызове, я могу обойти это, но он все равно не загружает таблицу.

this.dataBinding.deleteAllDataValuesAsync({},() => 
{
    this.addDataToTable(data, curveDefinitions, filteredArray, dateFormat, userNumberFormat);
});

addDataToTable(data, curveDefinitions, filteredArray, dateFormat, userNumberFormat) 
{
    var firstRowToTransport = 0;
    var firstChunck = true;
    Office.context.document.bindings.getByIdAsync(
        this.dataBinding.id,
        asyncResult => 
        {
            this.dataBinding = asyncResult.value;
            this.transportChunkwiseToExcel(
                data, curveDefinitions, filteredArray, firstRowToTransport, firstChunck);
        }
    );
}

У меня нет сообщения об ошибке даже при отладке с помощью safari

1 Ответ

0 голосов
/ 12 июня 2019

Это звучит как глупый ответ, но может ли это быть лишней запятой после firstChunk?

this.dataBinding.deleteAllDataValuesAsync({},() => 
{
    this.addDataToTable(data, curveDefinitions, filteredArray, dateFormat, userNumberFormat);
});

addDataToTable(data, curveDefinitions, filteredArray, dateFormat, userNumberFormat) 
{
    var firstRowToTransport = 0;
    var firstChunck = true;
    Office.context.document.bindings.getByIdAsync(
        this.dataBinding.id,
        asyncResult => 
        {
            this.dataBinding = asyncResult.value;
            this.transportChunkwiseToExcel(
                data, curveDefinitions, filteredArray, firstRowToTransport, firstChunck);
        }
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...