如何下载列中的PDF链接并保存到公用文件夹
我们有一个列,包含从第4行开始的PDF链接(例如B4:B)。我试图找到一种方法来自动下载PDF文件,这些文件可以通过驱动器上的文件夹链接访问。这就是我到目前为止所做的:如何下载列中的PDF链接并保存到公用文件夹,pdf,hyperlink,google-apps-script,google-sheets,google-drive-api,Pdf,Hyperlink,Google Apps Script,Google Sheets,Google Drive Api,我们有一个列,包含从第4行开始的PDF链接(例如B4:B)。我试图找到一种方法来自动下载PDF文件,这些文件可以通过驱动器上的文件夹链接访问。这就是我到目前为止所做的: function savePDFs() { var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues(); for (var i = 3; i < data.length; i++) {
function savePDFs() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 3; i < data.length; i++) {
Logger.log(data[i][1]);
}
}
好的,我将去处理记录器中的数据,以确认数据在正确格式的PDF链接中,然后我将测试这段新代码。我感觉我快接近了。你不能强制从应用程序脚本下载文件,你必须从HTMLService尝试,但不确定它是否能正常工作 根据您的需要,我建议您创建一个专用文件夹,并在其中添加所有pdf,然后使用驱动器界面的下载功能在一个clic中下载所有文件 在驱动器中,一个文件可以放在多个文件夹中,因此pdf文件保留在原始文件夹中,但您可以创建一个新文件夹“pdf供下载”,然后将其放入其中。要从驱动器界面执行此操作,您必须在选择文件时单击“shift”+Z 对于当前的文件列表,您只需在循环中添加“添加到文件夹”功能。您可以使用此功能
function addFileToFolder(id){
var folderPDF = DriveApp.getFolderById("Id OFFolder to put pdf");
var file = DriveApp.getFileById(id);
folderPDF.addFile(file);
}
编辑:该功能将浏览url列表,获取文件并在用户驱动器上的专用文件夹中进行复制
function downloadInDriveFolder(){
var folderID = 'Id of the folder';// put id of the folder
var folder = DriveApp.getFolderById(folderID)// get the folder
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 3; i < data.length; i++) {
var blob = UrlFetchApp.fetch(data[i][1]).getContent();
var pdf = DriveApp.createFile(blob);
pdf.setName(data[i][0]);//Put as name of the file the value in col A
folder.addFile(pdf);
}
}
函数下载驱动文件夹(){
var folderID='Id of the folder';//放置文件夹的Id
var folder=DriveApp.getFolderById(folderID)//获取文件夹
var sheet=SpreadsheetApp.getActiveSheet();
var data=sheet.getDataRange().getValues();
对于(变量i=3;i
我想出来了。我本来希望有更多的代码,但这对我来说已经足够了:
function listPDFs() {
var out = new Array();
var row = 3; //row index of 0 = row 1
var column = 4; // column index of 0 = column A
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var folder = DriveApp.getFolderById("this is where you paste your folder id"); // destination folder (this is the 0978SDFSDFKJHSDF078Y98hkyo looking value when you right click your folder and select "Get Link")
for (var i=row ; i<data.length ; i++) {
if(data[i][column] !== "") {
var file = UrlFetchApp.fetch(data[i][column]);
folder.createFile(file);
}
}
return
}
函数listPDFs(){
var out=新数组();
var row=3;//0的行索引=行1
var column=4;//0的列索引=列A
var sheet=SpreadsheetApp.getActiveSheet();
var data=sheet.getDataRange().getValues();
var folder=DriveApp.getFolderById(“这是粘贴文件夹id的地方”);//目标文件夹(右键单击文件夹并选择“获取链接”时,这是0978SDFSDFKJHSDF078Y98hkyo的外观值)
对于(var i=row;iThanks St3ph;如果我读对了,这是将文件添加到文件夹的代码部分,这很有用。这是一个难题。现在我只需要了解如何将日志中包含的URL链接作为字符串和“将链接另存为…”。。。“或者以某种方式访问链接,然后使用您建议的代码将其保存为文件夹中的PDF。挠头…我更改了答案,请检查新功能。”。
function listPDFs() {
var out = new Array();
var row = 3; //row index of 0 = row 1
var column = 4; // column index of 0 = column A
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var folder = DriveApp.getFolderById("this is where you paste your folder id"); // destination folder (this is the 0978SDFSDFKJHSDF078Y98hkyo looking value when you right click your folder and select "Get Link")
for (var i=row ; i<data.length ; i++) {
if(data[i][column] !== "") {
var file = UrlFetchApp.fetch(data[i][column]);
folder.createFile(file);
}
}
return
}