function main() {
var EMAIL='Input User Email';
/* CSV Parse */
var csvurl = 'http://.csv';
var csvString = UrlFetchApp.fetch(csvurl).getContentText();
var csvdata = Utilities.parseCsv(csvString);
/* Spreadsheet Parse */
var url = 'https://docs.google.com/spreadsheet/';
var spreadsheet = getSpreadsheet(url);
var sheet = spreadsheet.getSheetByName('Stock');
/* connect to spreadsheet */
function getSpreadsheet(spreadsheetUrl) {
var matches = new RegExp('key=([^&#]*)').exec(spreadsheetUrl);
if (!matches || !matches[1]) {
throw 'Invalid spreadsheet URL: ' + spreadsheetUrl;
}
var spreadsheetId = matches[1];
return SpreadsheetApp.openById(spreadsheetId);
}
/* get height of CSV */
for (var rowIndex = 0; rowIndex < csvdata.length; rowIndex++) {
var csvrows = rowIndex;
}
/* get hieght of spreadsheet */
var range = sheet.getDataRange();
var values = range.getValues();
for (var spreadsheetrowIndex = 0; spreadsheetrowIndex < values.length; spreadsheetrowIndex++) {
var rows = spreadsheetrowIndex;
}
/* iterate through each SKU in CSV*/
for (var n=1; n<rowIndex; n++) {
var fail = 0;
var success = 0;
var csvSKU = (csvdata[n][0]);
/* iterate through all the spreadsheet SKUs*/
for(var x=0; x<spreadsheetrowIndex; x++){
var y=x+1;
var spreadsheetSKU = sheet.getRange("A" + y + "").getValue();
if(csvSKU == spreadsheetSKU){
var success = success+1;
}
else{
var fail = fail+1;
}
if(fail==spreadsheetrowIndex){
var csvName = (csvdata[n][1]);
var csvDescription = (csvdata[n][2]);
var csvLink = (csvdata[n][10]);
var details = "PRODUCT NAME - "+ csvName +" PRODUCT SKU - "+ csvSKU +" PRODUCT DESCRIPTION - "+ csvDescription +" PRODUCT LINK - "+csvLink+"";
/* Email user with new stock item*/
MailApp.sendEmail(EMAIL, 'New Products Added to Suttons Feed', details)
}
}
}
}
function main() {
/* Add any email addresses you want reports to go to seperated by (,)*/
var EMAIL = 'ADD YOUR EMAIL';
/* CSV Parse */
var csvurl = 'URL OF MOST UP TO DATE CSV';
var csvString = UrlFetchApp.fetch(csvurl).getContentText();
var csvdata = Utilities.parseCsv(csvString);
var csvSKU = new Array();
var csvName = new Array();
var csvDescription = new Array();
var csvLink = new Array();
/* Spreadsheet Parse */
var url = 'URL OF OLD CSV FILE WE ARE CHECKING AGAINST';
var spreadsheet = UrlFetchApp.fetch(url).getContentText();
var sheet = Utilities.parseCsv(spreadsheet);
var spreadsheetSKU = new Array();
/* get height of NewCSV */
for (var rowIndex = 0; rowIndex < csvdata.length; rowIndex++) {
csvSKU = (csvdata[rowIndex][0]);
csvName = (csvdata[rowIndex][1]);
csvDescription = (csvdata[rowIndex][2]);
csvLink = (csvdata[rowIndex][14]);
}
/* get height of OldCSV */
for (var spreadsheetrowIndex = 0; spreadsheetrowIndex < sheet.length; spreadsheetrowIndex++) {
spreadsheetSKU = (sheet[spreadsheetrowIndex][0]);
}
/* iterate through each SKU in CSV*/
for (var n = 1; n < rowIndex; n++) {
/* fail and success are equal to 0*/
var fail = 0;
var success = 0;
/* iterate through all the spreadsheet SKUs roughly 4300*/
for (var x = 0; x < spreadsheetrowIndex; x++) {
/* if csvSKU data matches spreadsheet SKU add 1 to success */
if (csvSKU[n] == spreadsheetSKU[x]) {
var success = success + 1;
}
/* if csvSKU data doesnt match spreadsheet SKU add 1 to fail */
else {
var fail = fail + 1;
}
/* if fail is equal to the number of rows in the New CSV file than this SKU is not recorded any where in the old file*/
if (fail == spreadsheetrowIndex) {
var details = "PRODUCT NAME - " + csvName[n] + " PRODUCT SKU - " + csvSKU[n] + " PRODUCT DESCRIPTION - " + csvDescription[n] + " PRODUCT LINK - " + csvLink[n] + "";
MailApp.sendEmail(EMAIL, 'New Products Added to Suttons Feed', details)
}
}
}
}
function main() {
var array1 = ['dad','uh','hgj','zugs','bb','hello']; var array2 = ['hello','bb','uh']
//concat two arrays var fullList=array1.concat(array2);
//sort the concatenated array fullList.sort(); //go through the array, stop before reach end, because of n+1 index for (var n = 0; n < (fullList.length-1); n++) {
if (fullList[n] == fullList[n+1]) { //remove matching two elements fullList.splice(n, 2); } } for (var n = 0; n < fullList.length; n++) {
Logger.log(fullList[n]); } }
if (fullList[n] == fullList[n+1]) { //remove matching two elements fullList.splice(n, 2);
n--; }
It should work now properly.
Erno