【发布时间】:2014-05-18 20:59:23
【问题描述】:
如何使用 Google Apps 脚本在 Google 表格中创建新表格?
我知道这似乎很明显,但我只想创建一个具有特定名称的新工作表。
【问题讨论】:
标签: google-apps-script google-sheets
如何使用 Google Apps 脚本在 Google 表格中创建新表格?
我知道这似乎很明显,但我只想创建一个具有特定名称的新工作表。
【问题讨论】:
标签: google-apps-script google-sheets
我一直在查看答案,虽然他们回答了如何创建工作表并为其命名的问题,但没有一个显示如何通过将名称作为参数传递来使其成为变量
这是将变量传递给 createNewSheet 函数的函数的示例:
(必须执行的函数是setNameAndCreateSheet)
function createNewSheet(sheetName){
// The sheetName parameter has to be passed to the function when it's called
let activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
let newSheet = activeSpreadsheet.insertSheet();
newSheet.setName(sheetName); // We sheet will be called as the string of the parameter
}
function setNameAndCreateSheet(){
// This will get the email of the user executing the script
const userEmail = Session.getEffectiveUser().getEmail();
// This will get the current date
const date = Utilities.formatDate(new Date(), "GMT-3", "dd/MM/yyyy");
// We are making the string that will be passed to the createNewSheet function
const sheetName = date + " - " + userEmail;
// sheetName will return something like: "04/11/2021 - youremail@gmail.com"
// This will execute the function that creates the sheet, and the name will be settled to the parameter passed (sheetName)
createNewSheet(sheetName);
}
在本例中,传递给 createNewSheet 函数的参数是这两个字符串(日期 - useremail)的串联,但它可以是任何值。
【讨论】:
我推荐this method。
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.insertSheet('My New Sheet');
“我的新工作表”是您想要的名称。
【讨论】:
这就是我的做法......
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var newSheet = activeSpreadsheet.insertSheet();
newSheet.setName("whatever");
【讨论】:
这是一个简单的例子:
var name = (new Date()).toLocaleDateString();
SpreadsheetApp.getActiveSpreadsheet().insertSheet(name);
【讨论】:
令人惊讶的是,我没有找到任何明确而快速的答案。
这是我的代码:
function onOpen() {
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var yourNewSheet = activeSpreadsheet.getSheetByName("Name of your new sheet");
if (yourNewSheet != null) {
activeSpreadsheet.deleteSheet(yourNewSheet);
}
yourNewSheet = activeSpreadsheet.insertSheet();
yourNewSheet.setName("Name of your new sheet");
}
最后,请注意,这个新工作表将自动成为活动工作表。
【讨论】: