LoginSignup
1
0

[Google Sheets API] 指定した範囲を並び替える

Last updated at Posted at 2024-02-29

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列を降順の順番で並び替えます。

並び変わりました。


おしまい。。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0