各製品の資料を入手。
詳細はこちら →LINQPad でGoogle Sheets のデータを操作する方法
LINQPad でGoogle Sheets にLINQ クエリを実行する方法を解説します。
最終更新日:2023-09-15
この記事で実現できるGoogle Sheets 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData ADO.NET Provider for GoogleSheets は、LINQ やEntity Framework などの標準のADO.NET インターフェースを使ってGoogle Sheets の操作を実現します。この記事では、LINQPad から接続してLINQ クエリを実行する方法を説明します。
必要なもの
本記事の手順を実行してLINQPad からGoogle Sheets に接続するには、以下の3つの製品が必要になります。
- Google Sheets の環境
- LINQPad
- CData ADO.NET Provider for GoogleSheets。右側のサイドバーから30日間無償トライアルがダウンロードできます
データモデルの作成
CData ADO.NET Provider for GoogleSheets およびLINQPad をダウンロード・インストールしたら、Visual Studio で新しいクラスライブラリプロジェクトを作成します。
ADO.NET Provider の利用に必要となるEF 6を設定する方法については、ヘルプドキュメントを参照してください。
プロジェクトを右クリックし、[追加]→[新しい項目]→[ADO.NET Entity Data Model]をクリックします。ダイアログが表示されたら、データベースから[Code First]を選択します。 [New Connection]をクリックして、表示されたウィザードで接続文字列オプションを指定します。
希望するテーブルおよびビューを選択して[Finish]をクリックし、データモデルを作成します。
- プロジェクトをビルドします。生成されたファイルを使ってLINQPad でGoogle Sheets 接続を作成できます。
スプレッドシートに接続するには、Google への認証を行い、Spreadsheet 接続プロパティにスプレッドシートの名前またはフィードリンクを設定します。Google Drive のスプレッドシートの情報一覧を表示したい場合は、認証後にSpreadsheets ビューにクエリを実行します。
ClientLogin(ユーザー名 / パスワード認証)は、2012年4月20日より正式に非推奨となり、現在は利用できません。代わりに、OAuth 2.0 認証規格を使用してください。 個々のユーザーに代わってGoogle API にアクセスするには、埋め込みクレデンシャルを使用するか、独自のOAuth アプリを登録します。
OAuth は、Google Apps ドメインのユーザーに代わって、サービスアカウントを使って接続することもできます。サービスアカウントで認証するには、OAuth JWT 値を取得するためのアプリケーションを登録する必要があります。
Google アカウント、Google Apps アカウント、二段階認証を使用するアカウントなど、様々なアカウントタイプでGoogle スプレッドシートに接続する方法は、ヘルプドキュメントの「はじめに」を参照してください。
一般的な接続文字列は次のとおりです。
Spreadsheet=MySheet;
LINQPad でGoogle Sheets のデータに接続
必要な接続プロパティを取得してデータモデルアセンブリを作成したら、以下の手順に従ってLINQPad でデータモデルを使いはじめましょう。
LINQPad を開き[接続の追加]をクリックします。
[Use a typed data context from your own assembly]オプションを選択します。
[Entity Framework DbContext]を選択します。
[Path to Custom Assembly]ボックスの横にある[参照]をクリックして、プロジェクトフォルダを参照します。bin フォルダの下の.dll または.exe を参照します。
- DbContext の名前を選択します。
- 接続文字列をApp.Config に保存した場合は、App.Config へのパスを指定します。

これでLINQPad 経由でGoogle Sheets にクエリできます。サポートされたLINQ クエリの例は、ヘルプドキュメントの「LINQ およびEntity Framework」を参照してください。
