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! ヤッタネ!
関連記事
-
-
UIActionSheetが消えるときにキーボード表示/非表示通知が来る
UITextViewやUITextField編集中にアクションシートを表示すると、アクションシート
-
-
iOS7でのPopover内サイズの指定
UIPopover内で表示する場合のViewControllerのコンテンツサイズ設定に関してのメモ
-
-
バージョンアップ版があることを通知する
拍子抜けするほど簡単だったので、「アプリのバージョンアップの通知をどうするか」という話についてTip
-
-
RealmのList
とArray の相互変換によるマップ Realm+ObjectMapperを使って、RealmのオブジェクトをJSON変換してたのですが
-
-
iPad用storyboard⇔iPhone用Storyboardへの変換
iPad用アプリとしてiPad用前提のstoryboardから、iPhone対応にするにあたり、si
-
-
UILabelの改行をInterfaceBuilderから入力する
UILabelの行数は任意に設定できて、「0」を指定すると行数を限定しないで(UILabelのbou
-
-
NSAttributedStringをローカライズする方法
NSAttributedStringをLocalizeするうまい方法はないものかと探したら、これが手
-
-
ENMLからHTMLへの変換
最近EvernoteAPIをいじっているので、コレに関するノウハウをとりあえず断片的に引っかかったと
-
-
Bitbucket課題の記法サンプル
Bitbucketの課題、およびwikiで利用できる記法についての記事です。 利用できる記法に
-
-
CALayerの管理
CALayerはNSKeyValueCodingを実装している(Core Animation Ext
