我正在尝试使用文件名从电子表格获取数据,并将数据复制到其他目标文件中。我有以下代码,但在第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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句