我正在嘗試修改具有多行的 google 檔案表,但每行的列數不同。
這是一個示例表

我如何使用 table.getCell(row,col) 或 row.getCell(col) 來獲取 a、b、c、d、e、f、g 等的內容。
尋址每個單元格和修改內容的正確方法是什么。我正在處理的表具有定義的結構。
tables.forEach(function(table) {
var numberOfRows = table.getNumRows();
console.log("New Table with Rows: " numberOfRows);
for (var rowIndex = 0; rowIndex < numberOfRows; rowIndex ) {
var row = table.getRow(rowIndex);
// this is a table of interest and we know the exact structure
if(rowIndex == 0 && row.getCell(0).getText().toString().trim().includes("2 cols")){
row.getCell(0).editAsText().setText("11");
row.getCell(1).editAsText().setText("12");
}else if(rowIndex == 1 && row.getCell(0).getText().toString().trim().includes("3 cols")){
row.getCell(1).editAsText().setText("21");
row.getCell(2).editAsText().setText("22");
}else if(rowIndex == 2 && row.getCell(0).getText().toString().trim().includes("5 cols")){
row.getCell(1).editAsText().setText("31");
row.getCell(2).editAsText().setText("32"); // NOTE1: THIS IS THE ISSUE
row.getCell(3).editAsText().setText("33"); // NOTE3: THIS IS THE ISSUE
}
}
})
這是上面代碼的表輸出

為什么NOTE1和NOTE2沒有修改單元格e和單元格f?
uj5u.com熱心網友回復:
我認為在你的腳本,值getColSpan()的row.getCell(1),row.getCell(2)以及row.getCell(3)是3,0和0分別。當的值getColSpan()就是0,這意味著合并單元。我認為這可能是您的問題的原因。那么,為了實作你的目標,下面的修改怎么樣?
從:
row.getCell(1).editAsText().setText("31");
row.getCell(2).editAsText().setText("32"); // NOTE1: THIS IS THE ISSUE
row.getCell(3).editAsText().setText("33"); // NOTE3: THIS IS THE ISSUE
到:
var nCol = 0;
var values = ["31", "32", "33"];
for (var colIndex = 1; colIndex < row.getNumCells(); colIndex ) {
var cell = row.getCell(colIndex);
if (values.length > nCol && cell.getColSpan() > 0) {
cell.editAsText().setText(values[nCol ]);
}
}
- 通過此修改, 的行
5 cols的值為5 cols, 31, 32, 33。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/381018.html
上一篇:如何將例外記錄到檔案中?
