【发布时间】:2021-01-12 17:13:34
【问题描述】:
我有一个系统,我将一系列工作票保存在一个文件夹中。然后,我有两个脚本可以在该文件夹中搜索,查看每个工作票,提取某些信息,然后将其放入时间表计算器或空缺职位列表中。
我将两个部门合并在一起,并希望使用同一个系统。为此,我需要不是在一个大文件夹中组织我的工作,而是作为子文件夹。这很好并且有效。但是,我的代码在文件夹中按 MimeType 搜索电子表格。当他们将另一个 Google 表格添加到该文件夹时,我的代码会出错,因为新表格是相同的 MimeType,但没有相同的搜索格式。
有没有办法在不改变用户行为的情况下解决这个问题?所有工作票都有类似的格式:站点名称、3-4 字描述、票号。我想不出一种方法可以将它放在可搜索的词条上,这就是我选择 MimeType 的原因。
这是迄今为止有效的方法。它适用于时间表,但其他脚本的工作方式相同。
function OpenJobs() {
var ss = SpreadsheetApp.getActive()
var parentFolder = DriveApp.getFolderById("Open Folder");
var childFolders = parentFolder.getFolders();
while(childFolders.hasNext()) {
var child = childFolders.next();
Logger.log(child.getName());
var sheet = ss.getSheetByName("Scripts");
var files = child.getFilesByType(MimeType.GOOGLE_SHEETS)
var array=[];
while (files.hasNext()) {
var file = files.next()
var filelog = file.getUrl()
var tickets = SpreadsheetApp.openById(file.getId())
var dataTickets = tickets.getSheetByName("Form").getDataRange().getValues();
var ticketno = dataTickets[0][1];
var jobname = dataTickets[0][3];
var worker1 = dataTickets[26][0];
var workhours1 = dataTickets[26][2];
var workdate1 = dataTickets[26][4];
var worker2 = dataTickets[27][0];
var workhours2 = dataTickets[27][2];
var workdate2 = dataTickets[27][4];
//and so on for 10 lines
array.push([ticketno,jobname,worker1,workhours1,workdate1]);
array.push([ticketno,jobname,worker2,workhours2,workdate2]);
//and so on for 10 lines
}
if(array[0]){
sheet.getRange(sheet.getLastRow()+1,1,array.length,5).setValues(array);
}
} }"
【问题讨论】:
标签: google-apps-script google-sheets iteration mime-types