Uploading images to a Google Spreadsheet using Apps Script -


i'm new scripting. have copied code here upload image google spreadsheet

the original script allowed user upload 1 image via web app form , image append row in google spreadsheet , google doc. have been able modify web app form allow user upload 2 images, can't figure out how second image spreadsheet , doc.

    var submissionsskey = 'google spreadsheet key'; var docurl = 'google document url' var listitems = ['select category','portrait','landscape','other','night shots','nature','various'] var panelstyle = {'background':'#dddddd','padding':'40px','borderstyle':'solid','borderwidth':'10px','bordercolor':'#bbbbbb'}  function doget() {   var app = uiapp.createapplication().settitle('photography contest').setstyleattribute('padding','50px');   var panel = app.createformpanel().setstyleattributes(panelstyle).setpixelsize(400, 200);   var title = app.createhtml('<b>photography contest</b>').setstyleattribute('color','grey').setstyleattribute('fontsize','25px');   var grid = app.creategrid(7,2).setid('grid');   var list1 = app.createlistbox().setname('list1').setwidth('130');    for(var in listitems){list1.additem(listitems[i])}       var textbox1 = app.createtextbox().setwidth('150px').setname('tb1');   var email = app.createtextbox().setwidth('150px').setname('mail');   var upload = app.createfileupload().setname('uploadedfile');   var upload1 = app.createfileupload().setname('uploadedfile1');   var submitbutton = app.createsubmitbutton('<b>submit</b>');    var warning = app.createhtml('please fill in fields').setstyleattribute('background','#bbbbbb').setstyleattribute('fontsize','18px');   //file upload   var clihandler2 = app.createclienthandler()   .validatelength(textbox1, 1, 40).validatenotmatches(list1,'select category').validateemail(email).validatenotmatches(upload, 'fileupload');     var clihandler3 = app.createclienthandler()   .validatenotmatches(upload1, 'fileupload').fortargets(submitbutton).setenabled(true)   .fortargets(warning).sethtml('now can submit form').setstyleattribute('background','#99ff99').setstyleattribute('fontsize','12px');    //grid layout of items on form   grid.setwidget(0, 1, title)       .settext(1, 0, 'category')       .setwidget(1, 1, list1.addclickhandler(clihandler2))       .settext(2, 0, 'name')       .setwidget(2, 1, textbox1.addclickhandler(clihandler2))       .settext(3, 0, 'email')       .setwidget(3, 1, email)       .settext(4, 0, 'image file')       .setwidget(4, 1, upload.addchangehandler(clihandler2))       .setwidget(5, 1, upload1.addchangehandler(clihandler3))       .setwidget(6, 0, submitbutton)       .setwidget(6, 1, warning);    var clihandler = app.createclienthandler().fortargets(warning).sethtml('<b>please wait while file uploading<b>').setstyleattribute('background','yellow');   submitbutton.addclickhandler(clihandler).setenabled(false);     panel.add(grid);   app.add(panel);   return app; }   function dopost(e) {   var app = uiapp.getactiveapplication();   var listval = e.parameter.list1;   var textval = e.parameter.tb1;   var email = e.parameter.mail;   var fileblob = e.parameter.uploadedfile;   var blob = fileblob.setcontenttypefromextension()   var img = docslist.createfile(blob);   try{   var folder = docslist.getfolder('photos');   }catch(e){docslist.createfolder('photos');var folder = docslist.getfolder('photos')}   img.addtofolder(folder);   img.removefromfolder(docslist.getrootfolder());   var weight = parseint(img.getsize()/1000);   var sheet = spreadsheetapp.openbyid(submissionsskey).getsheetbyname('sheet1');   var lastrow = sheet.getlastrow();   var targetrange = sheet.getrange(lastrow+1, 1, 1, 4).setvalues([[listval,textval,email,"https://drive.google.com/uc?export=view&id="+img.getid()]]);   var imageinsert = sheet.getrange(lastrow+1, 5).setformula('=image("https://drive.google.com/uc?export=view&id='+img.getid()+'")');   sheet.setrowheight(lastrow+1, 80);   var gdoc = documentapp.openbyurl(docurl)   gdoc.appendtable([['category : '+listval,'name : '+textval,'email : '+email]])   var inlinei = gdoc.appendimage(img);   var width = inlinei.getwidth();   var neww = width;   var height = inlinei.getheight();   var newh = height;   var ratio = width/height;     var fileblob1 = e.parameter.uploadedfile1;   var blob1 = fileblob1.setcontenttypefromextension()   var img1 = doclist.createfile(blob1);   try{   var folder = docslist.getfolder('photos');   }catch(e){docslist.createfolder('photos');var folder = docslist.getfolder('photos')}   img1.addtofolder(folder);   img1.removefromfolder(docslist.getrootfolder());   var weight = parseint(img1.getsize()/1000);   var sheet = spreadsheetapp.openbyid(submissionsskey).getsheetbyname('sheet2');   var lastrow = sheet.getlastrow();   var targetrange = sheet.getrange(lastrow+1, 1, 1, 5).setvalues([[listval,textval,email,"https://drive.google.com/uc?export=view&id="+img1.getid()]]);   var imageinsert = sheet.getrange(lastrow+1, 6).setformula('=image("https://drive.google.com/uc?export=view&id='+img1.getid()+'")');   sheet.setrowheight(lastrow+1, 80);   var gdoc = documentapp.openbyurl(docurl)   gdoc.appendtable([['category : '+listval,'name : '+textval,'email : '+email]])   var inlinei = gdoc.appendimage(img1);   var width = inlinei.getwidth();   var neww = width;   var height = inlinei.getheight();   var newh = height;   var ratio = width/height;     logger.log('w='+width+'h='+height+' ratio='+ratio);   if(width>640){   neww = 640;   newh = parseint(neww/ratio);   }   inlinei.setwidth(neww).setheight(newh)   gdoc.appendparagraph('image size : '+width+' x '+height+' (eventually) resized '+neww+' x '+newh+' preview ('+weight+' kb)   ');   gdoc.appendhorizontalrule();   gdoc.saveandclose();   app.add(app.createlabel('thank submitting'));   return app } 

since wrote initial script thought had on second version :-)

