Skip to content

Instantly share code, notes, and snippets.

@rmeekers
Created December 11, 2017 08:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rmeekers/02b163d288deff1de7762ba41d7acbf8 to your computer and use it in GitHub Desktop.
Save rmeekers/02b163d288deff1de7762ba41d7acbf8 to your computer and use it in GitHub Desktop.
Bulk Convert XLSX Files in Google Drive To Google Sheet
/*
* Setttings
*/
// Google Drive Folder ID which contains the Excel files you want to convert
var driveFolderId = '';
// Folder name in which we should place the original files after conversion
var sourceFilesFolderName = 'Source Files';
/*
* Function convertFiles
* Converts all xlsx files in the given folder
*/
function convertFiles(){
if (driveFolderId == '') {
throw 'Error, driveFolderId is empty';
return false;
}
var excelFiles = DriveApp.getFolderById(driveFolderId).getFilesByType(MimeType.MICROSOFT_EXCEL);
var driveFolderSubFolders = DriveApp.getFolderById(driveFolderId).getFoldersByName(sourceFilesFolderName);
while (driveFolderSubFolders.hasNext()) {
folder = driveFolderSubFolders.next();
folderName = folder.getName();
if (folderName === sourceFilesFolderName) {
var sourceFilesFolderId = folder.getId();
break;
};
};
if (!sourceFilesFolderId) {
var sourceFilesFolder = DriveApp.createFolder(sourceFilesFolderName)
DriveApp.getFolderById(driveFolderId).addFolder(sourceFilesFolder);
var sourceFilesFolderId = sourceFilesFolder.getId();
}
while(excelFiles.hasNext()){
var excelFile = excelFiles.next();
var name = excelFile.getName();
var excelFileId = excelFile.getId();
var excelFileBlob = excelFile.getBlob();
file = Drive.Files.insert(
{
title: name,
key: excelFileId,
parents: [{id: driveFolderId}]},
excelFileBlob,{convert: true}
);
// Remove the file from all parent folders
var parents = excelFile.getParents();
while (parents.hasNext()) {
var parent = parents.next();
parent.removeFile(excelFile);
}
// Add the file to the originals folder
DriveApp.getFolderById(sourceFilesFolderId).addFile(excelFile);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment