Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 使用应用程序脚本将图像上载到Google电子表格_Google Apps Script_Google Apps - Fatal编程技术网

Google apps script 使用应用程序脚本将图像上载到Google电子表格

Google apps script 使用应用程序脚本将图像上载到Google电子表格,google-apps-script,google-apps,Google Apps Script,Google Apps,我不熟悉脚本编写。我已经从这里复制了代码 原始脚本允许用户通过web应用程序表单上传1张图像,然后图像将附加到Google电子表格中的一行,并添加到Google文档中。我已经能够修改web应用程序表单,允许用户上载2张图像,但我不知道如何将第二张图像放入电子表格和文档中 var submissionSSKey = 'Google Spreadsheet key'; var docurl = 'Google document URL' var listitems = ['Select a

我不熟悉脚本编写。我已经从这里复制了代码

原始脚本允许用户通过web应用程序表单上传1张图像,然后图像将附加到Google电子表格中的一行,并添加到Google文档中。我已经能够修改web应用程序表单,允许用户上载2张图像,但我不知道如何将第二张图像放入电子表格和文档中

    var submissionSSKey = 'Google Spreadsheet key';
var docurl = 'Google document URL'
var listitems = ['Select a 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 i 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 all fields').setStyleAttribute('background','#bbbbbb').setStyleAttribute('fontSize','18px');
  //file upload
  var cliHandler2 = app.createClientHandler()
  .validateLength(Textbox1, 1, 40).validateNotMatches(list1,'Select a category').validateEmail(email).validateNotMatches(upLoad, 'FileUpload');


  var cliHandler3 = app.createClientHandler()
  .validateNotMatches(upLoad1, 'FileUpload').forTargets(submitButton).setEnabled(true)
  .forTargets(warning).setHTML('Now you can submit your 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 THE FILE IS 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 to '+newW+' x '+newH+' for PREVIEW ('+weight+' kB)   ');
  GDoc.appendHorizontalRule();
  GDoc.saveAndClose();
  app.add(app.createLabel('Thank you for submitting'));
  return app
}
var submissionSSKey='Google电子表格键';
var docurl='Google文档URL'
var listitems=[“选择类别”、“肖像”、“风景”、“其他”、“夜景”、“自然”、“各种”]
var Panelstyle={'background':'ddddddddd','padding':'40px','borderStyle':'solid','borderWidth':'10PX','borderColor':'bbbbbbbb'}
函数doGet(){
var app=UiApp.createApplication().setTitle('Photography contest').setStyleAttribute('padding','50PX');
var panel=app.createFormPanel().setStyleAttributes(Panelstyle).setPixelSize(400200);
var title=app.createHTML('Photography contest')。setStyleAttribute('color','grey')。setStyleAttribute('fontSize','25PX');
var grid=app.createGrid(7,2).setId('grid');
var list1=app.createListBox().setName('list1').setWidth('130');
对于(listitems中的变量i){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('Submit');
var warning=app.createHTML('请填写所有字段').setStyleAttribute('背景','#bbbbbb').setStyleAttribute('字体大小','18px');
//文件上传
var cliHandler2=app.createClientHandler()
.validateLength(Textbox1,1,40).validateNotMatch(列表1,“选择类别”).validateEmail(电子邮件).validateNotMatch(上传,“文件上传”);
var cliHandler3=app.createClientHandler()
.validateNotMatches(上传1,'FileUpload').forTargets(提交按钮).setEnabled(真)
.forTargets(警告).setHTML('现在可以提交表单了').setStyleAttribute('背景','#99FF99').setStyleAttribute('字体大小','12px');
//表格上项目的网格布局
setWidget(0,1,标题)
.setText(1,0,“类别”)
.setWidget(1,1,list1.addClickHandler(cliHandler2))
.setText(2,0,'Name')
.setWidget(2,1,Textbox1.addClickHandler(cliHandler2))
.setText(3,0,“电子邮件”)
.setWidget(3,1,电子邮件)
.setText(4,0,“图像文件”)
.setWidget(4,1,upLoad.addChangeHandler(cliHandler2))
.setWidget(5,1,upLoad1.addChangeHandler(cliHandler3))
.setWidget(6,0,submitButton)
.setWidget(6,1,警告);
var cliHandler=app.createClientHandler().forTargets(警告).setHTML('文件上载时请稍候').setStyleAttribute('背景','黄色');
submitButton.addClickHandler(cliHandler).setEnabled(false);
面板。添加(网格);
应用程序添加(面板);
返回应用程序;
}
函数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);
试一试{
var folder=DocsList.getFolder('photos');
}catch(e){DocsList.createFolder('photos');var folder=DocsList.getFolder('photos')}
img.addToFolder(文件夹);
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,4)。设置值([[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()+”);
表1.setRowHeight(最后一行+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=宽度;
var height=inlineI.getHeight();
var newH=高度;
var比率=宽度/高度;
var fileBlob1=e.parameter.uploadedFile1;
var blob1=fileBlob1.setContentTypeFromExtension()
var img1=Doclist.createFile(blob1);
试一试{
var folder=DocsList.getFolder('photos');
}catch(e){DocsList.createFolder('photos');var folder=DocsList.getFolder('photos')}
img1.addToFolder(文件夹);
img1.removeFromFolder(DocsList.getRootFolder());
var-weight=parseInt(img1.getSize()/1000);
var sheet=SpreadsheetApp.openById(submissionskey.getSheetByName('Sheet2');
var lastRow=sheet.getLastRow();
var targetRange=sheet.getRange(lastRow+1,1,5)。设置值([[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()+”);
表1.setRowHeight(最后一行+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=宽度;
var height=inlineI.getHeight();
var newH=高度;
var比率=宽度/高度;
Logger.log('w='+宽度+'h='+高度+'比率='+比率);
如果(宽度>640){
newW=640;
newH=parseInt(newW/比率);
}
inlineI.setWidth(newW).setHeight(newH)
GDoc.appendParagation('图像大小:'+width+'x'+height+'(最终)调整为'+newW+'x'+newH+'进行预览('+weight+'kB');
GDoc.appendHorizontalRule();
GDoc.saveAndClose();
app.add(app.createLabel(‘感谢您提交’);
返回应用程序
}

自从我写了最初的脚本后,我认为我必须在第二个版本上提供帮助
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 to '+newW+' x '+newH+' for 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 to '+newW+' x '+newH+' for PREVIEW ('+weight2+' kB)   ');
  GDoc.appendHorizontalRule();
  GDoc.saveAndClose();
  app.add(app.createLabel('Thank you for submitting'));
  return app
}
var submissionSSKey = '11nxqFSYCqrtF1ukfbuVAJy9bnBnxkLTH0dIAIRKxZxo';
var docurl = 'https://docs.google.com/document/d/1xEQC63NP4D6bebTVeP1u1nagvVm6vE2KFedRuk86VFc/edit'
var listitems = ['Select a 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 i 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 all fields').setStyleAttribute('background','#bbbbbb').setStyleAttribute('fontSize','18px');
  //file upload
  var cliHandler2 = app.createClientHandler()
  .validateLength(Textbox1, 1, 40).validateNotMatches(list1,'Select a category').validateEmail(email).validateNotMatches(upLoad, 'FileUpload');


  var cliHandler3 = app.createClientHandler()
  .validateNotMatches(upLoad1, 'FileUpload').forTargets(submitButton).setEnabled(true)
  .forTargets(warning).setHTML('Now you can submit your 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 THE FILE IS UPLOADING<B>').setStyleAttribute('background','yellow');
  submitButton.addClickHandler(cliHandler).setEnabled(false);  
  panel.add(grid);
  app.add(panel);
  return app;
}