Google Sheets API V4 を使用しています。v4 から、スプレッド シートに 200 万個のセルを書き込むことがサポートされているため、100 万行を追加しようとしています。したがって、6 列で 80,000 行を追加しようとします。80,000 * 6 = 480000 セルですが、次のエラーが発生しました。
{
"code": 400,
"errors": [
{
"domain": "global",
"message": "Invalid requests[0].appendCells: This action would increase the number of cells in the workbook above the limit of 2000000 cells.",
"reason": "badRequest"
}
],
"message": "Invalid requests[0].appendCells: This action would increase the number of cells in the workbook above the limit of 2000000 cells.",
"status": "INVALID_ARGUMENT"
}
80 のループのたびに 1000 行を追加しています。エラーの後、シートを確認すると、73000 行が挿入されていることがわかりました。
Google Sheets API も 6 列目以降の空白セルを計算していると思います。リーミング セル 73000 * 26 (AZ) = 1898000 で計算し、さらにセルを追加しようとするとエラーが発生したとします。
空のセルのリーミングやその他の代替手段を削除する方法について、ご意見をお寄せください。次のコードを使用しています
AppendCellsRequest appendCellReq = new AppendCellsRequest();
appendCellReq.setSheetId(ssDetails.getSheets().get(4).getProperties().getSheetId());
appendCellReq.setRows(listRowData);
appendCellReq.setFields("userEnteredValue");
Request request = new Request();
request.setAppendCells(appendCellReq);
List<Request> requests = new ArrayList<>();
requests.add(request);
BatchUpdateSpreadsheetRequest batchRequests = new BatchUpdateSpreadsheetRequest();
batchRequests.setRequests(requests);
service.spreadsheets().batchUpdate(spreadsheetId, batchRequests).execute();
2番目に、セルを追加する際に、セルの列位置を常に最初の列(A)から開始することはできません。