Google Spreadsheet は、Google ドライブに作成する事ができる Excel のような仕様の WEB アプリケーションです。WEB 上でデータを保存しておいて、インターネット経由で参照や更新が可能なのが Google Spreadsheets API です。( 他の API では、JavaScript より参照できるものもあます ) Google Spreadsheets API version 3.0 .NET ライブラリのダウンロード ( その他全てへのリンク ) ダウンロードしたライブラリは、直接参照する必要があります。本来 XML データでやりとりするものをライブラリ化しているので、あまり便利なものにはなっていませんが、『スプレッドシート』『ワークシート』を順々に一覧より取得するようにはなっていますので、後から解りやすい仕様ではあります。 ここでは、Dictionary を使って保存する手順を行っていますが、使いやすくするには最初に全てのワークシートまでを Dictionary に保存しておいて、名前で取得できるクラスを作成するといいと思います。 ▼ で使った『In Googleドライブ』を公開したもの ( 取引先名は VLOOKUP を シート2から行っています )
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Google.GData.Client; using Google.GData.Spreadsheets; using System.Diagnostics; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public SpreadsheetsService service = null; public Dictionary<string, SpreadsheetEntry> db_Spread = new Dictionary<string, SpreadsheetEntry>(); public Dictionary<string, WorksheetEntry> table_Spread = null; public Form1() { InitializeComponent(); } // ******************************************************** // ログインデータを設定 // ******************************************************** private void button1_Click(object sender, EventArgs e) { service = new SpreadsheetsService("MySpreadsheetIntegration-v1"); service.setUserCredentials(this.textBox1.Text, this.textBox2.Text); Debug.WriteLine(service.ServiceIdentifier.ToString()); } // ******************************************************** // Google Spreadsheet 一覧をディクショナリに保存 // ******************************************************** private void button2_Click(object sender, EventArgs e) { this.listBox1.Items.Clear(); SpreadsheetQuery query = new SpreadsheetQuery(); try { SpreadsheetFeed feed = service.Query(query); foreach (SpreadsheetEntry entry in feed.Entries) { Debug.WriteLine(entry.Title.Text); this.listBox1.Items.Add(entry.Title.Text); db_Spread.Add(entry.Title.Text, entry); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } // ******************************************************** // ListBox の対象行をダブルクリックしてディクショナリにシートを保存 // ******************************************************** private void listBox1_DoubleClick(object sender, EventArgs e) { string target = this.listBox1.SelectedItem.ToString(); Debug.WriteLine(target); try { SpreadsheetEntry target_Spread = db_Spread[target]; table_Spread = new Dictionary<string, WorksheetEntry>(); WorksheetFeed wsFeed = target_Spread.Worksheets; foreach (WorksheetEntry entry in wsFeed.Entries) { table_Spread.Add(entry.Title.Text, entry); Debug.WriteLine(entry.Title.Text); } // 先頭シートからデータを取得 CellQuery cellQuery = new CellQuery(((WorksheetEntry)wsFeed.Entries[0]).CellFeedLink); CellFeed cellFeed = service.Query(cellQuery); uint nRow = 1; string strResult = ""; foreach (CellEntry cell in cellFeed.Entries) { if (nRow == cell.Row) { if (strResult == "") { strResult += cell.Value; } else { strResult += "," + cell.Value; } } else { strResult += "\r\n" + cell.Value; } Debug.WriteLine(cell.Value); nRow = cell.Row; } this.textBox3.Text = strResult; } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }
|
【APIの最新記事】
- WebRTC による WEBカメラ表示( 2018/11/15 ) : iPhone + Safari は iOS11 のみで確認
- PHP で Mastodon にアプリを登録して投稿する手順
- Google スプレッドシートの内容を JSON として localhost で取得する手順
- WebRTC による WEBカメラ表示を canvas にコピーして画像に変換し、サーバへアップロードする
- WebRTC による WEBカメラ表示
- Amazon API の 503エラー の対処について
- ドコモ デベロッパーサポートで API使いたいと思ってサインアップしようとしたら・・・・。法人情報は後から登録しましょう
- GitHub の yahoojapan/yconnect-php-sdk( PHP ) を使用して、Yahoo! にログインさせてユーザ情報を取得する( OPENID )
- 手動で Facebook API の 60日間の アクセストークンを取得する
- Facebook Graph API Explorer でカスタムプライバシー設定をした投稿を行う
- Twitpic の画像URLを取得する API が変わっているようなのですが