GoogleスプレッドシートからCSVにエクスポートしたデータを得る方法
公開日:
:
最終更新日:2020/01/20
Tips CSV, Google Drive, Google SpreadSheet
情報がない中さんざ苦労しましたが、Googleスプレッドシート(の最初のシート)をCSVとしてエクスポートしてstringとして得ることにやっとこ成功したので、事前準備とかの細かいところは省略してソースコードだけ記述してみます。
// --- fileId : スプレッドシートのfileId。DriveAPIを使って得る。mimeTypeはエクスポート先のmimeTypeを指定すること let query = GTLRDriveQuery_FilesExport.queryForMedia(withFileId: fileId, mimeType: "text/csv") // --- Serviceの初期化 let service: GTLRDriveService = GTLRDriveService() let user = GIDSignIn.sharedInstance().currentUser service.apiKey = "(APIキーを入れる)"; service.authorizer = user?.authentication.fetcherAuthorizer() service.executeQuery(query) { (ticket: GTLRServiceTicket, object: Any?, error: Error?) in if error == nil { let data = (object as! GTLRDataObject).data var strData = String.init(data: data, encoding: .utf8) // 目的のデータ } }
キモは最初のGTLRDriveQuery_FilesExport.queryForMediaの部分で、これで元ファイルをエクスポートしたデータをもらってくることができるんですね。で、GTLRDataObject.dataとしてバイナリデータが返ってくるので、utf8エンコードしてやると””でくくり、\r\nで改行コードが書かれたCSVデータが得られるので、CSVデータとして適切に加工すればOK! ヤッタネ!
関連記事
-
-
ソースコードからStoryboardにアクセスする
複数のStoryboardを利用して、自分以外のStoryboardに遷移させるような展開をしたい場
-
-
plistファイルに色を入れる
plistファイル中にUIColorを入れたい!という場合。普通RGBAの値を数値で入れるとかするけ
-
-
iOSシミュレータの帯域制限をテストする
iOSシミュレータで通信帯域制限をテストしたいと思ったんですが、Xcode8からXcode7.xとは
-
-
UIActionSheetの文字がブレて多重表示される
UIActionsheetを使っていて、iOS7/iPadの組み合わせで起こる不具合らしき挙動が起こ
-
-
HTMLParserを修正する
HTMLスクレイピングしてる時に役立つライブラリであるObjective-C-HMTL-Parser
-
-
UIActionSheetが消えるときにキーボード表示/非表示通知が来る
UITextViewやUITextField編集中にアクションシートを表示すると、アクションシート
-
-
UICollectionViewのヘッダとフッタの設定
UICollectionViewで慣れないのがヘッダフッタで、毎度「どうやって設定するんだっけ…」と
-
-
viewDidLoadとviewDidLayoutSubviewsのタイミング
真実の記事にある「コードでiPhone6を識別する」話とほんのちょっとだけ繋がっている話で、view
-
-
CoreDataのソートとsectionNameKeyPathの関係
CoreDataをフェッチするときに、indexPathのsectionにできるsectionNam