web-dev-qa-db-ja.com

Google Appsスクリプトを使用してスプレッドシートの1列の値を取得する

Googleアプリのスクリプトを使用して、スプレッドシートの1列のみから文字列値を取得します(後でif条件と比較するため)。私はインターネットを検索し、このリンクを見つけました-これが愚かに聞こえたら申し訳ありませんが、Googleアプリのスクリプトは初めてです- https://developers.google.com/apps-script/class_spreadsheet

var values = SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).getValues(); 

私はそれが役立つに違いないと思います、唯一の問題は、値を取得したい列が動的であるということですので、この列の範囲をどのように設定しますか

22
Hashim Adel

単に使用する場合:

var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues()

行と列でインデックス付けされたシート内のすべてのデータの2次元配列を取得します。

したがって、列A、row1の値を取得するには、values[0][0]values[1][0]列A、行2、values[0][2]列C行1など...

Forループ(単一の列)で反復する必要がある場合:

for(n=0;n<values.length;++n){
var cell = values[n][x] ; // x is the index of the column starting from 0
}

Forループで(1行で)繰り返す必要がある場合:

for(n=0;n<values[0].length;++n){
var cell = values[x][n] ; // x is the index of the row starting from 0
}
35
Serge insas

行をループして列の値を取得するはるかに簡単な方法..

var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();

values.forEach( function(row) {
  row[4] // column index as 4
});
3
shakee93

以下は、動的な列の値を取得するために使用するスクリプトです。

var SS = SpreadsheetApp.getActiveSheet()
var Avals = SS.getRange("A1:A").getValues();
var numberOfValues = Avals.filter(String).length;
var RangeVals = SS.getRange(1,1,numberOfValues).getValues();

ただし、動的に変化する開始点に基づいて、どの開始行を変更する必要はありませんでした。それがどのように行われるかを見てみたいと思います。

同様の post があります。別の例 here

0
gg-edu