Диапазон сортировки на основе столбца с использованием API листов Google java - PullRequest
0 голосов
/ 09 мая 2020

Я пытаюсь отсортировать все строки в заданном диапазоне на основе столбца. Я пробовал это:

BatchUpdateSpreadsheetRequest busReq = new BatchUpdateSpreadsheetRequest();
SortSpec ss = new SortSpec();
// ordering ASCENDING or DESCENDING
ss.setSortOrder("DESCENDING");
// the column number starting from 0
ss.setDimensionIndex(1);
SortRangeRequest srr = new SortRangeRequest();
srr.setSortSpecs(Arrays.asList(ss));
Request req = new Request();
req.setSortRange(srr);
busReq.setRequests(Arrays.asList(req));
// mService is a instance of com.google.api.services.sheets.v4.Sheets
this.mService.spreadsheets().batchUpdate(spreadsheetId, busReq).execute();

Но проблема в том, что он сортирует определенный столбец c, в котором я хочу отсортировать все строки на основе этого столбца. Есть предложения?

В основном я хочу добиться этого с помощью API листов java: enter image description here

1 Ответ

0 голосов
/ 11 мая 2020

Подход

Вам нужно будет определить диапазон для вашего SortRangeRequest объекта. Для этого вы можете использовать метод setRange(GridRange range).

Вот так:

        SortRangeRequest srr = new SortRangeRequest();
        GridRange gr = new GridRange();
        Integer sheetId = 0;
        Integer startRowIndex = 0;
        Integer endRowIndex = 1004;
        Integer startColumnIndex = 0;
        Integer endColumnIndex = 25;
        /**
         * From the docs:
         * "range": {
         *    "sheetId": sheetId,
         *    "startRowIndex": 0,
         *    "endRowIndex": 10,
         *    "startColumnIndex": 0,
         *    "endColumnIndex": 6
         * }
         */
        gr.setSheetId(sheetId);
        gr.setStartRowIndex(startRowIndex);
        gr.setEndRowIndex(endRowIndex);
        gr.setStartColumnIndex(startColumnIndex);
        gr.setEndColumnIndex(endColumnIndex);
        srr.setRange(gr);

Ссылка

Запрос диапазона сортировки

...