kikki's tech note

技術ブログです。UnityやSpine、MS、Javaなど技術色々について解説しています。

C#でGoogleSpreadSheetを扱うDLL

※※※ 注意 ※※※
本記事の内容にアップデートがあります。

以下の記事が最新の記事になります。(2015/06/16時点)
kikki.hatenablog.com

背景

Google spreadsheetをC#で扱うにあたって、公式DLLのQueryやFeedを意識せず、シンプルに扱えないかなと思いDLLを作成しました。

DLL公開所

Microsoft OneDrive - Access files anywhere. Create docs with free Office Online.

※上記で公開しているDLLは、私が個人的に作成したものであり、本DLLにより生じた、 あらゆる直接的および間接的損害に関し、作者は一切責任を負いません。ご自分の責任において使用してください。

DLL解説

名前空間

GSpreadApps

基本型:GSpreadManager

できること

スプレッドシートの取得

使い方
// GoogleDriveにログイン
var manager = new GSpreadManager("アカウントID", "p12ファイルパス");
// Spread Sheetを取得
var spreadSheet = manager.GetSpreadSheet("スプレッドシート名");
// 引数に指定した名前の文字列を含むSpread Sheetを取得
var spreadSheet2 = manager.GetSpreadSheetLike("スプレッドシートの部分名");

基本型:GSpreadSheet

できること
  • シートの取得
  • シートの生成
使い方
// シートを取得
var sheet = spreadSheet.GetWorkSheet("(ワーク)シート名");
// シートを生成
var sheet = spreadSheet.CreateWorkSheet("(ワーク)シート名");

基本型:GWorkSheet

できること
  • シート名、シートの現在展開されている行列数の取得

※今後の予定として、展開されたものではなく、シートの中で使用済みの行列数の取得を検討中。

  • タイトル(1行目)の名前と合致する行の取得
  • 検索条件と合致する最初の行を取得
  • 行列番号で指定したセルに値(計算式もOK)を登録
  • 行の追加
使い方
// 最初の行を取得
var row = sheet.GetRow("(行の)タイトル名");
// 検索条件に合う行を取得
// (例題だと、名前というタイトルに「太郎」が含まれ、かつ年齢というタイトルに「25」が含まれる行を取得する)
var row = sheet.GetRowByQuery("名前 = 太郎 and 年齢 = 25);
// セルに値を登録
// (例題だと、2列目の1行目に「abcd」を登録)
var cell = sheet.InputCell(2, 1, "abcd");
// 最終行に一列目から順に値を登録
var dict = new Dictionary<string, string>();
dict.Add("No", "1");
dict.Add("名前", "太郎");
dict.Add("年月日", "2014/2/5"));
var row = sheet.InsertRow(dict);

基本型:GCell

できること
  • 行番号の取得
  • 列番号の取得
  • セルに値を登録
使い方
// 行番号の取得
int rowNum = cell.Row;
// 列番号の取得
int columnNum = cell.Column;
// 値の取得
string value = cell.Value;
// 値の登録
cell.Value = "abcd";

所感

上記内容を見れば分かりますが、非常に機能は少ないです。非同期に対応させたい。そして、エクセルと同等の機能を追加したい。。。「Google Apps Script」を使うほうが高機能で扱えるのだろうか。

今後

今後も何かしら作ったものを公開していきたいと思う。そして、Unityについても制作していく過程での知見をここに書きまとめられたらなと思う。


※無断転載禁止 Copyright (C) kikkisnrdec All Rights Reserved.