here new dopost :

function dopost(e) {   var app = uiapp.getactiveapplication();   var listval = e.parameter.list1;   var textval = e.parameter.tb1;   var email = e.parameter.mail;   var fileblob1 = e.parameter.uploadedfile;   var blob1 = fileblob1.setcontenttypefromextension()   var img1 = docslist.createfile(blob1);   var fileblob2 = e.parameter.uploadedfile1;   var blob2 = fileblob2.setcontenttypefromextension()   var img2 = docslist.createfile(blob2);   try{   var folder = docslist.getfolder('photos');   }catch(e){docslist.createfolder('photos');var folder = docslist.getfolder('photos')}   img1.addtofolder(folder);   img1.removefromfolder(docslist.getrootfolder());   img2.addtofolder(folder);   img2.removefromfolder(docslist.getrootfolder());   var weight1 = parseint(img1.getsize()/1000);   var weight2 = parseint(img2.getsize()/1000);   var sheet = spreadsheetapp.openbyid(submissionsskey).getsheetbyname('sheet1');   var lastrow = sheet.getlastrow();   var targetrange = sheet.getrange(lastrow+1, 1, 1, 5).setvalues([[listval,textval,email,"https://drive.google.com/uc?export=view&id="+img1.getid(),"https://drive.google.com/uc?export=view&id="+img2.getid()]]);   var image1insert = sheet.getrange(lastrow+1, 6).setformula('=image("https://drive.google.com/uc?export=view&id='+img1.getid()+'")');   var image2insert = sheet.getrange(lastrow+1, 7).setformula('=image("https://drive.google.com/uc?export=view&id='+img2.getid()+'")');   sheet.setrowheight(lastrow+1, 80);   var gdoc = documentapp.openbyurl(docurl)   gdoc.appendtable([['category : '+listval,'name : '+textval,'email : '+email]])   var inlinei = gdoc.appendimage(img1);   var width = inlinei.getwidth();   var neww = width;   var height = inlinei.getheight();   var newh = height;   var ratio = width/height;   logger.log('w='+width+'h='+height+' ratio='+ratio);   if(width>640){   neww = 640;   newh = parseint(neww/ratio);   }   inlinei.setwidth(neww).setheight(newh)   gdoc.appendparagraph('image size : '+width+' x '+height+' (eventually) resized '+neww+' x '+newh+' preview ('+weight1+' kb)   ');   var inlinei = gdoc.appendimage(img2);   var width = inlinei.getwidth();   var neww = width;   var height = inlinei.getheight();   var newh = height;   var ratio = width/height;   logger.log('w='+width+'h='+height+' ratio='+ratio);   if(width>640){   neww = 640;   newh = parseint(neww/ratio);   }   inlinei.setwidth(neww).setheight(newh)   gdoc.appendparagraph('image size : '+width+' x '+height+' (eventually) resized '+neww+' x '+newh+' preview ('+weight2+' kb)   ');   gdoc.appendhorizontalrule();   gdoc.saveandclose();   app.add(app.createlabel('thank submitting'));   return app } 

