Google Script:将上次修改的Google工作表从文件夹导入到另一个Google工作表 &



今天,我在Google表格中创建了一个每日报告,我从多个来源编译数据。其中一个来源是Google Drive文件夹,另一个团队每天都会上传一个Google表格。我正在寻找一个脚本/重要的技术,从该文件夹中最后修改的文件中提取数据到我的每日报告中。

Google Drive Folder路径保持不变,但是Google工作表的名称每天都在变化

请告诉我是否有方法可以自动复制和粘贴每天的报告

感谢尝试使用谷歌脚本,但我不能使用importange动态目标路径。

如果我理解你的问题是正确的,你想:

  1. 从最后创建的google电子表格中获取数据。
  2. 从特定的驱动器文件夹
  3. 将数据复制到您的每日报告中。

如果是这种情况,那么这个脚本将帮助您:

  1. 进入扩展->应用程序脚本在电子表格与每日报表。
  2. 粘贴下面的代码
  3. 更改驱动器文件夹id (url的最后一部分)
  4. 更改目标表名(我假设它总是相同的名称?)
  5. 更改(如果需要)每日报表的选项卡名称。(区分大小写)
  6. 点击运行并给予权限
  7. 通过时钟图标设置触发器,每天在特定时间运行。

要知道没有逻辑不运行在周末…它也不会检查数据是否已经导入。但是这个脚本会让你开始。

function getLastFileFromDriveFolder() {
const folder = DriveApp.getFolderById("xxxxx")
const files = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
let date = 0
let spreadsheetId
//Find the latest created file
while (files.hasNext()) {
const file = files.next()
const created = file.getDateCreated().getTime()
if (created > date) {
date = created
spreadsheetId = file.getId()
}
}
//If no file is found return
if (!spreadsheetId) {
return;
}
//Open the input sheet that is found in the loop above
const inputSpreadSheet = SpreadsheetApp.openById(spreadsheetId)
const inputSheet = inputSpreadSheet.getSheetByName("TheNameOfTheSheetTab")
//Get data from row 2 (so skip headers??) otherwise change 2 to 1 and remove the -1
const data = inputSheet.getRange(2, 1, inputSheet.getLastRow() - 1, inputSheet.getLastColumn()).getValues()
//Get your bound spreadsheet and the target sheet.
const targetSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
const targetSheet = targetSpreadsheet.getSheetByName("Daily report")
//Paste in the next empty row.
targetSheet.getRange(targetSheet.getLastRow() + 1, 1, data.length, data[0].length).setValues(data)
}

最新更新