您好,我有几个2018年的项目Google Docs,我想将它们的所有URL放在此处的A列的Google Spreadsheet中,因此文档Spreadsheet为空
这是我编写的函数,错误是他无法从0 中读取属性。我该如何解决?非常感谢。
function copy_Docs_2018_vers_Tableau() {
/** on regarde le folder de départ ici FOLDER_ID où on a les documents Google Docs avec les fiches projet 2018 **/
var folder = DriveApp.getFolderById(FOLDER_ID);
Logger.log('Folder name ' + folder.getName());
/** on va utiliser les URLs **/
var docURLs = [];
var files = DriveApp.getFolderById(FOLDER_ID).getFilesByType(MimeType.GOOGLE_DOCS);
var file;
while (files.hasNext()){
file = files.next();
docURLs.push(file.getUrl());
Logger.log('File URL ' + file.getUrl());
}
Logger.log(docURLs); // message pour voir si on a qq URLs pour la vérification
/** Le Spreadsheet avec la feuille de calcul + les nombres de lignes & colonnes **/
var tss = SpreadsheetApp.openById(SPREADSHEET_ID);
var sheet = tss.getSheets()[0];
var numRows = sheet.getMaxRows();
var lastColumn = sheet.getMaxColumns();
// ? à reflechir si on a déja du contenu dans le document ce qu'on aura pour les autres colonnes si on va garder l'ordre des données ou on va le melanger après
var data = sheet.getRange(2,1,numRows,lastColumn);
for (var i = 1; i < docURLs.length; i++ ) {
/** prémierement on va insérer le URL du Google Doc **/
data[i][0].setValue(docURLs[i]);
sheet.autoResizeColumn(COLUMN_URL); //comme le URL est long on va ajuster la colonne
答案 0 :(得分:1)
docURLs.push(file.getUrl());
更改为docURLs.push([file.getUrl()]);
var data = sheet.getRange(2,1,numRows,lastColumn);
更改为var data = sheet.getRange(2,1,docURLs.length,docURLs[0].length);
setValues()
批处理方法可以更快地执行:data.setValues(docURLs);
在您的原始代码中,data
是一个范围,您无法像遍历数组那样对其进行迭代。如果您不想执行批处理操作,而是希望一个一个地打印每个URL,建议您使用appendRow()
函数。因此,您可以将data[i][0].setValue(docURLs[i])
替换为sheet.appendRow(docURLs[i])