1
我正在編寫字段中的數據編碼插入到HTML(單元格包含像Planétarium
和Rua João Bettega, 01
)的字段的腳本。我收到一個錯誤,不知道如何處理它。錯誤說「無法轉換數組爲Object [] []」Google表格腳本錯誤 - 無法將數組轉換爲對象[] []
我肯定通過一個兩維數組來.setValues()
,所以我知道這不是它(發現這是一個常見的問題)。有任何想法嗎?這裏是我的功能:
// columns[] and columns2encode[] are set in the scope above this function
function _encodeData() {
var sheet = _getSheet();
var data = sheet.getDataRange().getValues();
var rowCnt = data.length;
var colCnt = data[0].length;
var data2set = new Array(rowCnt-1); // creates array w/ row.length indeces
var colEncodeIndexList = [];
var origVal, encodedVal, range, cell; // used later in for loop(s)
toast('Start Encoding Data');
// loop every row
for(var ri = 0; ri < data.length; ri++) {
if(ri !== 0) {
data2set[ri] = new Array(colCnt); // creates array w/ length of ~ 29
}
// loop every cell (column entry in the given row)
for(var ci = 0; ci < data[ri].length; ci++) {
// get text content of current cell
origVal = data[ri][ci];
// if first row, headers - save matches in array for later
if(ri === 0) { // I split the ifs so inArray isn't called EVERY time
if(inArray(columns2encode, origVal)) { // add col header if "on the list"
colEncodeIndexList.push(ci);
}
} else { // isn't the header row
// if ! first row, values - col num must be in saved headers to encode OR it's a number
if(!inArray(colEncodeIndexList, ci) || typeof origVal === 'number') {
// just use origVal
data2set[ri][ci] = origVal;
} else {
// use encodedVal
encodedVal = _htmlEncode(origVal);
data2set[ri][ci] = encodedVal;
}
} // else
} // for (cells/cols)
} // for (rows)
// Now pass array of arrays (data) to setValues()
var setRange = sheet.getRange(2, 1, (data.length-1), data[0].length);//.getA1Notation(); // starts at 2, 1 (row 2, col 1) to ignore column header
setRange.setValues(data2set);
toast('Finished Encoding Data');
}
在此先感謝!
運行從腳本編輯器的代碼。它應該告訴你哪一行會引發錯誤。請告訴我們哪一行 – daniel
錯誤在第130行('setRange.setValues(data2set);'方法調用)。 –