4年前にQiitaに投稿しようとして下書き保存になったままの記事を発見したので投下します。
背景
MySQLの結果(7万行くらい)をSpreadSheetに読み込んで解析しているんですが、結果をSpreadSheetに吐き出したかった。4年前のステータスなのでもしかしたら既に対応されているかも。
作用
配列の構造に沿ってセルに出力を行ってくれます。
作った当時は魔法のような関数でした。何かの足しになるかもしれないのでご自由にお使いください。
機能
/*
配列をぶっこんだらそのままシートに挿入してくれる魔法のようなgas関数
@var dataArray Array data you willing to import from.
@var ss Object file you willing to import to.
*/
function bukkomiArrayMagic(ss, dataArray)
{
//仕様上、一列ずつぶっこむしかないのが難点
for (var i = 0;i < dataArray.length; i ++) {
var loc = "A" + (i + 1) + ":" + getColAlp(dataArray[i].length) + (i + 1);
ss.getRange(loc).setValues([dataArray[i]]);
}
}
/*
列番号 -> Alphabet に変換してくれるエレガントなメソッド
*/
function getColAlp(num)
{
var result;
if (num <= 26) {
result = c(num - 1);
} else {
var ten = c(parseInt(num / 26) - 1);
var one = c((num % 26) - 1);
result = ten + one;
}
return result;
}
function c(col)
{
var alpha = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
return alpha[col];
}
/*
testがないコードはレガシーなコードDA・KA・RA・NE☆
*/
function test_general(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var dataArray = [[0,1,2,4],[1,2,3],[2,3,4,4,6,7]];
bukkomiArrayMagic(sheet, dataArray);
}