-
-
Save juanpabloaj/4666836 to your computer and use it in GitHub Desktop.
xls attached to google spreadsheet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function uploadXls(file) { | |
authorize(); | |
var key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // <-- developer key | |
var metadata = { title: file.getName() } | |
var params = {method:"post", | |
oAuthServiceName: "drive", | |
oAuthUseToken: "always", | |
contentType: "application/vnd.ms-excel", | |
contentLength: file.getBytes().length, | |
payload: file.getBytes() | |
}; | |
// convert=true convert xls to google spreadsheet | |
var uploadRequest = UrlFetchApp.fetch("https://www.googleapis.com/upload/drive/v2/files/?uploadType=media&convert=true&key="+key, params); | |
var uploadResponse = Utilities.jsonParse(uploadRequest.getContentText()); | |
var params = {method:"put", | |
oAuthServiceName: "drive", | |
oAuthUseToken: "always", | |
contentType: "application/json", | |
payload: Utilities.jsonStringify(metadata) | |
}; | |
var metaRequest = UrlFetchApp.fetch("https://www.googleapis.com/drive/v2/files/"+uploadResponse.id+"?key="+key, params) | |
return DocsList.getFileById(uploadResponse.id); | |
} | |
function authorize() { | |
var oauthConfig = UrlFetchApp.addOAuthService("drive"); | |
var scope = "https://www.googleapis.com/auth/drive"; | |
oauthConfig.setConsumerKey("anonymous"); | |
oauthConfig.setConsumerSecret("anonymous"); | |
oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope); | |
oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken"); | |
oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken"); | |
} | |
function processInbox() { | |
// get all threads in inbox | |
var threads = GmailApp.getInboxThreads(); | |
for (var i = 0; i < threads.length; i++) { | |
// get all messages in a given thread | |
var messages = threads[i].getMessages(); | |
// iterate over each message | |
for (var j = 0; j < messages.length; j++) { | |
// log message subject | |
var subject = messages[j].getSubject() | |
//Logger.log(subject); | |
if ( subject == "with xls attach" ){ | |
Logger.log(messages[j].getSubject()); | |
var attach = messages[j].getAttachments()[0]; | |
var name = attach.getName(); | |
var type = attach.getContentType(); | |
//var data = attach.getDataAsString(); | |
Logger.log( name + " " + type + " " ); | |
var file = uploadXls(attach); | |
SpreadsheetApp.open(file); | |
} | |
} | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment