以下脚本允许我将文件上传到Google云端硬盘但是我似乎无法在“名称”和“日期”中输入数据以输入电子表格。
任何人都可以帮我创建或链接电子表格以填充数据。
由于
code.gs
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var dropbox = "Operation Overview";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folder.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
var blob = form.myFile;
var file = folders.createFile(blob);
file.setDescription("Uploaded by "+ form.myName);
return "File uploaded successfully ";
} catch (error) {
return error.toString();
}
}
form.html
<form id="myForm">
<input type="text" name="myName" placeholder="Your name.">
<input type="text" name="myDate" placeholder="Date.">
<input type="file" name="myFile">
<input type="submit" value="Upload File"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
</form>
<div id="output"></div>
<script>
function fileUploaded(status) {
document.getElementById('myForm').style.display = 'none';
document.getElementById('output').innerHTML = status;
}
</script>
<style>
input { display:block; margin: 20px; }
</style>
答案 0 :(得分:0)
您需要使用电子表格服务:
Google Documentation - Apps Script Spreadsheet Service
您可以使用追加行:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// Appends a new row with 2 columns to the bottom of the
// spreadsheet containing the values in the array
sheet.appendRow(["Jackson Jones", "jJones@email.com"]);
上面的示例使用getActiveSpreadsheet()
方法。你不会使用它。您需要对该文件的引用。
您可以按ID或网址打开电子表格文件。
Google Documentation - Open a Spreadsheet by ID
// The code below opens a spreadsheet using its ID and logs the name for it.
// Note that the spreadsheet is NOT physically opened on the client side.
// It is opened on the server only (for modification by the script).
var ss = SpreadsheetApp.openById("abc1234567");
Logger.log(ss.getName());
请注意Logger.log()
声明。要查看日志,请使用Apps脚本代码编辑器中的查看菜单。
理解,SpreadsheetApp.openById()
返回 CLASS 至关重要。它返回 SPREADSHEET CLASS
Google Documentation - Spreadsheet Class
获得电子表格类后,您可以采取下一步并使用电子表格类可用的方法。
var ss = SpreadsheetApp.openById("abc1234567");
Logger.log(ss.getName());
ss.appendRow(["Jackson Jones", "jJones@email.com"]);
在上面的示例中,数据是硬编码的,但您需要变量而不是双引号中的常量值。
因此,您需要从表单对象,变量或直接引用中获取数据。
ss.appendRow([form.myName, "jJones@email.com"]);
我确实检查了您的代码,form.myName
确实将我输入的名称返回到名称字段。