使用 Google 脚本检测指定范围的内容是否被修改。
在多人协助编辑表格的时候,很容易造成内容被误删或者被修改,所以可以通过 Google 脚本来检测指定范围的内容是否被修改。
在表格内 A1:C1 范围是表头,需要检测这个范围的内容是否被修改。
因为在表格内的数据是一个二维数组,可以通过 Google 脚本 Log 小技巧 这个方法把内容打印在文档里。
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('工作表1')
const title = sheet.getRange('A1:C1').getValues()
logToDoc('SheetID', title)
然后获取表格内的标题内容和设置好的原始内容判断是否一致,为了方便判断,这里把数组使用 toString
改成文本格式后再进行判断。
const title = sheet.getRange('A1:C1').getValues()
const origTitle = [["日期","名字","数量"]]
if (title.toString() !== origTitle.toString()) {
SpreadsheetApp.getUi().alert('内容被篡改')
}
如果需要还原回原始内容,使用 setValues
写入原始内容。
sheet.getRange('A1:C1').setValues(origTitle)
完整代码如下:
function detectSheet () {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('工作表1')
const title = sheet.getRange('A1:C1').getValues()
const origTitle = [["日期","名字","数量"]]
if (title.toString() !== origTitle.toString()) {
SpreadsheetApp.getUi().alert('内容被篡改')
// 还原内容
// sheet.getRange('A1:C1').setValues(origTitle)
}
}