web-dev-qa-db-ja.com

Google Sheets API v4-値のある最後の行を取得するにはどうすればよいですか?

新しいGoogle Sheets API v4で最後の行に値を取得するにはどうすればよいですか?

これを使用してシートから範囲を取得します。

mService.spreadsheets().values().get("ID_SHEET", "Sheet1!A2:B50").execute();

シートの値を持つ最後の行を検出する方法は?

13
seba123neo

範囲を「A2:D」に設定すると、シートの最後のデータ行までフェッチできます。

14
A Paracha

現在のスプレッドシートの合計行数を数えることでなんとかできました。次に、データを次の行に追加します。

rowcount = this.mService.spreadsheets().values().get(spreadsheetId, range).execute().getValues().size()
2
hellilyntax

する必要はありません。すべての行が確実にその中に配置されるように、巨大な範囲(たとえば_A2:D5000_)を設定します。それがさらに影響を与えるかどうか、メモリ消費量が増えるかどうかはわかりませんが、現時点では問題ありません。

_private List<String> getDataFromApi() throws IOException {
        String spreadsheetId = "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"; 
        String range = "A2:D5000";
        List<String> results = new ArrayList<String>();
        ValueRange response = this.mService.spreadsheets().values()
                .get(spreadsheetId, range)
                .execute();
        List<List<Object>> values = response.getValues();
        if (values != null) {
            results.add("Name, Major");
            for (List row : values) {
                results.add(row.get(0) + ", " + row.get(3));
            }
        }
        return results;
    }
_

ループfor (List row : values)を見てください。テーブルに2つの行がある場合、valuesリストに2つの要素が表示されます。

0
yurart