I'm trying to convert all CSV and Excel files in a folder to Google Sheet format. The code works, but debugging it produces an error.
function fileToSheet(fileId) {
var file = DriveApp.getFileById(fileId);
var fileInfo = {
title: "(" + Utilities.formatDate(new Date(), "IST", "yyyy.mm.dd") + ") " + file.getName(),
mimeType: MimeType.GOOGLE_SHEETS,
parents: [{id: file.getParents().next().getId()}]
}
var blob = file.getBlob();
var mimeType = blob.getContentType();
if (mimeType == MimeType.CSV || mimeType == MimeType.MICROSOFT_EXCEL || mimeType == MimeType.MICROSOFT_EXCEL_LEGACY) {
var spreadsheet = Drive.Files.insert(fileInfo, blob);
Logger.log(spreadsheet.id)
}
return ""
}
function convertFiles(folderId) {
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
Logger.log(files.length)
while (files.hasNext()) {
var file = files.next()
var fileId = file.getId()
fileToSheet(fileId)
}
}
- Debugging and running it to the end still produces an error (Error Exception: Invalid argument: id fileToSheet @ Code.gs:2), but the code still works when I use it on folders.
- Is there any way to shorten the code to make it more concise? (still new to coding)
Thank you!