Javascript &引用;TypeError:无法读取属性';长度';“未定义”的定义;使用Google Apps脚本将Google工作表数据转换为Google文档模板
包含以下文件的Google工作表文件夹: 我正在尝试使用我的测试合并谷歌工作表文件中的数据填写谷歌文档中的模板,特别是在名为“PrintThis”的选项卡中。我有一个谷歌应用程序脚本添加到我的“测试合并”谷歌工作表文件,但我得到这个错误:“TypeError:无法读取未定义的属性'length'。PrintThis中的数据在行数上会有所不同,所以我猜错误是由这一行引起的Javascript &引用;TypeError:无法读取属性';长度';“未定义”的定义;使用Google Apps脚本将Google工作表数据转换为Google文档模板,javascript,google-apps-script,google-sheets,google-sheets-api,google-docs-api,Javascript,Google Apps Script,Google Sheets,Google Sheets Api,Google Docs Api,包含以下文件的Google工作表文件夹: 我正在尝试使用我的测试合并谷歌工作表文件中的数据填写谷歌文档中的模板,特别是在名为“PrintThis”的选项卡中。我有一个谷歌应用程序脚本添加到我的“测试合并”谷歌工作表文件,但我得到这个错误:“TypeError:无法读取未定义的属性'length'。PrintThis中的数据在行数上会有所不同,所以我猜错误是由这一行引起的 var tactics = Sheets.Spreadsheets.Values.get('1xSWskGS8B_3Y
var tactics = Sheets.Spreadsheets.Values.get('1xSWskGS8B_3Y35I4ycAjFZQiGbfJo13O3837RKnxnpk', 'A4:J');
但是当我做A4:J6只是为了测试这个静态数据集时,它仍然会给我同样的错误。如何解决此问题,即使PrintThis选项卡具有动态行数,并且我的PrintThis选项卡可以移动(例如,新的工作表/选项卡可以放置在PrintThis选项卡的左侧或右侧)?如果要使用Sheets API获取“测试合并”的值,请确保将工作表名称与范围一起添加。示例:“测试合并!A4:J” 示例:
function myFunction() {
Logger.log(Sheets.Spreadsheets.Values.get('somespreadsheetid', 'Test Merge!A4:J').values);
}
function myFunction() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Merge");
var range = sh.getRange(4, 1, sh.getLastRow() - 4 + 1, 10);
var val = range.getValues();
Logger.log(val)
}
代码:
function myFunction() {
Logger.log(Sheets.Spreadsheets.Values.get('somespreadsheetid', 'Test Merge!A4:J').values);
}
function myFunction() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Merge");
var range = sh.getRange(4, 1, sh.getLastRow() - 4 + 1, 10);
var val = range.getValues();
Logger.log(val)
}
输出:
function myFunction() {
Logger.log(Sheets.Spreadsheets.Values.get('somespreadsheetid', 'Test Merge!A4:J').values);
}
function myFunction() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Merge");
var range = sh.getRange(4, 1, sh.getLastRow() - 4 + 1, 10);
var val = range.getValues();
Logger.log(val)
}
或
由于您使用的是谷歌应用程序脚本,因此可以使用SpreadsheetApp
代码:
function myFunction() {
Logger.log(Sheets.Spreadsheets.Values.get('somespreadsheetid', 'Test Merge!A4:J').values);
}
function myFunction() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Merge");
var range = sh.getRange(4, 1, sh.getLastRow() - 4 + 1, 10);
var val = range.getValues();
Logger.log(val)
}
输出:
function myFunction() {
Logger.log(Sheets.Spreadsheets.Values.get('somespreadsheetid', 'Test Merge!A4:J').values);
}
function myFunction() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test Merge");
var range = sh.getRange(4, 1, sh.getLastRow() - 4 + 1, 10);
var val = range.getValues();
Logger.log(val)
}
参考资料:
非常感谢您的回复!我按照您的建议添加了工作表名称,但在运行它时,它会给我一个不同的错误代码:“TypeError:无法读取未定义的属性“0”(第25行,文件“code”)“这是否意味着代码错误地读取了我工作表的第一列?为了帮助我们更好地了解您的错误,请在上面的帖子中包含更多代码。此外,粘贴代码后,请删除代码中的任何机密数据。我认为您提到的修复解决了问题,我认为我有一个完全不同的问题,因此我将为其创建一个新问题。再次感谢你!