我正在嘗試創建一個 Google 表格腳本,它將一行(來自電子表格)轉換為制表符分隔的文本。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName( spreadsheetname );
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
testrow = values[5];
Logger.log ( 'OUTPUT: testrow ');
Logger.log ( testrow );
var textprint = testrow.map(function (a) {return a.join('\t');}).join('\n');
Logger.log ( 'OUTPUT: textprint ');
Logger.log ( textprint );
輸出:
Nov 3, 2022, 11:29:04 PM Info OUTPUT: testrow
Nov 3, 2022, 11:29:04 PM Info [2113090.0, 20.0, 0.0, CHV62, X_TP_1, BTCUSD, 20482.84, Mon Oct 31 22:34:29 GMT-05:00 2022, , , , Tue Nov 01 10:19:20 GMT-05:00 2022, , 7466898.0, 1.0, ]
Nov 3, 2022, 11:29:04 PM Error TypeError: a.join is not a function
at [unknown function](Code:100:54)
at deleteRows(Code:100:27)
at onMyEdit(Code:402:29)
我究竟做錯了什么?
TIA
uj5u.com熱心網友回復:
從您的顯示腳本和日志中,我認為在您的腳本中,testrow是一個一維陣列。我認為這可能是您的問題的原因a.join is not a function。在這種情況下,如何進行以下修改?
從:
var textprint = testrow.map(function (a) {return a.join('\t');}).join('\n');
至:
var textprint = testrow.join('\t');
或者
var textprint = testrow.join('\t') "\n";
筆記:
如果要使用 的陣列
values,那么下面的修改呢?var values = rows.getValues(); var textprint = values.map(function (a) { return a.join('\t'); }).join('\n');或者
var values = rows.getValues(); var textprint = values.map(a => a.join('\t')).join('\n');
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527214.html
標籤:谷歌应用脚本谷歌表格
