我正在尝试使用googlesheet中的数据从模板创建文档。我在代码行6上遇到未定义的“长度”之类的错误,该如何解决呢?
function createDocument() {
var headers = Sheets.Spreadsheets.Values.get('1u19od0kZjo2AoVNT6xADPbRZYNCPSYASJYhQrVWT6Hk', 'A1:U1');
var data = Sheets.Spreadsheets.Values.get('1u19od0kZjo2AoVNT6xADPbRZYNCPSYASJYhQrVWT6Hk', 'A2:U');
var templatedoc = '1LufBNP3BUCU2az_pvwNiOUicsIp7c3H1jRvNgjUuJJQ';
***for(var i = 0; i < data.values.length; i++){***
var supplier = data.values[i][0];
var documentId = DriveApp.getFileById(templateId).makeCopy().getId();
DriveApp.getFileById(documentId).setName('Coaching' );
var body = DocumentApp.openById(documentId).getBody();
body.replaceText('##ctrl no##', "ctrl")
parseTactics(headers.values[0], data.values[i], body);
}
}
function parseTactics(headers, data, body){
for(var i = 1; i < data.length; i++){
{data[i] != '' &&
body.appendListItem(headers[i] + ' | ' + data[i] + ' net').setGlyphType(DocumentApp.GlyphType.BULLET);
}
}
}
我能够重现您的问题TypeError: Cannot read property 'length' of undefined
。每当您尝试使用Sheets.Spreadsheets.Values.get()读取空白区域时,都会遇到此错误。data.values
将被设置为null,因为省略了空的尾随行和列。参见基础阅读
data.values
在检查其内容之前,请先检查是否为null。
if(data.values != null){
for(var i = 0; i < data.values.length; i++){
var supplier = data.values[i][0];
var documentId = DriveApp.getFileById(templateId).makeCopy().getId();
DriveApp.getFileById(documentId).setName('Coaching' );
var body = DocumentApp.openById(documentId).getBody();
body.replaceText('##ctrl no##', "ctrl")
parseTactics(headers.values[0], data.values[i], body);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句