2016-08-26 11 views
0

Java API(V4)を使用して、Googleシートからデータを読み取り、編集しています。これまでは、行番号と列番号(インデックス)に基づいてデータを読み込んで編集することができました。私がやりたいのです何Java | APIを使用してGoogleスプレッドシートの範囲で値(行番号と列番号)を検索するにはどうすればよいですか?

  • は、その特定の値によってデータをローカライズすることです(私は行とその値を使用して、特定のセルの列番号を取得したいです)。

これまでのところ、これは私がデータを編集するために使用される作業コードの一部です:

// Copy the format from A1:C1 and paste it into A2:C5, so the data in 
// each column has the same background.    
requests.add(new Request() 
         .setCopyPaste(new CopyPasteRequest() 
           .setSource(new GridRange() 
             .setSheetId(0) 
             .setStartRowIndex(0) 
             .setEndRowIndex(1) 
             .setStartColumnIndex(0) 
             .setEndColumnIndex(3)) 
           .setDestination(new GridRange() 
             .setSheetId(0) 
             .setStartRowIndex(1) 
             .setEndRowIndex(6) 
             .setStartColumnIndex(0) 
             .setEndColumnIndex(3)) 
           .setPasteType("PASTE_FORMAT"))); 

       BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest() 
         .setRequests(requests); 

誰も私を助けてくださいことはできますか? ありがとうございます。

答えて

0

documentationによると、あなたが使用して値を見つけることができます:FindReplaceRequest().getFind();

String cellReq = (new FindReplaceRequest().setFind("samuel")).getFind(); 
1

GoogleのシートAPIにはまだテキストがありません。更新情報の通知を受けるには、このissue tracker FRにスターを付けてください。

このSO answerに基づいてこの問題を回避するには、「あなたは、あなたが検索している範囲のデータを取得し、それが一致するものを探してを反復処理することができます。」 をここで彼のコードスニペットです:

/** 
* Finds a value within a given range. 
* @param value The value to find. 
* @param range The range to search in. 
* @return A range pointing to the first cell containing the value, 
* or null if not found. 
*/ 
function find(value, range) { 
var data = range.getValues(); 
for (var i = 0; i < data.length; i++) { 
for (var j = 0; j < data[i].length; j++) { 
if (data[i][j] == value) { 
return range.getCell(i + 1, j + 1); 
} 
} 
} 
return null; 
} 

NOTE:コードサンプルでは、​​Google-アプリのスクリプト

枚このコードスニペットでは、あなたがして、最初の範囲を設定した値が範囲内で一致するかどうかを確認する必要がありますです。

関連する問題