Google Sheets API v4(Java)を使用して、
スプレットシートの指定したセルの範囲を並べ替える方法
についてご紹介します。
メニュー:「データ」 ⇨ 「範囲を並び替え」
で実行できる内容と同じです。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Sheets API] Google Sheets API v4をJavaで操作する
を参照ください。
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
その他のGoogle Sheets APIは、下記の記事を参照ください。
⧉[Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた
指定した範囲を並び替える
指定したセルの範囲を並び替えることができます。
並び順はSortSpecクラスのsetSortOrderメソッドで指定します。
・降順:DESCENDING
・昇順:ASCENDING
範囲(GridRange)の指定で
・範囲を指定しない場合、範囲はシート全体が対象
・終了行・列を指定しない場合、開始行・列からデータがある行・列までが対象
となります。
サンプル コード
A列を降順にD列を昇順に並び替えます。
SortSpecリストの最後から順番に並び替えが実行されます。
public Request sortRange(Integer sheetId) {
Request request = new Request();
//範囲の設定
GridRange range = new GridRange();
range.setSheetId(sheetId); //シートID
range.setStartRowIndex(1); //開始行(0スタート)
//range.setEndRowIndex(8); //終了行(1スタート)
range.setStartColumnIndex(0); //開始列(0スタート))
//range.setEndColumnIndex(8); //終了列(1スタート)
//並び替えルールの指定
List<SortSpec> sortSpecs = new ArrayList<>();
SortSpec sort1 = new SortSpec();
sort1.setSortOrder("DESCENDING"); //降順にソート
sort1.setDimensionIndex(0); //0列目(A列)に並び順を指定
sortSpecs.add(sort1);
SortSpec sort2 = new SortSpec();
sort2.setSortOrder("ASCENDING"); //昇順にソート
sort2.setDimensionIndex(3); //3列目(D列)に並び順を指定
sortSpecs.add(sort2);
SortRangeRequest r = new SortRangeRequest();
r.setRange(range);
r.setSortSpecs(sortSpecs);
request.setSortRange(r);
return request;
}
実行結果
D列を昇順、A列を降順の順番で並び替えます。
並び変わりました。
おしまい。。