服务错误:Google脚本上的电子表格
范围
我开始编写一个脚本,将对API进行链接调用(带有JSON响应),并将结果写入电子表格。
怎么了:
一旦我调试脚本代码,它运行得很好,没有大问题,但是一旦我从Spreadsheet按钮本身(从我创建的菜单)运行它,它将运行该脚本的一些步骤,然后弹出: Service Error: Spreadsheet
没有其他错误细节的Service Error: Spreadsheet
。
怪事
我开始将过程的当前步骤“记录”到电子表格单元格,以便在从调试器运行脚本时监控其进度。
问题是,一旦我移动一些“随机”片段,例如:
sheet.getRange("F2").setValue(currentPage);
代码倾向于在不同的点上打破。
代码示例:
你可以在这里找到一个代码来重现这个问题:http://pastebin.com/HjmSwEYZ
你所要做的就是:
1 - 在Google云端硬盘上新建一个电子表格
2 - 点击工具 - >脚本编辑器
3 - 创建一个新脚本,粘贴代码并保存
4 - 重新加载电子表格(F5),使自定义菜单现在出现“激战2追踪器”
5 - 点击按钮并点击“全部列出”
期望的输出:
这段代码应该做什么(如果不是这个错误的话)是:
1 - 在这个URL上执行一个请求:http://www.gw2spidy.com/api/v0.9/json/items/all/1(它将返回激战2的第一页itens)
2 - 遍历每个页面,解析json并将返回的值写入电子表格
免责声明:
对不起,关于表格中的所有“日志”消息。 这是追踪我的进步的绝望尝试,我知道我不应该这样做。
提前致谢
更新1:
在创建另一个电子表格并在其自己的脚本项目中粘贴pastebin代码后,我可以在交互中运行它,但就是这样。 这一次,它提出了一个不同的错误: We're sorry, a server error occurred. Please wait a bit and try again.
We're sorry, a server error occurred. Please wait a bit and try again.
我喜欢ellockie所说的 - 我(不知不觉)遇到了同样的问题。 我试图range.sort(8),但为了收集范围,我用了:
sheet.getRange(2,1,sheet.getMaxRows(), sheet.getMaxColumns());
但我应该使用的是:
sheet.getRange(2, 1, sheet.getMaxRows()-1, sheet.getMaxColumns());
截至2015年5月1日的错误信息仍然非常神秘,并且没有提供比“服务错误:电子表格”更多的细节。
Marchello,今天我遇到了同样的问题,刚刚找到了答案,可以在这里找到它:https://code.google.com/p/google-apps-script-issues/issues/detail?id=3815 (见#4)。 这个想法是将行添加到工作表的底部,让脚本再次开始工作。 它在我的情况下工作。
在我的例子中,我使用了'动态'范围的公式,即=sum(b2:b)
,我记得这是在新的谷歌电子表格中提到的一个问题。
校正为sum(b2:b22)
(确保范围不超过表格的最后一行)解决了问题。