我寻求一种方法,根据通过网址输入或传输的某些ID,我可以为用户提供定制的Google表格信息中心。
解释:截至目前,原始数据位于主Google表格中,并在另一个Google表格信息中心中进行处理和汇总,该信息中心需要输入ID作为原始数据的过滤器,以便摘要仅显示相关的洞察使用该特定ID和用户 - 可行。
但是,每个用户只应输入他们的ID并查看他们的摘要。现在所有用户都可以访问相同的公共工作表,并且存在并行访问的可能性。
如何生成基于模板的单个表格(每个用户一个)? 这可以使用默认功能或Apps脚本吗?任何建议都非常感谢,谢谢!
答案 0 :(得分:0)
这是您可以尝试的一个选项,您可以获取打开Google电子表格的用户的电子邮件ID,如下所示:
function onOpen(){
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Get ID:');
// Process the user's response.
if (response.getSelectedButton() == ui.Button.OK) {
var id = response.getResponseText();
var ss = SpreadsheetApp.getActive()
var lookupSheet = ss.getSheetByName(id)
if(lookupSheet == null){
var template = ss.getSheetByName("Template")
var newSheet = template.copyTo(ss)
newSheet.setName(id)
newSheet.getRange(1,1).setValue(id)
newSheet.activate()
} else
{
lookupSheet.activate
}
} else {
Logger.log('The user clicked the close button in the dialog\'s title bar.');
}
}
注意:使用Session.getEffectiveUser()几乎没有细微差别。根据权限和安全设置,它可以为您提供空白的用户/电子邮件。 https://developers.google.com/apps-script/reference/base/session#getActiveUser()
第二种选择: 如果电子邮件ID不是一个选项,并且您可以输入ID来访问数据。此代码将询问ID并创建名为template的工作表副本,并将A1的值设置为ID。然后,工作表可以使用ID获取ID特定数据并制作图表。
Try
Dim SmtpServer As New System.Net.Mail.SmtpClient()
SmtpServer.UseDefaultCredentials = true
SmtpServer.Port = 25
SmtpServer.Host = "csnavigateurs-qc-ca.mail.protection.outlook.com"
Dim mail As New MailMessage()
mail.From = "si@csnavigateurs.qc.ca"
mail.To.Add("pelletiera77@csnavigateurs.qc.ca")
mail.Subject = "Email Sending"
mail.Body = "Testing the 1 and 2"
SmtpServer.Send(mail)
Response.Write("Success")
Catch ex As Exception
Response.Write(ex.Message)
End Try
可在此处找到此示例:https://docs.google.com/spreadsheets/d/1RPHUGKi7u9jJVc-3xCaYlrZ8kaHWvpl6gPZxUL1g32Y/edit?usp=sharing
注意:人们可以看到彼此的表格,我根据你的帖子假设不是问题。但是,如果不是这种情况,最好的选择是使用谷歌Web应用程序脚本。