尝试从 Google Sheet 中的 URL 将文件副本保存到特定 Google 驱动器文件夹
Trying to save a copy of a file to specific Google Drive folder, from URLs in a Google Sheet
我 运行在 google Apps 脚本中使用此代码,以在特定文件夹中保存文件(照片)的副本,来自 URL link摘自GoogleSheet。这些照片在其他人 google 驱动器帐户中..
这个googlesheet来自不同人在实地调查时填写的ODK表格,我需要将所有数据集中到我的Gdrive。
URL 在此传播的第 L 列中sheet
https://docs.google.com/spreadsheets/d/14vtEHDxxNc0d4yEn4T0gZcEyePJeJgw6NqQ9ajmn1fo/view#gid=0
我试图将文件保存到的文件夹 ID 是:"1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E"
我 运行 我的代码,但没有任何反应。 (我已经打开 API)
我是编码新手,所以我很迷茫。
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheetName = "Sheet1";
var sh = ss.getSheetByName(sheetName);
var rangeA1 = "L6:L68";
var rg=sh.getRange(rangeA1);
var formulas = rg.getFormulas();
for (var i in formulas) {
for (var j in formulas[i]) {
var formula = formulas[i][j];
if (formula.length !=0){
var regex = /=\w+\((.*)\)/i;
var matches = formula.match(regex);
var imgurl = matches[1];
var filename = imgurl.substring(imgurl.lastIndexOf("/") + 1, imgurl.lastIndexOf(""));
Logger.log(filename);
var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpg').setName(filename);
var folder = DriveApp.getFolderById("1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E");
var file = DriveApp.createFile(image);
Drive.Files.update({"parents": [{"id": folder.getId()}]}, file.getId());
}
}
}
}```
让我知道这是否适合你:
SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(`Sheet1`)
.getRange(`L6:L68`)
.getDisplayValues()
.flat()
.filter(String)
.forEach(url => {
const targetFile = url.slice(url.indexOf(`id=`)+3)
try {
DriveApp.getFileById(targetFile)
.makeCopy()
.moveTo(`1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E`)
//.setName("")
} catch (e) { Logger.log(`Unauthorized Access: [${targetFile}]`)}
})
将文件复制到文件夹
function lfunko() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet1");
const vs = sh.getRange(2,1,sh.getLastRow() - 1,sh.getLastColumn()).getDisplayValues().filter(r => r[11]);
const folder = DriveApp.getFolderById("1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E");
vs.forEach(r => {
let m = r[11].toString().match(/^[^=]+=([0-9A-Za-z_-]+)$/g);
if (m) {
let f = DriveApp.getFileById(m[1]);
let c = f.makeCopy(f.getName());
Drive.Files.update({"parents": [{"id": folder.getId()}]}, c.getId());
}
})
}
我 运行在 google Apps 脚本中使用此代码,以在特定文件夹中保存文件(照片)的副本,来自 URL link摘自GoogleSheet。这些照片在其他人 google 驱动器帐户中..
这个googlesheet来自不同人在实地调查时填写的ODK表格,我需要将所有数据集中到我的Gdrive。
URL 在此传播的第 L 列中sheet https://docs.google.com/spreadsheets/d/14vtEHDxxNc0d4yEn4T0gZcEyePJeJgw6NqQ9ajmn1fo/view#gid=0
我试图将文件保存到的文件夹 ID 是:"1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E"
我 运行 我的代码,但没有任何反应。 (我已经打开 API)
我是编码新手,所以我很迷茫。
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheetName = "Sheet1";
var sh = ss.getSheetByName(sheetName);
var rangeA1 = "L6:L68";
var rg=sh.getRange(rangeA1);
var formulas = rg.getFormulas();
for (var i in formulas) {
for (var j in formulas[i]) {
var formula = formulas[i][j];
if (formula.length !=0){
var regex = /=\w+\((.*)\)/i;
var matches = formula.match(regex);
var imgurl = matches[1];
var filename = imgurl.substring(imgurl.lastIndexOf("/") + 1, imgurl.lastIndexOf(""));
Logger.log(filename);
var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpg').setName(filename);
var folder = DriveApp.getFolderById("1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E");
var file = DriveApp.createFile(image);
Drive.Files.update({"parents": [{"id": folder.getId()}]}, file.getId());
}
}
}
}```
让我知道这是否适合你:
SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(`Sheet1`)
.getRange(`L6:L68`)
.getDisplayValues()
.flat()
.filter(String)
.forEach(url => {
const targetFile = url.slice(url.indexOf(`id=`)+3)
try {
DriveApp.getFileById(targetFile)
.makeCopy()
.moveTo(`1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E`)
//.setName("")
} catch (e) { Logger.log(`Unauthorized Access: [${targetFile}]`)}
})
将文件复制到文件夹
function lfunko() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet1");
const vs = sh.getRange(2,1,sh.getLastRow() - 1,sh.getLastColumn()).getDisplayValues().filter(r => r[11]);
const folder = DriveApp.getFolderById("1ImYcc_HqFZjpCUj4BHprhu3HSXKNQS0E");
vs.forEach(r => {
let m = r[11].toString().match(/^[^=]+=([0-9A-Za-z_-]+)$/g);
if (m) {
let f = DriveApp.getFileById(m[1]);
let c = f.makeCopy(f.getName());
Drive.Files.update({"parents": [{"id": folder.getId()}]}, c.getId());
}
})
}