0

GoogleスプレッドシートAPI V4を使用しています。私たちは、Spreadシートに200万個のセルを書き込むためのサポートを提供するv4から1百万行を追加しようとしています。したがって、我々は6列の80,000行を追加しようとします。 80,000 * 6 = 480000細胞ですが、エラーが発生しました。1百万行を追加し、GoogleスプレッドシートAPI v4を使用してセルの位置を指定します

{ 
    "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スプレッドシートAPIでは、6番目の列の後に空のセルも計算されます。リーミングセル73000 * 26(A-Z)= 1898000で計算し、さらに追加しようとするとエラーが発生したとします。

リーミング空のセルや他の方法をどのように削除するか提案してください。我々は、それは常に最初の列(A)で開始した細胞のことsapcify列possitionないセルを追加しながら、私たちは、次のコードに

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(); 

第二のものを使用しています。

答えて

1

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

は(6日後のもの)は、不要な列を削除するには、フォーム

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

リファレンスのリクエストボディと

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

にPOSTリクエストを送信します。

+0

ありがとう@上記の場合、固定列があります。すでにシートに14列あり、列の総数が26であるとします。次に、6列を追加します。だから空の列を特定して削除する方法。 解決策があればお手伝いください。 –

+0

「既に14列あり、列の総数は26です」という意味を理解できません。それは14か26か?とにかく、それはv4のデータで最後の列を決定する唯一の方法は、シートからすべての値を要求し、それらを処理し、空でないものを探すことです。 http://stackoverflow.com/a/37687676を参照してください –

+0

私は14のデータで満たされ、リーマン12が空であると話しています。 私たちは80,000+個の行を処理し、最後の列を見つけるのに多くの時間を要します。 代替手段はありますか? 空の行/列のない列を追加するとします。 –

関連する問題