To Doを管理する時にグーグルサイトのリストを使って管理しています。
このリストは非常に便利なのですが、金額を合計できなかったり、特定の項目の数の合計をカウントしたりが出来ません。
そこで、グーグルのスプレッドシートにリストのデータをインポートさせて、リストの作成はグーグルサイト、編集したり、自分の好みに変更したりはスプレッドシートで管理する方法を試行錯誤してようやく完成しました。
ざっくりと手順は下記二点です。
備忘記録として残しておきます。
まずはグーグルサイトでリストを作成する
これはグーグル先生に聞けば腐るほど情報が出てくるので割愛しますが、テストで作成したサイトが下記になります。
https://sites.google.com/site/todolistofclt/list
次にスプレッドシートを作成してエディタにスクリプトを記載する。
これもやり方は割愛します。
スクリプトは下記の通り
——————————————————————————-
function onOpen(){
var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var myMenuEntries = [];
myMenuEntries.push({name: “Update”, functionName: “getPageItem”});
mySpreadsheet.addMenu(“Action”, myMenuEntries);
}
function getPageItem(){
var sheet = SpreadsheetApp.getActiveSheet();
var site = SitesApp.getSiteByUrl(“https://sites.google.com/site/todolistofclt/list”);
var page = site.getChildByName(“list”)
var cols = page.getColumns();
var items = page.getListItems();
var last = sheet.getLastRow();
try{
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clearContents();
}catch(e){
Browser.msgBox(e);
}
for(var i = 0;i < cols.length;i++){
Logger.log(cols[i].getName());
sheet.getRange(1, i + 1).setValue(cols[i].getName());
for (var j = 0;j < items.length;j++){
Logger.log(items[j].getValueByIndex(i));
sheet.getRange(j + 2, i + 1).setValue(items[j].getValueByIndex(i));
}
}
}
——————————————————————————-
作成したスプレッドシートがこれ
https://docs.google.com/spreadsheets/d/1DeW-PbFet-upR2KxonKKLRmdDh9S1-nsR9TZgcwHi2Y/edit#gid=0
このままスクリプトを実行してもリストで作成したItemを取り込んでくれません。
そこでTasks APIを有効にして実行します。
….と思ってたのですが、特に有効にしなくてもItemの取り込みが実行されました。
まぁ、もし出来ない、もっと詳細を知りたい方はお問い合わせください。