現在、GoogleドライブからGoogleシートファイル(.xlxs)を選択できるアプリを開発中です。私のアプリはそのシートの特定のコンテンツを抽出して処理します。私はAndroidのために作られたGoogleドライブのAPIを使用していると私は、これまでのところAndroidのドライブAPIを使用してGoogleシートコンテンツを読むにはどうすればよいですか?
Google Drive Android Demosから例のクラスを利用
、私は、ユーザーのドライブのファイルが表示されているドライブのファイルピッカーを実装しました。ファイルを選択すると、そのファイルのIDが返されます。
最初の問題は、私はこれだけxlslファイルがpickableているMIMEタイプを設定するように見えることができないということです。 Google検索は
アプリケーション/ vnd.openxmlformats-officedocument.spreadsheetml.sheet
が正しいMIMEタイプであることを教えてください。
は私が
IntentSender intentSender = Drive.DriveApi
.newOpenFileActivityBuilder()
.setMimeType(new String[]{"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})
.build(getGoogleApiClient());
私が遭遇していないMIMEタイプの前に、このコンテキストでそれを使用していますが、「text/plainの」ミーム型が動作しているようですが、それらはパントマイムの同じリストに発見されたとして
第2の問題は基本的に私のシートの特定の列と行から文字列を抽出する方法に関係します。
これは、選択したファイルの内容を処理するコードです(もちろん、変更することは可能です)。
protected String doInBackgroundConnected(DriveId... params) {
String contents = null;
DriveFile file = params[0].asDriveFile();
DriveContentsResult driveContentsResult =
file.open(getGoogleApiClient(), DriveFile.MODE_READ_ONLY, null).await();
if (!driveContentsResult.getStatus().isSuccess()) {
return null;
}
DriveContents driveContents = driveContentsResult.getDriveContents();
BufferedReader reader = new BufferedReader(
new InputStreamReader(driveContents.getInputStream()));
StringBuilder builder = new StringBuilder();
String line;
try {
while ((line = reader.readLine()) != null) {
builder.append(line);
}
contents = builder.toString();
} catch (IOException e) {
Log.e(TAG, "IOException while reading from the stream", e);
}
driveContents.discard(getGoogleApiClient());
return contents;
}
うわー、私はシートApiを見つけられなかったと信じられない!私はxlsxファイルに関連するGoogleのものだけです。ライブラリのようなものは唯一の選択肢でした。 – Mumfi
問題1について。 2つの方法の違いは何ですか?いずれにしても、Filterオブジェクトの仕組みやExcelファイルをフィルタリングするための方法については、あまり見つけられないようです。これについてもっと知っていますか? – Mumfi
私はMimeTypeMap.getSingleton()。getMimeTypeFromExtension( "xlsx")によってMIMEタイプを出力することさえできました。 結果: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"。 これを差し込んでもまだ動作しません。何が一体? – Mumfi