收到错误消息:“此操作将使工作表中的单元格数量超出限制”,并带有50,000个单元格

时间:2019-09-23 11:19:51

标签: google-apps-script google-sheets google-sheets-api

我正在尝试使用脚本编辑器将从URL下载的CSV文件下载到新的空白Google工作表中。

 var raw = UrlFetchApp.fetch(final_url, options).getContentText();
 var data = Utilities.parseCsv(raw, "|");
 Logger.log(data[0].length); /// 17 (columns)
 Logger.log(data.length); /// 2849 (rows)

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 sheet.getRange(1, 1, data.length, data[0].length).setValues(data);

据我了解,我总共有48433个单元格,但是当我尝试将其写入工作表时,出现了错误:

  

此操作将使工作簿中的单元格数量增加到超过5000000个单元格的限制。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

问题:

工作表中的单元格不足,无法容纳setValues数据。并且setValues()错误地引发了错误

  

此操作将使工作簿中的单元格数量增加到超过5000000个单元格的限制。

这可能是由于csv文件的内容(以及由此产生的数组数据)引起的。在测试过程中,我能够将2800rowsx17列的数据添加到具有1000rows x 26列的工作表中。

解决方案:

  • 手动增加工作表中的行/列数或

  • 在调用setValues

  • 之前尝试sheet#insertRows插入行

摘要:

sheet.insertRows(sheet.getLastRow(), data.length);

答案 1 :(得分:0)

我们没有看到实际的图纸和CSV文件,只能推测出问题所在。我最好的猜测是,您没有考虑5,000,000个单元格的限制适用于整个“工作簿”。因此,如果您有多个标签(工作表),则这些工作表中使用的单元格总数不能超过5,000,000个单元格。