您可以使用App Script中的属性存储上次运行的时间戳,并将其与当前运行的时间戳进行比较,以确定是否有新的行需要处理。以下是一个示例代码:
function processNewRows() {
// 获取上次运行的时间戳
var lastRunTimestamp = PropertiesService.getScriptProperties().getProperty('lastRunTimestamp');
// 获取当前运行的时间戳
var currentTimestamp = new Date().getTime();
// 如果上次运行的时间戳不存在,则将当前时间戳存储为上次运行的时间戳并返回
if (!lastRunTimestamp) {
PropertiesService.getScriptProperties().setProperty('lastRunTimestamp', currentTimestamp);
return;
}
// 获取要处理的行的数据范围(假设数据在名为Sheet1的工作表中)
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
var lastRow = sheet.getLastRow();
var range = sheet.getRange(parseInt(lastRunTimestamp) + 1, 1, lastRow - parseInt(lastRunTimestamp), sheet.getLastColumn());
var data = range.getValues();
// 处理新行的逻辑
for (var i = 0; i < data.length; i++) {
var row = data[i];
// 进行相应的处理
// ...
}
// 更新上次运行的时间戳为当前时间戳
PropertiesService.getScriptProperties().setProperty('lastRunTimestamp', currentTimestamp);
}
这段代码首先检查上次运行的时间戳是否存在,如果不存在,则将当前时间戳存储为上次运行的时间戳并返回。如果存在上次运行的时间戳,则获取要处理的行的数据范围,并对每一行进行相应的处理。处理完成后,将当前时间戳存储为上次运行的时间戳。
请注意,此示例假设数据位于名为Sheet1的工作表中。您需要根据实际需求修改代码以适应您的情况。