2016-12-09 8 views
1

Googleドライブに新しいスプレッドシートを作成し、特定のGoogleドライブフォルダのシートを新しく作成したスプレッドシートにマージするスクリプトを作成しようとしています。Googleシートスクリプトエラー - [オブジェクトオブジェクト]をスプレッドシートに変換できません

現在、私は次のエラーが発生しています:[オブジェクトオブジェクト]をスプレッドシートに変換できません。 (行34、ファイル "コード")

以下のコードをコピーしました。

function mergeSheets() { 

    /* Retrieve the desired folder */ 
    var myFolder = DriveApp.getFoldersByName("Merging Spreadsheet Test Folder").next(); 

    /* Get all spreadsheets that resided on that folder */ 
    var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet"); 


var newSpreadSheet = { 
    "title": "Test Merge Document", 
    "mimeType": "application/vnd.google-apps.document", 
    "parents": [ 
     { 
     "id": "0B4DgXVz2cL8oRURkdUNCZEhITG8" 
     } 
    ] 
    }; 

    Drive.Files.insert(newSpreadSheet); 

    /* Iterate over the spreadsheets over the folder */ 
    while(spreadSheets.hasNext()) { 

    var sheet = spreadSheets.next(); 

    /* Open the spreadsheet */ 
    var spreadSheet = SpreadsheetApp.openById(sheet.getId()); 

    /* Get all its sheets */ 
    for(var y in spreadSheet.getSheets()) { 

     /* Copy the sheet to the new merged Spread Sheet */ 
     spreadSheet.getSheets()[y].copyTo(newSpreadSheet); 
    } 
    }  
}  

ご協力いただければ幸いです。

+0

私は、SpreadsheetAppで他のスプレッドシートを開くことに気付きました。おそらく、whileループの前に同じ方法で 'newSpreadsheet'を開くべきでしょう。 –

答えて

0

シートをスプレッドシートではなくオブジェクトに保存しようとしています。これを修正するには2つの方法があります。

あなたはしてスプレッドシートを作成することができます

var newSpreadSheet = SpreadsheetApp.create("Test Merge Document"); 

またはあなたがそれを行った後のシートを開きます。

var newSpreadSheet = { 
    "title": "Test Merge Document", 
    "mimeType": "application/vnd.google-apps.document", 
    "parents": [ 
     { 
     "id": "0B4DgXVz2cL8oRURkdUNCZEhITG8" 
     } 
    ] 
    }; 

var newSS = Drive.Files.insert(newSpreadSheet), 
    newSpreadSheet = SpreadsheetApp.openById(newSS.id); 
0

ここに私が使用して終了ソリューションです。魅力のように動作します。

function mergeSheets() { 

/* Retrieve the desired folder */ 
var myFolder = DriveApp.getFoldersByName("Enter Folder Name Here").next(); 

/* Get all spreadsheets that resided on that folder */ 
var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet");  

/* Creates new spreadsheet to merge documents into */ 
var newSpreadSheet = SpreadsheetApp.create("Enter Name For New Spreadsheet Here"); 

/* Iterate over the spreadsheets over the folder */ 
while(spreadSheets.hasNext()) { 
var sheet = spreadSheets.next(); 

/* Grabs name of the document */  
var ssName = sheet.getName(); 
Logger.log(ssName) 

/* Open the spreadsheet */ 
var spreadSheet = SpreadsheetApp.openById(sheet.getId()); 

/* Get all its sheets */ 
for(var y in spreadSheet.getSheets()) { 

     /* Copy the sheet to the new merged Spread Sheet */ 
     spreadSheet.getSheets()[y].copyTo(newSpreadSheet).setName(ssName); 
    } 

    }  
} 
関連する問題