我正在使用Google表格V4 append API将数据插入新创建的工作表中。我正在插入1000行和1001列的数据,即1001000个单元格。
String url = https://sheets.googleapis.com/v4/spreadsheets/<spreadSheetId>/values/<workSheetName>!A1:append?access_token=<accessToken>&valueInputOption=USER_ENTERED&insertDataOption=INSERT_ROWS
//CREATING THE REQUEST BODY
reqBody.put("range", <workSheetName>+"!A1");
reqBody.put("majorDimension", "ROWS");
reqBody.put("values", <values>);
我收到400 Bad Request消息:“此操作会将工作表中的单元格数量增加到超过2000000个单元格的限制。”
我知道谷歌每张纸限制有200万个单元格,但我无法找出为什么我得到这个例外,特别是因为我没有超出限制。
有关为何可能出现此错误的任何帮助?
答案 0 :(得分:0)
Google似乎会计算已经存在的单元格,即使它们为空,甚至是全新的电子表格中的 。解决方案是先擦拭那些色谱柱。您可以通过选择一列,右键单击并选择“删除”来手动完成此操作。
使用API,您需要deleteDimension-这是一个PHP示例:
new Google_Service_Sheets_Request([
"deleteDimension" => [
"range" => [
"sheetId" => $sheetId,
"dimension" => "COLUMNS",
"startIndex" => 1,
"endIndex" => 26
],
],
]);
注意:
Google具有表示范围的特殊语法-第一列确实始于0,但结束列必须为所需的 之后,因此0-1是A列,不是A和B列。
在此示例中,我们删除除第一列以外的所有内容-它不允许您删除整个工作表,例如如果您要执行0-26(即所有操作),则会得到:
无效请求[1]。deleteDimension:您无法删除工作表上的所有列。
别担心,尽管您现在只有一列,但是在添加数据时会自动添加所需数量的新列
我在2019年12月获得的工作簿限制为5,000,000,而不是2,000,000:
无效的请求[2] .pasteData:此操作将使工作簿中的单元格数量超过5000000个单元格的限制。