通过脚本对表格进行操作。

注意:以下所有内容,必须先 获取到工作表后 才可以进行操作。

隐藏表格

使用 hideSheet() 将工作表隐藏,但是不允许把所有的工作表全部都隐藏起来,至少保留一个公开的工作表。

SpreadsheetApp.getActiveSpreadsheet().getSheets()[1].hideSheet()

显示表格

使用 showSheet() 显示被隐藏起来的工作表,如果工作表已经显示则不会有任何效果。

SpreadsheetApp.getActiveSpreadsheet().getSheets()[1].showSheet()

修改表格名称

使用 setName(name) 修改表格名称,name 参数放入表格的名称。

SpreadsheetApp.getActiveSheet().setName(name)

复制表格

使用 copyTo 可以复制一个工作表,也可以将工作表复制到另外一个电子表格。

const sheet = SpreadsheetApp.getActiveSpreadsheet()
const orginSheet = sheet.getActiveSheet()
orginSheet.copyTo(sheet)

需要两个参数,一个是工作表,另一个是电子表格。例子中的 orginSheet 变量是当前的工作表,使用 copyTo(sheet)sheet 参数放入电子表格,可以是当前的电子表格,也可以是其它的电子表格,前提是需要有编辑的权限。

复制完表格后,默认会在原来表格名称的基础上加上(副本),不过可以使用上面提到的 setName 将新建的表格重命名。

const sheet = SpreadsheetApp.getActiveSpreadsheet()
const orginSheet = sheet.getActiveSheet()
orginSheet.copyTo(sheet).setName('sheetName')

复制工作表后,将工作表重命名为 “sheetName”。

删除表格

使用 deleteSheet(spreadsheet) 删除工作表,spreadsheet 参数放入工作表。

const sheet = SpreadsheetApp.getActiveSpreadsheet()
sheet.deleteSheet(sheet.getSheets()[1])

需要两个参数,一个是电子表格,另一个是工作表。例子中的 sheet 变量是当前的电子表格,使用 deleteSheet(spreadsheet)spreadsheet 放入需要删除的工作表。

保护表格

使用 protect() 设置工作表的保护权限,禁止被编辑。

const sheet = SpreadsheetApp.getActiveSheet()
const email = sheet.protect().getEditors()
sheet.protect().removeEditors(email)

例子中的 sheet 变量是当前的工作表。使用 protect() 为工作表添加保护权限,但是在默认情况下,添加保护会允许所有人都可以编辑,所以需要移除掉所有人,仅限自己可以编辑。使用 getEditors() 获取到当前表格有权限的邮箱账号,并且设置 email 变量。removeEditors(email) 用来移除其他人的权限,email 参数放入邮箱,支持数组。全部邮箱都移除后,最后就剩下自己的账号有编辑的权限了。

取消保护

使用 protect() 取消工作表的保护权限。

const sheet = SpreadsheetApp.getActiveSheet()
sheet.protect().remove()

例子中的 sheet 变量是当前的工作表,使用 protect() 操作工作表的保护权限,再使用 remove() 移除所有的保护权限。