Converting .xls to google spreadsheet in google apps script

Viewed 18305

I have an .xls file stored in Google Drive. I want to convert it to the Google Sheets spreadsheet file format from Google Apps Script. Is there any way to do this without external solutions?

4 Answers

Here's the complete code to create a file in a particular folder: (was a hint but was not completely apparent to me from @ben-visness comment)

var file = { 
    "title": filename, 
    "parents": [{"id": folderId}]
};
file = Drive.Files.insert(file, blobObj, {
    "convert": true
});

Note: This will require enabling advanced Drive service from within Google Apps Script - Menu > Resources > Advanced Google Services AND Menu > Resources > Advanced Google Services > Google API Console.

Here's the code I used to convert an Excel file into a Google Sheets file, with the same name and in the same folder.

var excel = DriveApp.getFileById(...);

var resource = {
   title : excel.getName(),
   mimeType : MimeType.GOOGLE_SHEETS,
   parents: [{id : folder.getId()}],
}

Drive.Files.insert(resource, excel.getBlob());

In my case, I already had a folder object available which represented the folder I wanted to save the sheet to, but you could just as easily get the folder of the original file using excel.getParents().

You will also have to enable an Advanced Google Service called "Drive API" in order to use Drive.Files. Read more here.

Solution was originally derived from this article.

Related