【发布时间】:2018-05-29 21:03:36
【问题描述】:
我对脚本很陌生,并且已经尝试了很多小时,所以我希望你能帮助我。
我有一个包含名为“X”的 Google 表格的 dashfolder,我有一个包含名为“X.pdf”的 pdf 的 pdf 文件夹。我正在尝试遍历我的 dashfiles +“.pdf”的名称以查找丢失的名称,最后在同一文件夹中创建其 pdf。但是,我的脚本循环了太多次。如果 pdf 文件夹中已经有一个名为+“.pdf”的文件,我希望它跳过 dashfile。这是我的代码
function createPdf() {
var pdfFolder = DriveApp.getFolderById("ID")
var pdfFiles = pdfFolder.getFiles();
var dashFolder = DriveApp.getFolderById('ID');
var dashFiles = dashFolder.getFiles();
var pdfNames = [];
var dashNames = [];
while (pdfFiles.hasNext()) {
var currentFile2 = pdfFiles.next();
var fileName2 = currentFile2.getName();
pdfNames.push(fileName2);
}
while (dashFiles.hasNext()) {
var currentFile = dashFiles.next();
var fileName = currentFile.getName();
dashNames.push(fileName);
for (p in pdfNames) {
if((fileName + ".pdf") == pdfNames[p]) {
Logger.log("YES");
}
else {
var xlsBlob = currentFile.getBlob(); // Blob source of Excel file for conversion
var xlsFilename = currentFile.getName(); // File name to give to converted file; defaults to same as source file
pdfFolder.createFile(currentFile.getAs(MimeType.PDF));
Logger.log("pdf Created");
}
}
}
}
我真正的问题源于这样一个事实,即我将有 100 多张需要转换为 pdf 的表格,并且将超过 6 分钟的限制。因此,我正在尝试构建一个脚本,该脚本可以自行触发并从中断处继续,跳过 pdf 文件夹中已经存在的工作表并创建缺少的工作表。
我在这里可能有点过头了,所以我希望有人能给我一些提示:-)
【问题讨论】:
-
拆分你的任务 - 编写一个函数来处理将给定文件名导出到 PDF,编写一个存储文件名列表的函数,编写一个读取该文件名列表的函数,编写一个生成给定文件夹中的文件列表,编写一个函数返回列表 A 中不在列表 B 中的元素,然后编写一个使用上述所有内容的函数。
标签: google-apps-script google-drive-api export-to-pdf