【发布时间】:2013-07-03 00:33:32
【问题描述】:
我正在尝试创建一个电子表格,允许用户输入多达 100 行信息,当他们单击提交按钮时,脚本会将这些数据输入到主数据电子表格中。
我已经编写了可以运行并将数据传输到主数据表的脚本,并且我正在使用 openbyID 打开目标表。
问题是没有访问主数据表的用户无法打开表添加数据。如果有一种方法可以在不访问该电子表格的情况下将数据添加到电子表格中,那将是满足我的需求的理想选择。
如果可以,请告诉我。
我目前再次使用 OpenByID 打开电子表格,并希望允许用户在不直接访问电子表格的情况下将数据添加到主电子表格。
我们将不胜感激。
如果您有任何问题,请告诉我。
谢谢 霍哈尔
我的代码:
Sorry I am not sure how to write my script as web app.
请看下面我的脚本..你能帮我解释一下如何将其更改为网络应用程序吗?
谢谢
function CopyDataToMaster() {
var inf = SpreadsheetApp.getActiveSpreadsheet();
var inf_sheet = inf.getSheetByName("Info");
var tt_key = inf_sheet.getRange("A4").getValue();
var SiteName = inf_sheet.getRange("A2").getValue();
var d = new Date();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var tt = SpreadsheetApp.openById(tt_key);
var ss_sheet = ss.getSheetByName("Report");
var tt_sheet = tt.getSheetByName("Master-Data-Sheet");
var FilledBy = ss_sheet.getRange("C5").getValue();
var tt_last_row = tt_sheet.getLastRow();
var tt_work_row = tt_last_row+1;
for (var i=1; i<=100 ; i++) {
var dDr = ss_sheet.getRange(i+10, 2);
var dD = dDr.getValue();
if (dD!="") {
var nMr = ss_sheet.getRange(i+10, 3);
var nM = nMr.getValue();
var aMr = ss_sheet.getRange(i+10, 4);
var aM = aMr.getValue();
var bWr = ss_sheet.getRange(i+10, 5);
var bW = bWr.getValue();
var bSr = ss_sheet.getRange(i+10, 6);
var bS = bSr.getValue();
var tDr = ss_sheet.getRange(i+10, 7);
var tD = tDr.getValue();
var mOr = ss_sheet.getRange(i+10, 8);
var mO = mOr.getValue();
var bOr = ss_sheet.getRange(i+10, 9);
var bO = bOr.getValue();
var dCr = ss_sheet.getRange(i+10, 10);
var dC = dCr.getValue();
tt_sheet.insertRowAfter(tt_work_row-1);
tt_sheet.getRange(tt_work_row,1).setValue(Utilities.formatDate(new Date(),+5.5, "MM/dd/yyyy HH:mm:ss"));
tt_sheet.getRange(tt_work_row,2).setValue(SiteName);
tt_sheet.getRange(tt_work_row,3).setValue(FilledBy);
tt_sheet.getRange(tt_work_row,4).setValue(dD);
tt_sheet.getRange(tt_work_row,5).setValue(nM);
tt_sheet.getRange(tt_work_row,6).setValue(aM);
tt_sheet.getRange(tt_work_row,7).setValue(bW);
tt_sheet.getRange(tt_work_row,8).setValue(bS);
tt_sheet.getRange(tt_work_row,9).setValue(tD);
tt_sheet.getRange(tt_work_row,10).setValue(mO);
tt_sheet.getRange(tt_work_row,11).setValue(bO);
tt_sheet.getRange(tt_work_row,12).setValue(dC);
dDr.clearContent();
nMr.clearContent();
aMr.clearContent();
bWr.clearContent();
bSr.clearContent();
tDr.clearContent();
mOr.clearContent();
bOr.clearContent();
dCr.clearContent();
tt_work_row = tt_work_row+1;
}
}
Browser.msgBox("Thank you", "Information has been submitted",Browser.Buttons.OK)
}
【问题讨论】:
-
祝你好运。答案在文档中,即 Google-Apps-Script & JavaScript 文档。 ...这更像是你付钱给程序员来解决的那种事情。
标签: google-apps-script google-sheets