簡體   English   中英

如何使用文件名從谷歌電子表格復制數據,並將其粘貼到另一個文件中?

[英]How can I copy data from a google spreasheet using the file name, and paste it into another file?

我正在嘗試使用文件名從電子表格中獲取數據,並將數據復制到不同的目標文件中。 我有以下代碼,它在第 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); 
}

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM