Reputation: 83
I need the var file = dir.createFile(blob).setContent('Stores_Month.pdf');
to every time, overwrite the existing Stores_Month.pdf file in the specified Google Drive folder.
function runCBUEBUquarterly() {
var file = DriveApp.getFilesByName("Data_Stores_Quarter.csv").next();
var csvData = Utilities.parseCsv(file.getBlob().getDataAsString());
var sheet = SpreadsheetApp.getActive().getSheetByName('Data_Month');
sheet.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
/* Highlight all sort range and sort by AS - Okanagan */
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActive().getSheetByName('Stores_Month');
var range = sheet.getRange("A5:AS10");
// Sorts by the values in column (AS)
range.sort({column: 45, ascending: false});
/* Highlight all sort range and sort by AS - LM & Whistler */
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActive().getSheetByName('Stores_Month');
var range = sheet.getRange("A13:AS24");
// Sorts by the values in column (AS)
range.sort({column: 45, ascending: false});
/* Save as PDF to Google Drive */
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActive().getSheetByName('Stores_Month');
var url = ss.getUrl();
//remove the trailing 'edit' from the url
url = url.replace(/edit$/,'');
//additional parameters for exporting the sheet as a pdf
var url_ext = 'export?exportFormat=pdf&format=pdf' + //export as pdf
//below parameters are optional...
'&size=letter' + //paper size
'&portrait=false' + //orientation, false for landscape
'&fitw=false' + //fit to width, false for actual size
'&pagenumbers=true' + //fit to width, false for actual size
'&sheetnames=false&printtitle=false' + //hide optional headers and footers
'&gridlines=false' + //hide gridlines
'&fzr=true' + //do not repeat row headers (frozen rows) on each page
'&gid=' + sheet.getSheetId(); //the sheet's Id
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + url_ext, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var blob = response.getBlob().setName(sheet.getName() + '.pdf');
//from here you should be able to use and manipulate the blob to send and email or create a file per usual.
//In this example, I save the pdf to drive
var dir = DriveApp.getFoldersByName('CBU & EBU - Quarterly Tracker').next();
var file = dir.createFile(blob).setContent('Stores_Month.pdf');
}
Upvotes: 2
Views: 1636
Reputation: 31300
You'll probably need to use something like the following code. I haven't tested it, but try it out, and see what happens:
var dir, file, newContent;
//dir = DriveApp.getFoldersByName('CBU & EBU - Quarterly Tracker').next();
dir = DriveApp.getFolderById('put the folder ID here');//Get folder by ID
file = dir.getFilesByName('Stores_Month.pdf').next();
if (file) {//There is an existing file by that name
newContent = blob.getDataAsString();
Logger.log('blob: ' + blob);
Logger.log('blob.getDataAsString(): ' + blob.getDataAsString());
file.setContent(newContent);//The new content must be a string
} else {//no file by that name was found
file = dir.createFile(blob).setName('Stores_Month.pdf');
}
Upvotes: 1