自定义 HTML 表单发布到 google 个工作表中的不同工作表
Custom HTML Form posting to different sheets in google sheets
我有 4 个表格需要 post 到不同的 sheet。我有以下代码,让表格 post 但仅限于当前(活动)sheet 但我无法将它变为 post 到不同的 sheet。
另一种选择是,如果我可以有一个表格,并且取决于您 select 的部门(Sheet 姓名),它将 post 到那个 sheet。
function openDialog1() {
var html = HtmlService.createHtmlOutputFromFile('form1.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function openDialog2() {
var html = HtmlService.createHtmlOutputFromFile('form2.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function openDialog3() {
var html = HtmlService.createHtmlOutputFromFile('form3.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function openDialog4() {
var html = HtmlService.createHtmlOutputFromFile('form4.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function doGet(e){
return HtmlService.createHtmlOutputFromFile('index').setTitle('Adding Rows');
}
function doPost(e) {
Logger.log(e);
}
function sendText(data){
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow([data.item_number, data.shop_number, data.escalation, data.Hide1, data.notes, data.problem, data.added_by, data.incoive_date, data.location_order, data.user_working, data.CS_rep, data.shipping, data.department]);
return 'success!';
}
这是我测试的 link 传播sheet 所以你可以看到 HTML 和测试。
https://docs.google.com/spreadsheets/d/1iWQ40boplJcJmdFg9HNIyOAOrHOjlCRu362LWRdV5y0/edit?usp=sharing
如您的传播所示sheet,您在每个表格上都使用 google.script.run.sendText(data)
。
一种解决方案是重建您的功能。
html
<script>
google.script.run.withSuccessHandler(function(response) {
console.log(response);
google.script.host.close()
}).sendText("Your Sheet",data);
</script>
煤气
function sendText(sheetName, data){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
sheet.appendRow([data.item_number, data.shop_number, data.escalation, data.Hide1, data.notes, data.problem, data.added_by, data.incoive_date, data.location_order, data.user_working, data.CS_rep, data.shipping, data.department]);
return 'success!';
}
您只需将您的 sheet 姓名作为参数传递。
我有 4 个表格需要 post 到不同的 sheet。我有以下代码,让表格 post 但仅限于当前(活动)sheet 但我无法将它变为 post 到不同的 sheet。
另一种选择是,如果我可以有一个表格,并且取决于您 select 的部门(Sheet 姓名),它将 post 到那个 sheet。
function openDialog1() {
var html = HtmlService.createHtmlOutputFromFile('form1.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function openDialog2() {
var html = HtmlService.createHtmlOutputFromFile('form2.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function openDialog3() {
var html = HtmlService.createHtmlOutputFromFile('form3.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function openDialog4() {
var html = HtmlService.createHtmlOutputFromFile('form4.html');
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showModalDialog(html, 'Pop up Form');
}
function doGet(e){
return HtmlService.createHtmlOutputFromFile('index').setTitle('Adding Rows');
}
function doPost(e) {
Logger.log(e);
}
function sendText(data){
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow([data.item_number, data.shop_number, data.escalation, data.Hide1, data.notes, data.problem, data.added_by, data.incoive_date, data.location_order, data.user_working, data.CS_rep, data.shipping, data.department]);
return 'success!';
}
这是我测试的 link 传播sheet 所以你可以看到 HTML 和测试。
https://docs.google.com/spreadsheets/d/1iWQ40boplJcJmdFg9HNIyOAOrHOjlCRu362LWRdV5y0/edit?usp=sharing
如您的传播所示sheet,您在每个表格上都使用 google.script.run.sendText(data)
。
一种解决方案是重建您的功能。
html
<script>
google.script.run.withSuccessHandler(function(response) {
console.log(response);
google.script.host.close()
}).sendText("Your Sheet",data);
</script>
煤气
function sendText(sheetName, data){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
sheet.appendRow([data.item_number, data.shop_number, data.escalation, data.Hide1, data.notes, data.problem, data.added_by, data.incoive_date, data.location_order, data.user_working, data.CS_rep, data.shipping, data.department]);
return 'success!';
}
您只需将您的 sheet 姓名作为参数传递。