Google Apps Script Erstellen Formular mit Datei-upload
Ich bin in den Prozess der Erstellung einer einfachen form, nimmt Benutzer-Eingaben über Textfelder und drop-down-Liste und auf submit log in eine Tabelle. So weit dies funktioniert. Was ich hinzufügen möchte, die form ist eine "Datei-upload" - Funktion, die erlaubt, dass jemand die Datei auswählen und auf Absenden des Formulars die Datei ist hochgeladen, sobald die Daten Werte von Textfeldern und drop-downs protokolliert in der Tabelle. Ich habe überprüft der folgende link https://developers.google.com/apps-script/class_fileupload aber ich habe eine harte Zeit einfügen /hinzufügen des Beispiel-in die bestehende doGet-Funktion.. Jemand in der Lage, zu helfen oder Hinweise geben? Hier ist die Google App Script-code so weit.
*verwendet die folgenden link, um die Basis-form auf: https://sites.google.com/site/appsscripttutorial/advanced-examples/insert-data-in-sheet-using-ui-forms
//Script-as-app template.
var submissionSSKey = 'Spreadsheet Key goes Here';
function doGet() {
var app = UiApp.createApplication().setTitle('Loan Registration Processing');
var panel = app.createVerticalPanel();
var grid = app.createGrid(8,2).setId('loanGrid');
var loanTypeLabel = app.createLabel('Loan Type');
var loanList = app.createListBox().setName('Loan List').setWidth('120px').setName('LoanType');
loanList.addItem('Select Option');
loanList.addItem('FHA');
loanList.addItem('Convential');
loanList.addItem('VA');
loanList.addItem('Reverse');
loanList.addItem('HELOC');
var borrowerNameLabel = app.createLabel("Borrower's Name");
var borrowerTextbox = app.createTextBox().setWidth('150px').setName('borrower');
var loanAmountLabel = app.createLabel('Loan Amount');
var loanAmountTextbox = app.createTextBox().setWidth('150px').setName('amount');
var appDateLabel = app.createLabel('Loan Date');
var appDateTextbox = app.createTextBox().setWidth('150px').setName('date');
var lienPostition = app.createLabel('Lien Position');
var lienPos = app.createListBox().setName('Lien Position').setWidth('150px').setName('LienPosition');
lienPos.addItem('Select Option');
lienPos.addItem('1st');
lienPos.addItem('2nd');
var propertyType = app.createLabel('Property Type');
var propType = app.createListBox().setName('Property Type').setWidth('150px').setName('PropertyType');
propType.addItem('Select Option');
propType.addItem('1-4');
propType.addItem('Manufactured');
var submitButton = app.createButton('Submit');
//Grid layout of items on form
grid.setWidget(0, 0, loanTypeLabel)
.setWidget(0, 1, loanList)
.setWidget(1, 0, borrowerNameLabel)
.setWidget(1, 1, borrowerTextbox)
.setWidget(2, 0, loanAmountLabel)
.setWidget(2, 1, loanAmountTextbox)
.setWidget(3, 0, appDateLabel)
.setWidget(3, 1, appDateTextbox)
.setWidget(4, 0, lienPostition)
.setWidget(4, 1, lienPos)
.setWidget(5, 0, propertyType)
.setWidget(5, 1, propType)
.setWidget(6, 0, submitButton)
//Event Handler
var handler = app.createServerClickHandler('insertInSS');
handler.addCallbackElement(panel);
submitButton.addClickHandler(handler);
panel.add(grid);
app.add(panel);
return app;
}
//Function to insert data in the sheet on clicking the submit button
function insertInSS(e){
var app = UiApp.getActiveApplication();
var LoanType = e.parameter.LoanType;
var borrower = e.parameter.borrower;
var amount = e.parameter.amount;
var date = e.parameter.date;
var LienPosition = e.parameter.LienPosition;
var PropertyType = e.parameter.PropertyType;
//app.getElementById('info').setVisible(true).setStyleAttribute('color','red');
var sheet = SpreadsheetApp.openById(submissionSSKey).getActiveSheet();
var lastRow = sheet.getLastRow();
var targetRange = sheet.getRange(lastRow+1, 1, 1, 6).setValues([[LoanType,borrower,amount,date,LienPosition,PropertyType]]);
return app;
}
InformationsquelleAutor jjones312 | 2013-03-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
hier ist der code richtig formatiert :
InformationsquelleAutor Serge insas
Sie haben, um Sie " in ein formPanel, verwenden Sie einen submitButton festgelegt und erhalten Sie alle Ihre Ergebnisse in einer einzigen doPost-Funktion. Keine Notwendigkeit, zu definieren, einen handler noch jede callbackElement in diesem Kontext, so sollten Sie diese entfernen, um Konflikte zu vermeiden.
Wenn Sie Blick auf das einfache Beispiel, das Sie zeigte, als Referenz sehen Sie die Struktur, die zu erlassen für die formularübergabe. Ich weiß, es funktioniert die Art und Weise Sie Tat es auch, aber nicht für die Datei hochladen...
Hier ist Sie arbeiten code : ich habe ein paar änderungen vorgenommen... testbar hier
Sorry, das system ist buggy, ich kann nicht formatieren Sie den code richtig, werde ich machen, eine andere Antwort...
siehe update in meiner Antwort.
InformationsquelleAutor Serge insas
Ich habe herausgefunden, wie man die Datei hochladen zu befestigen, um das raster und display erlauben die Auswahl der Datei und der übermittlung von Daten an die Tabellenkalkulation. Es spielt keine hochladen der ausgewählten Datei auf meiner Festplatte.
Bin ich Entsendung der aktualisierte code unten. Irgendwelche Gedanken auf, warum die Buchung nicht die Datei auf meine Festplatte??
InformationsquelleAutor jjones312