Google 电子表格无法从 0 读取属性
Google Spreadsheet impossible to read attribute from 0
你好,我有几个 2018 年的项目 Google 文档,我想将他们所有的 URL 放在 A 列的 Google 电子表格中,就像这里一样,这样文档电子表格是空的
这是我写的函数,错误是他不能从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
我按照评论中的建议处理了日志谢谢你在日志中我是 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);
- 删除for循环
- 使用
setValues()
批处理方法来加快执行速度:data.setValues(docURLs);
在您的原始代码中,data
是一个 范围,您不能像处理数组那样遍历它。如果您不想进行批处理操作,而是更喜欢逐个打印每个 URL,我建议您使用 appendRow()
函数。因此,您可以将 data[i][0].setValue(docURLs[i])
替换为 sheet.appendRow(docURLs[i])
,而不是上面的第 3 步和第 4 步
你好,我有几个 2018 年的项目 Google 文档,我想将他们所有的 URL 放在 A 列的 Google 电子表格中,就像这里一样,这样文档电子表格是空的
这是我写的函数,错误是他不能从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
- 将行
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);
- 删除for循环
- 使用
setValues()
批处理方法来加快执行速度:data.setValues(docURLs);
在您的原始代码中,data
是一个 范围,您不能像处理数组那样遍历它。如果您不想进行批处理操作,而是更喜欢逐个打印每个 URL,我建议您使用 appendRow()
函数。因此,您可以将 data[i][0].setValue(docURLs[i])
替换为 sheet.appendRow(docURLs[i])