[英]Google Apps Script .getLastColumn(); of a specific row?
我基本上想獲取電子表格第一行的最后一列。 無論我嘗試什么,它都會用整個電子表格的數據記錄最后一列。 我知道這很簡單,但沒有運氣。
我已經到處搜索,但我嘗試的一切都不起作用。 任何幫助是極大的贊賞。 非常感謝! 布蘭登
以下是一些幫助您入門的代碼:
function getLastNonEmptyCellInRow() {
var rowToCheck = 2;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var maxColumns = sheet.getLastRow();
var rowData = sheet.getRange(rowToCheck, 1, 1, maxColumns).getValues();
rowData = rowData[0]; //Get inner array of two dimensional array
var rowLength = rowData.length;
for (var i = 0; i < rowLength; i++) {
var thisCellContents = rowData[i];
Logger.log('thisCellContents: ' + thisCellContents);
if (thisCellContents === "") {
Logger.log(i);
return i + 1; //Pass the count plus one, which is the last column with data
}
}
}
function getLastColNum(rowNum)
{
// Get the values of the row's (unbounded by column number) range.
var vals =
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
.getRange(rowNum +":"+ rowNum)
.getValues()[0],
lastColNum = vals.length
;
// Decrement while popping off any trailing empty text ("") cells.
while(!vals.pop())
{ --lastColNum; }
return(lastColNum);
}
沒有內置函數可以執行此操作,但您可以編寫一個函數來自己執行此操作。
例如,使用 getRange() 和 getLastColumn() 獲取您感興趣的行直到最后一個可能的數據列,然后使用 getValues() 獲取該行中的所有單元格。 最后,循環遍歷單元格數組(由 getValues() 返回)並跟蹤具有值的最后一個索引。
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange()
https://developers.google.com/apps-script/reference/spreadsheet/range#getValues()
Sheet 類支持 getLastColumn() 返回包含內容的最后一列。
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getLastColumn()
范圍有一個 getLastColumn() 函數,但它是范圍的最后一列,不一定是包含數據的最后一列。
https://developers.google.com/apps-script/reference/spreadsheet/range#getLastColumn()
要獲取包含內容的最后一列,請將最后一個 Sheet 列中的行迭代回非空單元格。
/**
* Get last column with content in row
* @param {Sheet} sheet
* @param {integer} row
* @return {integer} last column with content, 0 if none found
*/
function getLatColInRow(sheet, row = 1) {
let lastColumn = sheet.getLastColumn();
let values = sheet.getRange(row,1,1,lastColumn).getValues()[0];
while ((values[lastColumn-1] == "") && (lastColumn>0)) {
lastColumn --;
}
return lastColumn;
}
使用 getSheetAt(sheetNumber) 從 excel 工作簿對象獲取工作表; 然后使用工作表對象 getRow(0); 然后使用 cellIterator() 您可以迭代到行的最后一列。 Example using XSSFWorkBook XSSFWorkBook wb=new XSSFWorkBook(FileInputStream object);//通過將excel文件路徑傳遞給FileInputStream Sheet sh=wb.getSheetAt(0) or wb.getSheet("sheet name"); 行行=sh.getRow(0); Iterator cit=row.cellIterator();Cell cell; while(cit.hasNext()) { cell=cit.next(); }
當您退出 while 循環時,您將在 'cell' 變量中擁有最后一個單元格對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.