Javascript 通过Ajax请求发送OfficeJS 2D数组

Javascript 通过Ajax请求发送OfficeJS 2D数组,javascript,ajax,flask,office-js,Javascript,Ajax,Flask,Office Js,我正试图在OfficeJS中发送一个“大”表: 从清单路由加载的functionfile.html 当我尝试data.values[0]时,我会得到一个值列表,这就是我所期望的 CombinedMultiDict([ImmutableMultiDict([('update_date', '43191'), ('accessData[]', 'Channel'), ... <All my column headers>, ImmutableMultiDict([])]) 我还尝试了J

我正试图在OfficeJS中发送一个“大”表:

从清单路由加载的functionfile.html 当我尝试
data.values[0]
时,我会得到一个值列表,这就是我所期望的

CombinedMultiDict([ImmutableMultiDict([('update_date', '43191'), ('accessData[]', 'Channel'), ... <All my column headers>, ImmutableMultiDict([])])
我还尝试了
JSON.stringify(data.values)
,得到了相同的错误消息:

Error == {"readyState":0,"status":0,"statusText":"error"}

我甚至尝试将每一列转换成某种列表,作为
accessData
中的嵌套键,但得到的错误消息是相同的。非常感谢您的帮助。

理想情况下,您应该将从Excel获取数据部分与ajax调用部分隔离开来。现在,这两者是交织在一起的,这使得它更难帮助调试,只是概念上不那么清晰

对于Excel部件,您应该能够执行以下操作:


函数getExcelData(){
返回Excel.run(函数(上下文){
var data=context.workbook.worksheets.getItem(“SheetName”)
.getRange(“A1:K3673”)。荷载(“值”);
返回context.sync()
.然后(函数(){
返回数据值;
});
})
}

这将使您能够执行以下操作:


getExcelData().then(函数(值){
$.ajax(…)
});


请注意,
range.values
只返回一个常规的2D数组,没有什么特别的。因此,您可以独立于Excel调用来尝试ajax调用(这是将这些调用分开的另一个原因)

仅从该片段很难判断,但我认为您的问题实际上可能是范围。ajax错误通常表示ajax请求被中断(通常是由于意外的回发)。在您的情况下,我认为这是因为您的ajax似乎依赖于未传入的变量,并且在返回回调时可能未定义这些变量。如果我只是将内容转储到实际的addin
$(“body”).append(data.values)
中,那么我可以像想象的那样看到整个表。但我仍然收到一个ajax错误,服务器端没有错误,所以它一定很生气。是否可以尝试使用更小的、甚至是空的负载来测试您的大小限制理论?是的,我使用
mysite.com/api?”数据=%5B%5B1%2C+2%2C+3%5D%2C+%5B1%2C+2%2C+3%5D%5D'
一切正常。。。谢谢你的提示。谢谢你的建议,我发布了我的全部代码,但是我玩得越多,我就觉得我的服务器端进程就是在丢弃它,因为它是一个很大的负载,因为如果我只是将它转储到内容中,它就可以工作了。addin。
CombinedMultiDict([ImmutableMultiDict([('update_date', '43191'), ('accessData[]', 'Channel'), ... <All my column headers>, ImmutableMultiDict([])])
Error == {"readyState":0,"status":0,"statusText":"error"}
Error == {"readyState":0,"status":0,"statusText":"error"}