99


68

1枚のシートとしてGoogle Spreadsheetsに情報をいくつか持っています。 Googleの認証情報とスプレッドシートのアドレスを入力することによって、.NETからこの情報を読み取ることができる方法はありますか。 Google Data APIを使用することは可能ですか。 最終的には、DataTableのGoogleスプレッドシートから情報を取得する必要があります。 どうすればいいの? 誰かがそれを試みた場合、plsはいくつかの情報を共有します。

7 Answer


172


https://developers.google.com/google-apps/spreadsheets/[.NETユーザーガイド]によると、
http://code.google.com/p/google-gdata/[.NETクライアントライブラリ]をダウンロードします。

usingステートメントを追加してください。

Google.GData.Clientを使用する。 Google.GData.Extensionsを使用する。 Google.GData.Spreadsheetsを使用する。

認証する:

SpreadsheetsService myService = new SpreadsheetsService( "exampleCo-exampleApp-1"); myService.setUserCredentials( "[email protected]"、 "mypassword");

スプレッドシートのリストを入手する:

SpreadsheetQuery query = new SpreadsheetQuery(); SpreadsheetFeed feed = myService.Query(query);

Console.WriteLine( "あなたのスプレッドシート:"); foreach(feed.Entries内のSpreadsheetEntryエントリ){Console.WriteLine(entry.Title.Text); }

すでに取得したSpreadsheetEntryがあれば、このスプレッドシート内のすべてのワークシートのリストを次のようにして取得できます。

AtomLink link = entry.Links.FindService(GDataSpreadsheetsNameTable.WorksheetRel、null);

WorksheetQuery query = new WorksheetQuery(link.HRef.ToString()); WorksheetFeed feed = service.Query(query);

foreach(feed.Entries内のWorksheetEntryワークシート){Console.WriteLine(worksheet.Title.Text); }

セルベースのフィードを取得します。

AtomLink cellFeedLink = worksheetentry.Links.FindService(GDataSpreadsheetsNameTable.CellRel、null);

CellQuery query = new CellQuery(cellFeedLink.HRef.ToString()); CellFeed feed = service.Query(query);

Console.WriteLine( "このワークシートのセル:"); foreach(feed.EntriesのCellEntry curCell){Console.WriteLine( "行{0}、列{1}:{2}"、curCell.Cell.Row、curCell.Cell.Column、curCell.Cell.Value); }


22


http://code.google.com/p/google-gdata/[ http://code.google.com/p/google-gdata/[簡単なラッパーを書いた] Googleの.Netクライアントライブラリ]、それは強く型付けされたレコードタイプを持つ、よりシンプルなデータベースのようなインターフェースを公開します。 ここにいくつかのサンプルコードがあります:
パブリッククラスEntity {public int IntProp {get;}セット;パブリック文字列StringProp {get;}セット; }}

var e1 = new Entity {IntProp = 2}; var e2 = new Entity {StringProp = "hello"}; var client = new DatabaseClient( "[email protected]"、 "password"); const string dbName = "IntegrationTests"; Console.WriteLine( "データベースを開くまたは作成する"); db = client.GetDatabase(dbName)?? client.CreateDatabase(dbName); //データベースはスプレッドシートですconst string tableName = "IntegrationTests"; Console.WriteLine( "テーブルを開くまたは作成する"); table = db.GetTable(tableName) db.CreateTable(tableName); //テーブルはワークシートですtable.DeleteAll(); table.Add(e1); table.Add(e2); var r1 = table.Get(1);

Googleの 構造化クエリ演算子に変換するLINQプロバイダもあります。

var q = table.AsQueryable()のrからr.IntProp> -1000


14


*(2016年6月 - 11月)*質問とその回答は以下のように古くなっています。1) GData APIは前世代のGoogle APIです。 。 すべてのGData APIが廃止されたわけではありませんが、 すべての最新のGoogle API http://developers.google.com/gdataを使用しないでください。 Google Data Protocol]; 2) new Google Sheets API v4(これもGDataではありません)があります。

ここから先に進むには、 .NET用Google APIクライアントライブラリを入手し、最新のhttp://developers.google.com/を使用する必要があります。 sheets [Sheets API]、これは以前のどのAPIよりもはるかに強力で柔軟です。 ここから始めるのに役立つ C# code sampleです。 https://developers.google.com/resources/api-libraries/documentation/sheets/v4/csharp/latest / [Sheets APIの.NETリファレンスドキュメント]と .NET Google APIクライアントライブラリ開発者ガイド

もしあなたがPythonにアレルギーがないのなら(疑っているだけのふりをしてください;))、私が学ぶことができ、必要に応じてC#に移行することができるAPIの使用例:


3


あなたはあなたがいくつかの方法を求めていることをすることができます:

  1. GoogleのスプレッドシートC#ライブラリを使用して(Tacoman667の回答のように)、それぞれ名前と値のペアのリストを持つ行のリスト(Googleの用語ではListEntry)を返すことができるListFeedを取得します。 GoogleスプレッドシートAPI(http://code.google.com/apis/spreadsheets/code.html)のドキュメントには、作業を開始するのに十分な情報があります。

  2. GoogleのビジュアライゼーションAPIを使用すると、より洗練された(ほぼSQLのような)クエリを送信して、必要な行/列のみを取得できます。

  3. スプレッドシートの内容はAtomフィードとして返されるので、XPathまたはSAX解析を使用してリストフィードの内容を抽出できます。 http://gqlx.twyst.co.zaにこのようにする方法の例があります(私は恐れていますがJavaとJavascriptでのみ)。


2


このために、Google CodeにC#SDK /ツールキットがいくつかあると確信しています。 私は この1を見つけましたが、他にもあるかもしれませんので、ぜひご覧ください。


2


これであなたは始められるはずです。 私は最近それで遊んでいませんが、私はしばらく前に非常に古いバージョンをダウンロードしました、そしてそれはかなり堅実に見えました。 これはVisual Studio 2008にもアップデートされているので、ドキュメントをチェックしてください。


1


Marcos Placonaによって2017年3月24日に作成されたこのTwilioブログページは、役に立つかもしれません。

https://www.twilio.com/blog/2017/03/google-spreadsheets-and-net-core.html[Googleスプレッドシートと.NET Core]
https://www.nuget.org/packages/Google.Apis.Sheets.v4/[Google.Api.Sheets.v4]およびhttps://developers.google.com/identity/protocols/OAuth2[OAuth2]を参照しています。 。