Google Script setValue导致[[value]]

时间:2014-02-21 13:21:27

标签: google-apps-script google-sheets google-docs

我试图想出一个脚本,它只是捕获一个单元格的值并将该值粘贴到另一个单元格中。它捕获的单元格值是一个简单的,未格式化的单元格,其中包含数字32.下面的代码可以工作,但目标单元格中​​的结果不是32。相反,结果是 [[32.0]] 。有人可以帮我理解添加括号和.0?

的内容
function test(row) { 
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();// Define active sheet
  var amountdue = sheet.getRange("A30").getValues();// Capture amount due
  sheet.getRange("B30").setValue(amountdue);// Paste amount due
}

1 个答案:

答案 0 :(得分:1)

您使用“getValues()”的功能旨在捕获多个单元格。由于此函数旨在捕获表,因此它在输出中提供的结果不是一个单元格的值,而是几个单元格的值。要显示它们,我们需要将它们存储在易于访问和结构化的内容中:array 该数组表示为:[cell1Value,cell2Value,cell3Value,...] 由于可能有多行,我们将每一行存储在另一个数组中:[row1,row2,row3,...]。所以最后它是这样的:
[[row1Cell1,row1Cell2,...],[row2Cell1,row2Cell2,...]]

您不需要这些括号,请将“getValues()”更改为“getValue()”而不使用“s”。
或者当您设置值时使用:
amoutdue[0][0]
第一个[0]是说我想要第一行(我们从0开始)和第二个[0] ......你已经猜到了第一个单元格。

我想你在“32”之后得到“.0”因为你试图在一个单元格中设置数组。 Javascript不知道如何处理它并尝试以全文转换数组数组。