and doget few modifications :

var submissionsskey = '11nxqfsycqrtf1ukfbuvajy9bnbnxklth0diairkxzxo'; var docurl = 'https://docs.google.com/document/d/1xeqc63np4d6bebtvep1u1nagvvm6ve2kfedruk86vfc/edit' var listitems = ['select category','portrait','landscape','other','night shots','nature','various'] var panelstyle = {'background':'#dddddd','padding':'40px','borderstyle':'solid','borderwidth':'10px','bordercolor':'#bbbbbb'}  function doget() {   var app = uiapp.createapplication().settitle('photography contest').setstyleattribute('padding','50px');   var panel = app.createformpanel().setstyleattributes(panelstyle).setpixelsize(400, 200);   var title = app.createhtml('<b>photography contest</b>').setstyleattribute('color','grey').setstyleattribute('fontsize','25px');   var grid = app.creategrid(7,2).setid('grid');   var list1 = app.createlistbox().setname('list1').setwidth('130');    for(var in listitems){list1.additem(listitems[i])}       var textbox1 = app.createtextbox().setwidth('150px').setname('tb1');   var email = app.createtextbox().setwidth('150px').setname('mail');   var upload = app.createfileupload().setname('uploadedfile');   var upload1 = app.createfileupload().setname('uploadedfile1');   var submitbutton = app.createsubmitbutton('<b>submit</b>');    var warning = app.createhtml('please fill in fields').setstyleattribute('background','#bbbbbb').setstyleattribute('fontsize','18px');   //file upload   var clihandler2 = app.createclienthandler()   .validatelength(textbox1, 1, 40).validatenotmatches(list1,'select category').validateemail(email).validatenotmatches(upload, 'fileupload');     var clihandler3 = app.createclienthandler()   .validatenotmatches(upload1, 'fileupload').fortargets(submitbutton).setenabled(true)   .fortargets(warning).sethtml('now can submit form').setstyleattribute('background','#99ff99').setstyleattribute('fontsize','12px');    //grid layout of items on form   grid.setwidget(0, 1, title)       .settext(1, 0, 'category')       .setwidget(1, 1, list1.addclickhandler(clihandler2))       .settext(2, 0, 'name')       .setwidget(2, 1, textbox1.addclickhandler(clihandler2))       .settext(3, 0, 'email')       .setwidget(3, 1, email)       .settext(4, 0, 'image file')       .setwidget(4, 1, upload.addchangehandler(clihandler2))       .setwidget(5, 1, upload1.addchangehandler(clihandler3))       .setwidget(6, 0, submitbutton)       .setwidget(6, 1, warning);    var clihandler = app.createclienthandler().fortargets(warning).sethtml('<b>please wait while file uploading<b>').setstyleattribute('background','yellow');   submitbutton.addclickhandler(clihandler).setenabled(false);     panel.add(grid);   app.add(panel);   return app; } 

Comments

Popular posts from this blog

python - Subclassed QStyledItemDelegate ignores Stylesheet -

java - HttpClient 3.1 Connection pooling vs HttpClient 4.3.2 -

SQL: Divide the sum of values in one table with the count of rows in another -