Excel加载项:在Office for Mac v16中,在deleteAllDataValuesAsync之后,addRowsAsync不起作用

时间:2019-06-12 14:46:48

标签: javascript office-js

我们为Office Excel女士创建了一个新的加载项。它从我们的API请求数据,并将数据加载到Excel工作表上的表格中。 它不适用于Mac上的Office。我正在16.26版中进行测试。当我们尝试获得Windows商店的批准时,它失败了,但是它已经通过了所有其他平台,包括Safari中的Excel Online。

我已将问题缩小为在完成deleteAllDataValuesAsync之后无法执行addRowsAsync。 完成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);
        }
    );
}

即使使用野生动物园进行调试,我也没有错误消息

1 个答案:

答案 0 :(得分:0)

这听起来像是一个愚蠢的答案,但是在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);
        }
    );
}