私はGoogleスクリプトで非常に単純なフォームを構築しました。ファイルアップロード機能は機能しています:Googleドライブにファイルをアップロードします。フォーム情報(名前、組織、コンテンツタイプ)を取得してスプレッドシートに保存し、Googleドライブにアップロードする方法を理解できません。Google ScriptフォームのデータをGoogleドライブにエクスポートするにはどうすればよいですか?
フォームデータ(テキストフィールド)をドライブにアップロードするにはどうすればよいですか?
!! UPDATE 7/19 !! コードがスプレッドシートアプリケーションコードで更新されました。改善されたHTML。 CSSはこの問題には関係しないと私は考えていません。
!! UPDATE 7/20! コードが機能しています。完全な機能を反映するように更新されました。援助のためにサンディーに感謝します。
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:400">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<div id="main">
<div class="form">
<form id='myForm'>
<div class="header">
<h1>Information Submission Form</h1>
<h2>Center For Alternative Fuels</h2>
</div>
<div class="row">
<div class="col-md-6">
<input id='name' type="text" name="name" placeholder="Full name" class="full item" spellcheck="false">
</div>
<div class="col-md-6">
<input id='email' type="text" name="email" placeholder="Email" class="full item" spellcheck="false">
</div>
</div>
<div class="row indent item">
<input id='organization' type="text" name="organization" placeholder="Organization" class="full" spellcheck="false">
</div>
<div class="row indent item">
<textarea id='type' name="type" class="full" placeholder="What are you submitting? (Presentation, Educational Content,...)" rows='2'></textarea>
</div>
<div id='success'>
</div>
<div class="row indent item">
<textarea id='info' name="info" class="full" placeholder="Describe the content you are submitting" rows='8'></textarea>
</div>
<input type="file" name="myFile">
<input type="submit" value="Submit"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;" style="margin-top: 20px">
</form>
</div>
</div>
<div id="output"></div>
<script>
function fileUploaded(status) {
document.getElementById('myForm').style.display = 'none';
document.getElementById('output').innerHTML = status;
}
</script>
form.html server.gs
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
var url;
function uploadToSheet(form){
var fullName, emailAdd, organization, fileType, fileInfo;
var ss = SpreadsheetApp.openById("INSERT SHEET ID HERE");
var dataArray = [];
fullName = form.name;
emailAdd = form.email;
organization = form.organization;
fileType = form.type;
fileInfo = form.info;
dataArray.push(fullName);
dataArray.push(emailAdd);
dataArray.push(organization);
dataArray.push(fileType);
dataArray.push(fileInfo);
ss.appendRow('dataArray');
}
function uploadFiles(form) {
try {
var dropbox = "Form Files";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folders.next();
}
else {
folder = DriveApp.createFolder(dropbox);
}
var blob = form.myFile;
var file = folder.createFile(blob);
file.setDescription("Uploaded by " + form.myName);
url=file.getUrl();
return "File uploaded successfully " + file.getUrl();
}
catch (error) {
return error.toString();
}
}
フォームデータ(テキストフィールド)の可能性テキストファイルに入れられ、テキストfi Googleドライブにファイルを保存しました。また、フォームデータの各セットをスプレッドシートの行に保存することもできます。または、アップロードしたファイルにデータをメタデータとして添付して保存するかどうかを指定します。 –
私はデータをスプレッドシートに保存したいと思っています...元の投稿にその詳細を含めたと思いました:)ありがとう! – thisFunkinGuy
あなたは 'SpreadsheetApp'サービスを使う必要があります。私は 'doPost()'関数が起動されているとは思わないので、必要はありません。 'Logger.log()'ステートメントで渡されるデータをチェックする必要があります。 'Logger.log( 'name:' + form.myName)'あなたはおそらく 'appendRow()' [Apps Script documentation](https://developers.google.com/apps-script/reference/)を使いたいでしょう。スプレッドシート/シート#appendRow(オブジェクト)) –