使用 Google Apps 脚本在 Google 表格中创建新表格
Posted
技术标签:
【中文标题】使用 Google Apps 脚本在 Google 表格中创建新表格【英文标题】:Create a new sheet in a Google Sheets with Google Apps Script 【发布时间】:2014-05-18 20:59:23 【问题描述】:如何?
我知道这似乎很明显,但我只想创建一个具有特定名称的新工作表。
【问题讨论】:
【参考方案1】:我一直在查看答案,虽然他们回答了如何创建工作表并为其命名的问题,但没有一个显示如何通过将名称作为参数传递来使其成为变量
这是将变量传递给 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)的串联,但它可以是任何值。
【讨论】:
【参考方案2】:我推荐this method。
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.insertSheet('My New Sheet');
“我的新工作表”是您想要的名称。
【讨论】:
【参考方案3】:这就是我的做法......
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var newSheet = activeSpreadsheet.insertSheet();
newSheet.setName("whatever");
【讨论】:
【参考方案4】:这是一个简单的例子:
var name = (new Date()).toLocaleDateString();
SpreadsheetApp.getActiveSpreadsheet().insertSheet(name);
【讨论】:
第二行末尾有一个冒号而不是分号。我会修复它,但是 S.O.对 1 个字符的编辑很愚蠢。【参考方案5】:令人惊讶的是,我没有找到任何明确而快速的答案。
这是我的代码:
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");
最后,请注意,这个新工作表将自动成为活动工作表。
【讨论】:
代码没问题,但您可能不想在 onOpen 上使用它。如果您想根据用户需求创建它,请创建一个菜单。 是的,你是对的,这正是我在那之后所做的! 我正在打开一个帖子,因为每次我使用脚本创建一个新工作表时,电子表格都会在一段时间后停止工作。它发生在你身上吗? 哼,不,对不起,从来没有发生过!以上是关于使用 Google Apps 脚本在 Google 表格中创建新表格的主要内容,如果未能解决你的问题,请参考以下文章
在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格
如何在 Google Apps 脚本中使用服务帐户对 Google 表格进行身份验证
Google 表单 - 使用 Google Apps 脚本在项目中添加自定义按钮“更多信息”
如何使用 Google Apps 脚本在个人 Google 云端硬盘和团队云端硬盘之间移动文件?