简体   繁体   English

从 url google sheet 获取文件名

[英]Get filename from url google sheet

I have a problem.我有个问题。 How to get the filename from the url?如何从url获取文件名? 在此处输入图片说明

enter image description here在此处输入图片说明

I wouldn't normally do this since you haven't shown us what you've tried, but I'm feeling generous.我通常不会这样做,因为您没有向我们展示您尝试过的内容,但我感到很慷慨。

This function should work for you.这个功能应该适合你。 (Note that you'll need to grant permissions for it to run.) (请注意,您需要授予它运行的权限。)

function getFileNames() {
  var sheet = SpreadsheetApp.getActive().getSheetByName("Get_File_Name");
  var links = sheet.getRange("A2:A").getValues();
  var filenames = []; 
  for (var i = 0; i < links.length; i++) {
    var url = links[i][0];
    if (url != "") {
      var filename = SpreadsheetApp.openByUrl(links[i][0]).getName();
      filenames.push([filename]);
    }
  }
  var startRow = 2; // print in row 2 since row 1 is the header row
  var fileNameColumn = 2; // Column B = column 2
  var destination = sheet.getRange(startRow, fileNameColumn, filenames.length, filenames[0].length);
  destination.setValues(filenames);
}

Another way其它的办法

function getFileNames() {
  var driveApp = DriveApp;
  // SET THE SHEET HERE
  var sheet = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  //SET THE URL LINK COLUMN HERE : From row 2 since row 1 is the header row till last row
  var links = sheet.getRange("P2:P").getValues();

  var filenames = []; 

  for (var i = 0; i < links.length; i++) {
    var fileId = getIdFromUrl(links[i][0]);
    if (fileId != "" && fileId != null) {
      var getfile = DriveApp.getFileById(fileId);
      var filename = getfile.getName();
      Logger.log(filename);
      filenames.push([filename]);
    } else {
      filenames.push([""]); 
    }
  }

  // SET STARTING ROW TO PRINT: From row 2 since row 1 is the header row
  var startRow = 2; 
  // SET WHICH COLUMN TO PRINT : Column A = column 1 / Column B = column 2
  // MAKE SURE THE SHEET LAST COLUMN HEADER IS FILLED + 1 (next column)
  var fileNameColumn = sheet.getLastColumn() + 1;  
  var destination = sheet.getRange(startRow, fileNameColumn, filenames.length, filenames[0].length);
  destination.setValues(filenames);
}

function getIdFromUrl(url) { return url.match(/[-\w]{25,}/); }

You can create a custom function in spreadsheets like this.您可以像这样在电子表格中创建自定义函数。

function getSSName(name) {
  var ss = SpreadsheetApp.openByUrl(url);
  return ss.getName();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM