需要工作表脚本将图像保存到驱动器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要工作表脚本将图像保存到驱动器相关的知识,希望对你有一定的参考价值。

我需要一个与google工作表一起使用的脚本,将.img网址列表保存到特定的google驱动器文件夹,文件命名来自另一个单元格。

例如: A列 - 文件URL /imagefilepath.jpg B列 - 保存为名称 IMAGE_1

使用“image_1”文件名自动保存/imagefilepath.jpg到google驱动器文件夹“Test”。

那可能吗?

脚本新手..需要一些建议/指针或工作脚本(甚至更好)!

目前得到以下内容:

    /**
 * Uploads a new file to the user's Drive.
 */
function uploadFile() 
  var imgurl = 'https://www.w3schools.com/w3css/img_lights.jpg';
  var image = UrlFetchApp.fetch(imgurl).getBlob();
  var filename = setName('test');
  var folder = DriveApp.getFoldersByName(folder);
    if (folder != null) 
      var file = DriveApp.createFile(image);
    

  Logger.log('ID: %s, File size (bytes): %s', file.id, file.fileSize);

但它将url名称保存到google驱动器的根目录中,并且只有在我将img urls插入脚本时才会这样。我如何让它充满活力?

P.s在这里发现了一些脚本,但似乎都过时/不起作用。我有超过2000个网址和不同的文件名。

答案

试试这个:

function uploadFile() 
  var imgurl = 'https://www.w3schools.com/w3css/img_lights.jpg';
  var image = UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName('test');
  var folder = DriveApp.getFolderById('FolderId');
  var file = DriveApp.createFile(image);
  Drive.Files.update("parents": ["id": folder.getId()], file.getId());

所以你的最终函数应该是这样的:

function uploadFiles() 
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  for(var i=0;i<vA.length;i++) 
    var imgurl=vA[i][0];//Column A for url
    var name=vA[i][1];//Column B for filename
    var image=UrlFetchApp.fetch(imgurl).getBlob().getAs('image/jpeg').setName(name);
    var folder=DriveApp.getFolderById('1aIawMeJCjB1GWaV6URH3jkV4xUJhaYLV');
    var file=DriveApp.createFile(image);
    Drive.Files.update("parents": ["id": folder.getId()], file.getId());
  

以上是关于需要工作表脚本将图像保存到驱动器的主要内容,如果未能解决你的问题,请参考以下文章

隐藏的工作表会导致Google表格的导出工作表作为PDF网址的输出损坏

以 PDF 格式正确保存以驱动 Google 表格

用于将 google drive 中的文件名列表与 google sheet 列中的名称列表进行比较的 Apps 脚本,以将新文件从驱动器添加到工作表

触发图像点击事件时,如何将图像保存到手机内存(例如 SD 卡或本地硬盘驱动器)?

保存/使用图像而不分配 300mb 内存

用于将工作簿保存到网络驱动器的 VBA 代码 [关闭]