从工作表中替换参考DOCS文件名.文件



下面是我的例子:

Sheet file with ID:
1uxEy8cPkNQVBVAFSHPBhvq0aRgRVZ0z2_I1AxK0gcuI

有两列:列A:包含要替换的单词,例如:

"A1": Le Minh Hai, "A2";; ABC, "A3";; HAIBA

B列:包含要替换的单词,例如:

Nguyen Le Minh, "B1"; CDE, "B3"; BAAAA

有一个名为

的文件

这是黎明海的文件

我想把它改成:

这是Nguyen Le Minh的文件

如果有不同名称的文件

这是ABC文件

它会变回

这是一个CDE文件

其他文件相同

代码:

function getNewestFileInFolder() {
var arryFileDates,file,fileDate,files,folder,folders,
newestDate,newestFileID,objFilesByDate;
folders = DriveApp.getFoldersByName('bvm-hd');  
while (folders.hasNext()) {
folder = folders.next();
files = folder.getFilesByType("application/vnd.google-apps.document");
while (files.hasNext()){
file = files.next();
var newestFileID = file.getId();
var currentDoc = DocumentApp.openById(newestFileID);
var ss = SpreadsheetApp.openById('1t9T5FWedPLFcQ6wqcx4gGRHrrpldZHcLhgBJR0JbrPI');//ID sheet find and replace
SpreadsheetApp.setActiveSpreadsheet(ss);
SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Trang tính1');
var dongcuoi= sh.getLastRow();
var dc = dongcuoi +1;
var doc = DocumentApp.openById(newSp.getId());
var rgtxt = doc.getName();
var rgrep = ss.getSheets()[0].getRange("A1:B"+dc);
var repA = rgrep.getValues().filter(r => r.every(c => c.toString()));
repA.forEach(e => rgtxt.replaceText(...e));      
}
}

}

我相信你的目标是这样的。

  • 你想用电子表格重命名特定文件夹中的Google文档的文件名。
  • 你想改变现有的文件名,包括列"A">
  • 例如,文件名为This is the file of Le Minh Hai,则要将其修改为This is Nguyen Le Minh's file

在这种情况下,修改后的脚本如何?

修改脚本:

function getNewestFileInFolder() {
var ss = SpreadsheetApp.openById('1t9T5FWedPLFcQ6wqcx4gGRHrrpldZHcLhgBJR0JbrPI');
var sheet = ss.getSheetByName('Trang tính1');
var values = sheet.getDataRange().getValues();
var folders = DriveApp.getFoldersByName('bvm-hd');
while (folders.hasNext()) {
var folder = folders.next();
var files = folder.getFilesByType("application/vnd.google-apps.document");
while (files.hasNext()) {
file = files.next();
var filename = file.getName();
var check = values.filter(([a]) => filename.includes(a));
if (check.length > 0) {
file.setName(filename.replace(check[0][0], check[0][1]));
}
}
}
}
  • 从你的脚本,我担心可能有文件夹名称为bvm-hd的文件夹。所以我使用while循环来检索文件夹。
  • 这些值可以通过一次调用从电子表格中检索。所以在这个修改后的脚本中,这个脚本被移到了跳出循环中。
  • 为了改变文件名,你可以使用getNamesetName类文件。

引用:

  • getName()类文件
  • setName()类文件

最新更新