リンク集
SheetsAPIのAndroidQuickStart
チュートリアル。まずこれに沿ってやればデータ取得はできる。GoogleAPIコンソールのSheetsAPIプロジェクト作成ページ
上記チュートリアルにもあるが一応。ここでプロジェクト作成→証明書を貼り付けてSheetAPIを有効にする。SheetsAPIのReference
どのようなRequestでどのような結果が返ってくるかが書いてある。ここの名前、場所と、AndroidのSheets.spreadsheets()以下が対応しているので、ここで調べてからJavaDocで調べた方がやりやすい。SheetsAPIのJavaDoc
JavaDoc. メソッドの詳細とか詳しいところはここGoogle API Explorer
SheetsAPIへのrequestをお試しできる。パラメーターは何を入れればいいかなどのチェックができる。前準備
データ取得については、前述の上のSheetsAPIのJavaQuickStartの1,2を実施し、3.のコードをコピペすれば取得できます。(雑)データ取得
ここまでできたら実装開始。 SheetsクラスのインスタンスをSheets.Builder()作成し、そのinstanceでSheets#spreadsheets().values().get(spreadsheetsId:String, range:String).execute().getValue() を呼び出せば、range内の行列データをList- >の形で取得してきてくれます。
Sheetsクラスのインスタンスを作成する前に、以下の項目をチェック、NGの場合にはDialogを出す等して対応してください。(以下の項目についてはチュートリアルのコードでもほぼチェックされているので、それを見つつ実装が一番はやいです)
- GooglePlayServiceが利用可能か
- GET_ACCOUNTSのPermissionが許可されているか
- 選択されているGoogleアカウントが存在するか
- デバイスがOnlineか
新規シート作成
Sheets#spreadsheets().create(Spreadsheet())を使います。 Spreadsheet()のInstanceに各設定を記載するのですが、何も設定しなくても作成可能です。(Web等で新規作成したのと同じ状態のシートが作成される)Spreadsheet().spreadsheetIdは自動生成されるので、何か記載しても上書きされます。 また、作成されたシートはhttps://docs.google.com/spreadsheets/d/(spreadsheet().spreadSheetId)でアクセス可能です。
スプレッドシート内のシート(下のタブのやつ)はSpreadsheet().sheetsに設定します。sheetsはList
多分、上記のAPIs Explorerを試しながら、それに対応するclass,設定値を探していくとできると思います。
シート内の値の更新
ここみるとわかりやすいです。コード的には、 Sheets#spreadsheets().values().update(spreadsheetId:String, range:String, body:ValueRange()).setValueInputOption(<List<List<Object>>).execute() でできます。
行列をValueRange().setValues(<List<List<Object>>)の状態で渡すこと(ちゃんと対応する大きさにしておくこと)、setValueInputOption(valueInputOption:String)をすることを忘れなければできると思います。
ここみるとわかりやすいの先頭にvalueInputOptionに入れる値は書いてあります。(RAWとUSER_ENTERED。後者はWebのUIでSpreadSheetを操作し値を入力したときと同じような処理になります。RAWはStringで入力されるとイコールだと思えばよさそう)
とりあえず自分が使ったのはこの辺までです。
シートのサイズの更新なんかも、SheetsAPIのGUIDESのページを見ればだいたいわかると思います。(逆に一番躓いたのが新規シート作成でした。GUIDESのどこかに書いてあるのかな……) API REFERENCESでやりたいことの実現方法をさぐりつつ、APIs Explorerで試して、最後にJavaで対応するクラスを探す、が王道な気がします。
久々に長く書いた気がする!疲れた!