google apps scriptでスプレッドシートの特定の列, 行を配列として取り込む
google apps scriptのgetRange と getValuesを利用して特定のシートの指定した範囲のセルに含まれる値を取得することができるのだが、これだと列方向に対して値を取得した際に
[["A1"], ["A2"], ["A3"], ... ]
といった形で取得され、逆に行に対して値を取得すると
[["A1", "B1", "C1", ...]]
という形で取得される。複数の行・列を指定しての範囲を指定してセルの情報を取得する場合はよいのだけれども単一の行と列を取得する場合は少し扱いにくい。
上の様になってほしいので
parseLine("シート名", "B:B");
みたいな形で呼び出すとシンプルな1次元配列で返すものを準備した。
function parseLine(sheetName, range) { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); var selectRange=sheet.getRange(range); var values=selectRange.getValues(); var responseArray = []; var isCol = false; var isNum = new RegExp(/^[0-9]+(\.[0-9]+)?$/); if (isNum.test(range.charAt(0))) { for(var i=0; i<values[0].length; i++) { responseArray.push(values[0][i].toString()); } } else { for(var i=0; i<values.length; i++) { responseArray.push(values[i][0].toString()); } } return responseArray; }
得てしてこういうのを書くと既にAPIとして備わってること多い気もするのだけれども実際どうだろう。
徒然日記 - ネギチャーシュー麺
在宅勤務3週1日目。
考え事したいところもあったのでお昼休憩を使って外に出てラーメンを食べた。珍しく散歩をしても何一つ考えはまとまらなかったがラーメンは美味しかった。醤油味玉子麺。やさしさがここにある。
徒然日記
お約束の日曜日の週間である安住紳一郎の日曜天国を聞いた後、続けてタイムシフトで神田松之丞問わず語りの松之丞を聴く。
相変わらずの番組の内容だったのだけれどもアントニオ猪木にインタビューをした話をしていてその話がとてもよかった。すべてのエンターテイナーは、どう見られているのかを常に考えているのだなと知れるエピソードだった。神田伯山襲名前最後の放送。そういえば、来週の情熱大陸はその襲名までの内容なので見なければ。
次回の情熱大陸は、講談師/松之丞改め、神田伯山。
— 情熱大陸 (@jounetsu) 2020年2月9日
今、最もチケットの取れない講談師。真打昇進までの軌跡を追う―。
2月16日よる11時放送。#情熱大陸 #mbs #tbs #神田松之丞 #神田伯山 #講談師 pic.twitter.com/Rl3duLQ6Tm
徒然日記 - fastifyのテンプレートエンジン
徒然日記 - 血圧測定, オンラインでのミーティングの準備
健康診断ぐらいでしか測ったことがなかったので測ってみた。110/83 、お陰様で正常値というか少し低いくらいか。
引き続き在宅勤務中なのだけれども自分が参加するミーティングがたまたま複数ある一日だったのであるが徐々に慣れてきたところの感想としては、実際に集まって行うミーティングのときはもちろんなのだけれども、オンラインであればなおさらのこと事前の準備が大事だなと思った。例えば、
- そもそもスムーズに接続できるか
- アジェンダの事前の共有
- 画面共有するときにすぐ表示できる様にブラウザで予め開いているか
とか。
その場に全員がいるとそれとなくの空気感であったりで共有できるところもあるんだけれども*1、オンラインだとそのあたりの事情を把握できるチャネルが少ないので余計に大事になるんだろうなと思った。
*1:とはいえ実際に集まる場合も当然事前の準備大事