运行此代码后:
function SendData() {
var sss = SpreadsheetApp.openByUrl("URL"); // sss = source spreadsheet
var ss = sss.getSheetByName('Verify'); // ss = source sheet
var rangeToCopy = ss.getRange("B28:Q28");
var copiedData = rangeToCopy.getValues();
var tss = SpreadsheetApp.openByUrl("URL"); // tss = target spreadsheet
var ts = tss.getSheetByName('log'); // ts = target sheet
ts.appendRow(copiedData);
}
脚本在单元格A1:
中向目标工作表写入一个如下所示的随机值[Ljava.lang.Object; @ 70cb5117
我错过了什么?
答案 0 :(得分:1)
getValues()
方法获取2D数组。每个内部数组代表一行。每个内部数组的每个元素代表一个单元格。 appendRow()
方法采用一维数组。因为您的范围只有一行数据,所以您可以将2D数组转换为1D数组,并使用appendRow()
copiedData = copiedData.toString().split(",");//convert 2D to 1D
ts.appendRow(copiedData);
如果您获得的行数超过1行,则无法使用appendRow()
。您需要使用getRange(startRow,startColumn, numberOfRows, numberOfColumns).setValues(2D_Array)
看起来像这样:
var lastRow = ts.getLastRow();
ts.getRange(lastRow+1,1,copiedData.length,copiedData[0].length).setValues(copiedData);