0

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)から開始することはできません。

4

1 に答える 1

1

はい、200 万個のセルの制限は、空白かどうかに関係なく、すべてのセルに適用されます。デフォルトでは、シートには 26 列あるため、列数を減らさない限り、最大で 2,000,000/26 = 76923 行になる可能性があります。

不要な列 (6 番目以降の列) を削除するには、POST リクエストを

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate

フォームのリクエストボディで

{
  "requests": [
    {
      "deleteDimension": {
        "range": {
          "sheetId": sheetId,
          "dimension": "COLUMNS",
          "startIndex": 7,
          "endIndex": 26
        }
      }
    }
  ]
}

参照:行または列を削除します

于 2016-06-15T14:08:37.420 に答える