如何从模板创建具有给定名称的多个电子表格
How to create multiple spreadsheets with a given name from a template
我有一个使用 Google Apps Script 开发的 Web 应用程序,我需要为每个用户提供一个 sheet,我可以在其中获取用户信息,这可以从应用程序中查询。所以我需要一个 sheet 和每个用户的名字,但每个 sheet 都需要有特定的格式,特定的模板。所以我需要一个功能来帮助我自动化这个过程,因为大约有 300 个用户,手动完成非常累人。
解决方法很简单。使用 sheet 创建一个变量,该变量将用作先前根据需要创建的模板。然后我从 sheet 上列出的名称中获取数据。最后通过复制模板和更改用户名遍历数组。
function duplicateTemplate() {
let template = SpreadsheetApp.getActive().getSheetByName('template')
let users = SpreadsheetApp.getActive().getSheetByName('users').getRange("A2:A").getDisplayValues().flat() // To convert matriz to array
users .forEach(user => {
template.getRange("A1").activate()
let nueva = SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet()
nueva.setName(user)
})
};
结果是你所有的用户名各有各的 sheet
我有一个使用 Google Apps Script 开发的 Web 应用程序,我需要为每个用户提供一个 sheet,我可以在其中获取用户信息,这可以从应用程序中查询。所以我需要一个 sheet 和每个用户的名字,但每个 sheet 都需要有特定的格式,特定的模板。所以我需要一个功能来帮助我自动化这个过程,因为大约有 300 个用户,手动完成非常累人。
解决方法很简单。使用 sheet 创建一个变量,该变量将用作先前根据需要创建的模板。然后我从 sheet 上列出的名称中获取数据。最后通过复制模板和更改用户名遍历数组。
function duplicateTemplate() {
let template = SpreadsheetApp.getActive().getSheetByName('template')
let users = SpreadsheetApp.getActive().getSheetByName('users').getRange("A2:A").getDisplayValues().flat() // To convert matriz to array
users .forEach(user => {
template.getRange("A1").activate()
let nueva = SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet()
nueva.setName(user)
})
};
结果是你所有的用户名各有各的 sheet