gpt4 book ai didi

google-apps-script - 将 Google 表格复制到 Google 文档 - bool 单元格错误

转载 作者:行者123 更新时间:2023-12-04 07:53:19 24 4
gpt4 key购买 nike

我对编写谷歌应用程序脚本非常陌生,只是想制作一些自定义功能。对不起,如果这个问题太基本了...
我正在按照教程将表格从 Google Sheets 复制到 Google 文档中,但讲师使用的完全相同的代码对我不起作用。
我收到此错误:

Exception: The parameters (number[]) don't match the method signature for DocumentApp.Body.appendTable.
代码的简化版本是:
function fun4(){
var ss = SpreadsheetApp.openById('17-23aFf6mN5oQrKNwNDy3Zh24_foTN5mXzNkjvd3V5w');
var sheet = ss.getSheets()[0];

var doc = DocumentApp.create('Sample Sheet Data');
var body = doc.getBody();

var numLines = sheet.getLastRow();
var numColumns = sheet.getLastColumn();

var rowData = sheet.getRange(1, 1, numLines, numColumns).getValues();
console.log(rowData);

var table = body.appendTable(rowData); // ERROR IN THIS LINE
table.getRow(0).editAsText().setBold(true);
}
经过一番搜索,我发现问题是由包含 bool 值的最后一列引起的,并更改了 .getValues().getDisplayValues() .
它现在正在工作,但我很困惑......
它在讲师代码中如何工作,但在我的代码中却没有?
如果输出看起来是相同的格式(双数组?),为什么不起作用?
代码:(当我将表格附加到 doc 时出现错误,但在讲师视频中工作)
  var rowData = sheet.getRange(1, 1, numLines, numColumns).getValues();
console.log(rowData);
输出:
11:36:05 AM Info    
[ [ 'NAME', 'EMAIL', 'AGE', 'ACTIVE' ],
[ 'Alex', 'alex@gmail.com', 50, true ],
[ 'Brian', 'brian@gmail.com', 34, false ],
[ 'Julian', 'julian@gmail.com', 42, true ],
[ 'John', 'john@gmail.com', 24, false ] ]
代码:
  var rowData = sheet.getRange(1, 1, numLines, numColumns).getDisplayValues();
console.log(rowData);
输出:
11:36:05 AM Info    
[ [ 'NAME', 'EMAIL', 'AGE', 'ACTIVE' ],
[ 'Alex', 'alex@gmail.com', '50', 'TRUE' ],
[ 'Brian', 'brian@gmail.com', '34', 'FALSE' ],
[ 'Julian', 'julian@gmail.com', '42', 'TRUE' ],
[ 'John', 'john@gmail.com', '24', 'FALSE' ] ]

最佳答案

我相信你的目标如下。

  • 您想知道以下情况的原因。

    After some search I found that the problem was caused by the last column containing Boolean values and changed .getValues() to .getDisplayValues().It is working now but I am very confused... How it was working in the instructor code but not in mine? Why did not work if the output looks to be in the same format (double array?)



  • 回答:
    关于 var rowData = sheet.getRange(1, 1, numLines, numColumns).getValues();脚本的错误,我认为问题的原因可能是由于使用了 V8 运行时。 Ref
  • 在脚本编辑器中启用V8运行时,我确认了The parameters (number[]) don't match the method signature for DocumentApp.Body.appendTable.的错误发生了。
  • 当在脚本编辑器中禁用 V8 运行时,我确认没有发生错误。
  • 可以使用值 var rowData = sheet.getRange(1, 1, numLines, numColumns).getValues(); 创建该表。和您的样本值。


  • 不幸的是,根据您的问题,我无法理解 the instructor videoCode: (Gives an error when I append the table to doc , but worked in the instructor video) .但是,在上述情况下,我猜是 the instructor video可能不使用 V8 运行时。
    所以,在你的脚本中,当你想测试是否 var rowData = sheet.getRange(1, 1, numLines, numColumns).getValues();有效,如何在脚本编辑器中禁用 V8 运行时,如下所示并再次测试?
    enter image description here
    引用:
  • V8 Runtime Overview
  • 关于google-apps-script - 将 Google 表格复制到 Google 文档 - bool 单元格错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66832755/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com