使用表单编辑单元格值(在Gsheet中使用Appscript)



早上好

我正在建立一个窗体来处理appscript中的数据库。

我从一个类似的过去的项目得到了一些脚本,所以我可能缺乏参考,但我找不到任何…(对不起)

我已经编码的函数是:

  • 在数据库
  • 中创建一行
  • 在数据库中搜索一行
  • 选择并打开带有
  • 行预填数据的表单

我要编码的函数是:

  • 将编辑后的字段保存在原列

我在做这个工作时遇到了麻烦,我总是一无所获,没有错误消息,什么都没有!

数据如下:

04-101-204-204-304-4

这可能更容易一些

如果您向数据库添加一个名为has_been_edited的字段,并且该字段为真或假,那么您可以直接访问该字段并测试它是否为真。希望对我不熟悉appscript有帮助。

你好,

谢谢@TheMaster的回答,

我忘了

<input type="hidden" id="num" name="num">

形式。

感谢@Emel和@Wayne的帮助!

修改后的代码如下:

<!DOCTYPE html>
<html> 
<body>
<section>

<div>
<button id="edit" onclick="Edit();Fill()">Edit</button>
</div>
<form id="myForm" onsubmit="handleFormSubmit2(this)">
<section>
<div>
<label for="Field1">Field 1 :</label>
<textarea type="text" id="Field1Edit" name="Field1Edit"></textarea>
</div>    
<div>
<label for="Field2">Field 2:</label>
<textarea type="text" id="Field2Edit" name="Field2Edit"></textarea>
</div>    
<div>
<label for="Field3">Field 3:</label>
<textarea type="text" id="Field3Edit" name="Field3Edit"></textarea>
</div>
<div>
<label for="Field4">Field 4 :</label>
<textarea type="text" id="Field4Edit" name="Field4Edit"></textarea>
</div>

<input type="hidden" id="num" name="num">
</section>

<div>
<button id="Submit" onclick="alert('Your modification(s) have been taken into account !');">Submit</button>
</div>
</form>

<div id="output"></div>
<script>

/* Trigger form */
function Edit() {
document.getElementById('myForm').style.display='block';
}
/* Prefill the fields with their previous values to allow the user to add information in succession */
function Fill() {    
var listData2 = JSON.parse(localStorage["Data"]); // Get stored listData
var Field1 = listData2[1];
var Field2 = listData2[2];
var Field3 = listData2[3];
var Field4 = listData2[4];

document.getElementById("Field1Edit").value = Field1;
document.getElementById("Field2Edit").value = Field2;
document.getElementById("Field3Edit").value = Field3;
document.getElementById("Field4Edit").value = Field4;

}

/* Prevent Form from submitting */
function preventFormSubmit() {
var forms = document.querySelectorAll('form');
for (var i = 0; i < forms.length; i++) {
forms[i].addEventListener('Submit', function(event) {
event.preventDefault();
});
}
}
window.addEventListener('load', preventFormSubmit);    
/* Call Process Form 2 and reset the form */  
function handleFormSubmit2(formObject) {
google.script.run.processForm2(formObject);
document.getElementById('myForm').reset();
}

</script> 
</body>
</html>

/* Process Form and replace data in the Sheet */
function processForm2(formObject) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tracker");
var mylist = [formObject.Field1,formObject.Field2,formObject.Field3,formObject.Field4];
var cell = 0; /* Start of the range of modified cells */

// Add data after the opening ones in the corresponding row
for (var i=0; i<mylist.length; i++){
if ((mylist[i]).length > 0){sheet.getRange(formObject.num,cell).setValue(mylist[i])}
cell++;
}  
}

最新更新