2017-08-20 7 views
1

私はこのスクリプトをAmitのウェブサイトからインポートします。私にとってはそれだけで4桁の数字は、私が何をしようとしているcsvファイルからGoogleスプレッドシートに特定の配列をインポートする - 範囲全体ではなく、1、1の代わりに4桁のセルのみ

function importCSVFromGoogleDrive() { 

    var file = DriveApp.getFilesByName("data.csv").next(); 
    var csvData = Utilities.parseCsv(file.getBlob().getDataAsString()); 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData); 

} 

をディメンションでは動作しませんcsvファイルの特定の範囲のみをインポートすることです。私が理解している限り、1、1とタイプすると、スプレッドシートからすべてのセルが貼り付けられます(row1、column1から開始)。しかし、このように新しいデータが到着すると(例えば別の子会社から)、スプレッドシート全体が上書きされます。私はインポートする方法を見つけようとしています(Sheet.getRange(1,1,1,12)で説明したように、括弧内の数字は何を指定しますか?)C2からG8までのセルのみです。ディジットディメンションを使用していますが、私はAmitのスクリプトでどのように見えるか分かりません。

ありがとうございました。

答えて

0

問題: csvファイルの特定の範囲のみをインポートします。 G8

へのC2からの細胞のみを考える:次に

var csvData = Utilities.parseCsv(file.getBlob().getDataAsString()); 
sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData); 

これはに存在したであろう配列を生成します "C2を:G8"

var C2G8Array=subArray(csvData,2,3,8,7); 

ここで、

subArray()は次のように定義されています。

//iA=inputArray ulrow=upper left row, ulcol=upper left column, lrrow=lower right row, lrcol=lower right column 
function subArray(iA,ulrow,ulcol,lrrow,lrcol) 
{ 
    var oA=[]; 
    for(var i=0;i<iA.length;i++) 
    { 
    if(i>=ulrow-1 && i<=lrrow-1) 
    { 
     oA.push(iA[i].slice(ulcol-1,lrcol)); 
    } 
    } 
    return oA; 
} 
関連する問題