【发布时间】:2017-01-13 06:41:20
【问题描述】:
我们正在使用 office js API 将数据写入表。该代码在 2016 年 11 月之前在 excel online 上运行良好,之后停止运行。
代码只是将值设置为表格,它尝试写入的单元格总数小于 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"}}。
发生这种情况后的其他问题是:
- 添加绑定会失败
- 一旦绑定失败,删除选项卡就会开始失败
- 如果 Excel 表上有多个用户,用户将开始收到
You are no longer connected to the server错误消息。
更新 1:我们正在写入 68 行,每行 136 列。更新了代码以编写前 40 行和后 30 行,该代码工作正常,但不是整个 68 行。所以数据本身应该没有问题。
【问题讨论】:
-
我怀疑您已达到 Excel 的存储限制。对于清单建议大小的用户,您需要使用数据库来存储数据。 Connect to a Azure SQL Database/SQL Server from Office 365 可能会引导您找到解决方案。
-
存储限制在哪里指定?
-
这个数据肯定不会达到 10MB 的限制,正如我所提到的,这在之前运行良好。
-
当然。更新了我从 office API 得到的错误信息。此外,如果您愿意,可以使用上面提供的清单运行代码。
-
能够重现错误。会回复的。
标签: office-js