Javascript 如何使用文件名从google spreasheet复制数据,并将其粘贴到另一个文件中?

Javascript 如何使用文件名从google spreasheet复制数据,并将其粘贴到另一个文件中?,javascript,google-apps-script,Javascript,Google Apps Script,我试图使用文件名从电子表格中获取数据,并将数据复制到不同的目标文件中。我有以下代码,它在第7行失败。当我在第7行手动输入一个ID时,代码就起作用了。有人能帮忙吗?多谢各位 function openFile() { var fileList = DriveApp.getFilesByName('file name') while (fileList.hasNext()) { Logger.log(fileList.next().getId()) } var fileID = Logg

我试图使用文件名从电子表格中获取数据,并将数据复制到不同的目标文件中。我有以下代码,它在第7行失败。当我在第7行手动输入一个ID时,代码就起作用了。有人能帮忙吗?多谢各位

function openFile() {
  var fileList = DriveApp.getFilesByName('file name')
  while (fileList.hasNext()) {
  Logger.log(fileList.next().getId())
}
var fileID = Logger.getLog();
var ss = SpreadsheetApp.openById(fileID);//fails here
  var source = ss.getSheetByName('sheet name');
var rangeSource = source.getDataRange();
var data = rangeSource.getValues();
var rowsInData = data.length;
var colsInData = data[0].length;
var sss = SpreadsheetApp.openById('1Hia3_zGk1qyPlVuPTQR5iOjExFaMEe3EQOMXBc2C6eI');
var logSheet = sss.getSheetByName("diamondbackprogress");
var rowsInLogSheet = logSheet.getMaxRows();
var colsInLogSheet = logSheet.getMaxColumns();

if (rowsInLogSheet < rowsInData) {
  logSheet.insertRowsAfter(rowsInLogSheet, rowsInData - rowsInLogSheet);
} else if (rowsInLogSheet > rowsInData) {
  logSheet.deleteRows(rowsInData, rowsInLogSheet - rowsInData);
}

if (colsInLogSheet < colsInData) {
  logSheet.insertColumnsAfter(colsInLogSheet, colsInData - colsInLogSheet);
} else if (colsInLogSheet > colsInData) {
  logSheet.deleteColumns(colsInData, colsInLogSheet - colsInData);
}  
logSheet.getRange(1, 1, rowsInData, colsInData).setValues(data); 
}
函数openFile(){ var fileList=DriveApp.getFilesByName('文件名') while(fileList.hasNext()){ Logger.log(fileList.next().getId()) } var fileID=Logger.getLog(); var ss=SpreadsheetApp.openById(fileID);//此处失败 var source=ss.getSheetByName('sheet name'); var rangeSource=source.getDataRange(); var data=rangeSource.getValues(); var rowsInData=data.length; var colsInData=data[0]。长度; var sss=SpreadsheetApp.openById('1Hia3_zgk1qyplvuptqr5iojexfamee3eqomxbc6ei'); var logSheet=sss.getSheetByName(“diamondbackprogress”); var rowsInLogSheet=logSheet.getMaxRows(); var colsInLogSheet=logSheet.getMaxColumns(); if(行日志表<行数据){ 日志表。插入rowsafter(rowsInLogSheet,rowsInData-rowsInLogSheet); }else if(行日志表>行数据){ 删除行(rowsInData,rowsindogsheet-rowsInData); } if(colsInLogSheetcolsInData){ 日志表.删除列(colsInData,colsInLogSheet-colsInData); } logSheet.getRange(1,1,rowsInData,colsInData).setValues(数据); } Logger.getLog()不会提供文件的id,它会提供当前日志中的消息列表。有关更多详细信息,请参阅

替换此部分:

function openFile() {
var fileList = DriveApp.getFilesByName('file name')
while (fileList.hasNext()) {
  Logger.log(fileList.next().getId())
}
var fileID = Logger.getLog();
为此:

function openFile() {
  var fileList = DriveApp.getFilesByName('file name')
  while (fileList.hasNext()) {
     var fID = fileList.next().getId();
}
var fileID = fID;

我想它应该返回文件的id。这不对吗?很抱歉,这是一个新问题,,,让我知道我的答案是否对你有效。是的,非常有效,非常感谢!!对此我很高兴。