Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@hayasix

Zoho Sheet に Deluge と JSON で行を追加する方法

More than 1 year has passed since last update.

(初出: 2019-08-01 を一部改訂 "How to append JSON data as rows in a Zoho Sheet" を改題)

Zoho Mail では Deluge によるカスタム関数定義でフィルターを書けるわけだが、その仕様は判然としない。フィルターにカスタム関数を使うことを指定した段階で簡素なエディターが開き、そこでいくつかの機能はわかる。実際にははるかに多くの機能を利用できるようだ。特に Zoho プロダクトと連携する機能はおもしろい。

Deluge のエディターの中で zoho. と入力すると Zoho 各サービスの名前がずらりと出てくる。ここで sheet. と入力すれば、Zoho Sheet に対して何を行えるかがうかがえる。特に createRecords が興味深い。その名の通り既存のシート上へデータを追記するものだ。

残念ながら Deluge のドキュメントを漁ってみても zoho.sheet オブジェクトの createRecords メソッドの直接的な説明は発見できない。REST API の説明ならある。これを見ながらアタリを付ければ、なんとかなる人にはなんとかなるだろう。

下準備として、ワークシートに A1:”Name”, B1:”Region”, C1:”Units” と入力しておく。これがワークシート上のデータベースの各フィールドとなる。 なお実験ではフィールド名に少なくとも日本語の文字は使えなかった。データベースのフィールド名だと思えばさほど不満もないが、やはり Zoho には (というか Google などの巨大プレイヤー以外には) 小国 (日本も含む) の事情にまでは手が回らないのだろう。

Zoho Sheet REST API v2: Append rows with JSON data を参照して適当に読み替え、次の関数を作ってみる。

string TEST() {
    resourceId = "RESOURCEID";  // 37-char string
    sheetName = "Sheet1";
    data = {{"Name":"Joe","Region":"South","Units":284},
            {"Name":"Beth","Region":"East","Units":290}};
    result = zoho.sheet.createRecords(resourceId, sheetName, data);
    return result;
}

RUN してみると、A2:C3 セルにデータが追加された。戻り値はいらないのだろうが、デバッグ中はあった方がエラーメッセージが取得できるのでよい。

上記は REST API の メソッド worksheet.jsondata.append を呼び出すようだ。同種のメソッドとしては worksheet.csvdata.append もある。こちらは data に CSV data を設定することになっている。Deluge でも list ではなく CSV な単一文字列を渡す必要がある。 insertCSV というメソッド名だが、実際の動作は append である。

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
hayasix
とある会社のバックオフィスで働くおっさん。プログラミング界隈は好きだけど、他人のために書くのは好きじゃないなあ。みんな自分で書こうよ。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?