我们正在使用office js API将数据写入表中。该代码在2016年11月底之前在excel在线工作正常,之后它停止了工作。
代码只是将值设置为表,并且它尝试写入的单元格总数小于10,000,并且设置值的方法是:
dataTable.getHeaderRowRange().values = [data.headerValues];
dataTable.getDataBodyRange().formulas = data.values;
dataTable.getTotalRowRange().formulas = [data.totalRow];
重现问题的完整代码托管在GitHub
中您可以使用以下清单在线办公代码:
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
<Id>5B1D06A5-5F14-4B8F-B07D-E698084397F6</Id>
<Version>1.0.0.0</Version>
<ProviderName>Provider</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Testing Office API" />
<Description DefaultValue="Testing Office API"/>
<Hosts>
<Host Name="Workbook" />
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="https://renil-abdulkader.github.io/office-js-api-testing/" />
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
</OfficeApp>
单击“加载数据”按钮将只写入部分数据,控制台将显示以下错误:{"name":"OfficeExtension.Error","code":"GeneralException","message":"There was an internal error while processing the request.","traceMessages":[],"debugInfo":{"errorLocation":"Range.formulas"}}
。
一旦发生这种情况,其他问题是:
You are no longer connected to the server
错误消息。更新1:我们正在编写68行,每行136列。更新了代码以写入前40行和后30行,并且该代码工作正常,但不是整个68行。因此,数据本身不应该存在问题。
答案 0 :(得分:0)
这是由于在线平台出现超时错误。作为缓解步骤,是否可以在块中执行大型公式(或值)更新,以便没有一个单个请求遇到超时问题?块大小可能取决于环境。也许2K细胞开始? 如果我们能够提供替代解决方案,我将对此主题进行跟进。