フォルダ内のファイル数を数えるgoogleスクリプトを作成しようとしていますが、この数値を変数のサイズを定義するために使用できますアレイ。配列のサイズをフォルダ内のファイル数と同じに設定する
- IDフォルダ
- フォルダ内のファイルが
- セットカウンタは= FILECOUNT
- 使用カウンタは、配列サイズを定義するために取得
私の試み:私は
function setarraytofilecount() {
var dealspsfolderid = "ID goes here";
var dealspsfolder = DriveApp.getFolderById(dealspsfolderid);
var ssfiles = dealspsfolder.getFiles();
var count, file;
count = 0;
while (ssfiles.hasNext()) {
count++;
file = ssfiles.next();
}
var nesteddata = new Array(count);
filの数に等しいサイズの配列を作成することを期待する私はこれが起こっているとは思わない。
スクリプトは実行されますが、これ以降は単純化のために省略しています。私は、問題は、私は新しいArray()で変数のカウントを使用することはできませんかもしれないと思う、それは正しいですか?ここで
は、全体のスクリプトです:
function autoUpdateFiles() {
// set the folder to pull files from
var dealspsfolderid = "removed";
var dealspsfolder = DriveApp.getFolderById(dealspsfolderid);
var ssfiles = dealspsfolder.getFiles();
var trackerurl = "removed";
var sstoupdate = SpreadsheetApp.openByUrl(trackerurl);
// set the sheet to update
var sheettoupdate = sstoupdate.getSheetByName('AutoTracker');
// indicates current deal row
var rowcounter = 0;
// get number of files in the folder which we can use to define array size
var count,file;//Define variables without assigning a value
count = 0;
while (ssfiles.hasNext()) {
count++;
file = ssfiles.next();
}
// nested array of row data arrays. i.e. each index is an array of a row
var nesteddata = new Array();
nesteddata.length = count;
for(i = 0; i < nesteddata.length; i++){
nesteddata[i] = new Array(158);
}
// nested array of row data arrays. i.e. each index is an array of a row
var URLarray = new Array();
URLarray.length = count;
for(i = 0; i < URLarray.length; i++){
URLarray[i] = new Array(1);
}
// iterate through each file
while (ssfiles.hasNext()) {
// pull the next file
var file = ssfiles.next();
// get the url
Logger.log(file.getUrl());
// activate the sheet
var spreadsheet = SpreadsheetApp.open(file);
var activesheet = spreadsheet.getSheets()[0].activate();
// pull values from the files
// ranges are ROW, COLUMN
var URL = file.getUrl();
var colC = activesheet.getRange(3, 3, 158 ,3).getValues();
// transition the vertical multidimensional array returned into flat array for a row
for(var i = 0; i < colC.length; i++){
nesteddata[rowcounter][i]=colC[i][0];
}
for(var i = 0; i < URLarray.length; i++){
URLarray[rowcounter]= [URL];
}
rowcounter ++;
}
// write out to the sheet
sheettoupdate.getRange(2,1,nesteddata.length,1).setValues(URLarray);
sheettoupdate.getRange(2,2,nesteddata.length,158).setValues(nesteddata);
なぜあなたは "信じない" を持つと、その中の要素の数を持っているのだろうか?エラーメッセージが表示されますか? –
[配列サイズはどのようにJavascriptで動作するのですか?](https://stackoverflow.com/questions/6232151/how-do-array-sizes-work-in-javascript) –
エラーメッセージは表示されませんが、私は書いています入れ子にされた配列から値を取り出し、それが書かれているすべてが「見つからない」ので、次元が入力されていないと思います。 –