Office JS API无法向表中写入少于10000个单元格值

时间:2017-01-05 19:47:26

标签: office-js

我们正在使用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"}}

一旦发生这种情况,其他问题是:

  1. 添加绑定将失败
  2. 绑定失败后,删除标签将开始失败
  3. 如果Excel工作表上有多个用户,则用户将开始收到You are no longer connected to the server错误消息。
  4. 更新1:我们正在编写68行,每行136列。更新了代码以写入前40行和后30行,并且该代码工作正常,但不是整个68行。因此,数据本身不应该存在问题。

1 个答案:

答案 0 :(得分:0)

这是由于在线平台出现超时错误。作为缓解步骤,是否可以在块中执行大型公式(或值)更新,以便没有一个单个请求遇到超时问题?块大小可能取决于环境。也许2K细胞开始? 如果我们能够提供替代解决方案,我将对此主题进行跟进。