SpreadJS Documentation
GC.Spread.Sheets.Search Namespace / SearchCondition type / SearchCondition Constructor
In This Topic
    SearchCondition Constructor
    In This Topic
    Defines the search condition.
    Syntax
    var instance = new GC.Spread.Sheets.Search.SearchCondition();
    function SearchCondition() : SearchCondition;
    Example
    The following examples search for text in cells.
    activeSheet.getCell(2,3).value("testSearch");
    var searchCondition = new GC.Spread.Sheets.Search.SearchCondition();
    searchCondition.searchString = "testSearch";
    searchCondition.startSheetIndex = spread.getActiveSheetIndex();
    searchCondition.endSheetIndex = spread.getActiveSheetIndex();
    
    searchCondition.searchOrder = GC.Spread.Sheets.Search.SearchOrder.nOrder;
    searchCondition.searchTarget = GC.Spread.Sheets.Search.SearchFoundFlags.cellText;
    searchCondition.searchFlags = GC.Spread.Sheets.Search.SearchFlags.ignoreCase| GC.Spread.Sheets.Search.SearchFlags.useWildCards;
    var searchresult= spread.search(searchCondition);
    
    var str ="[searchFoundFlag:"+ searchresult.searchFoundFlag+",\r\n foundSheetIndex:"+searchresult.foundSheetIndex+",foundRowIndex:" +
    searchresult.foundRowIndex+", foundColumnIndex:"+searchresult.foundColumnIndex+", foundString:"+searchresult.foundSheetIndex+"]";
    alert(str);
    activeSheet.getCell(5,4).text("testSearch");
    var searchCondition = new GC.Spread.Sheets.Search.SearchCondition();
    searchCondition.searchString = "testSearch";
    searchCondition.startSheetIndex = spread.getActiveSheetIndex();
    searchCondition.endSheetIndex = spread.getActiveSheetIndex();
    searchCondition.searchOrder = GC.Spread.Sheets.Search.SearchOrder.nOrder;
    searchCondition.searchTarget = GC.Spread.Sheets.Search.SearchFoundFlags.cellText;
    searchCondition.searchFlags = GC.Spread.Sheets.Search.SearchFlags.ignoreCase| GC.Spread.Sheets.Search.SearchFlags.useWildCards;
    var searchresult= spread.search(searchCondition);
    var str ="[searchFoundFlag:"+ searchresult.searchFoundFlag+",\r\n foundSheetIndex:"+searchresult.foundSheetIndex+",foundRowIndex:" + searchresult.foundRowIndex+", foundColumnIndex:"+searchresult.foundColumnIndex+", foundString:"+searchresult.foundString+"]";
    alert(str);
    <!DOCTYPE html>
    <html>
    <head>
        <title>SpreadJS</title>
    <link type="text/css" href="./css/GC.Spread.sheets.excel2013white.12.0.0.css" rel="stylesheet" /> 
    <script type="text/javascript" src="./scripts/GC.Spread.sheets.all.12.0.0.min.js"></script>   
    <script type="text/javascript">
    
    function bodyReady() {
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
        var sheet = spread.getActiveSheet();
        sheet.setValue(3, 10, "lastCol");
        sheet.setValue(9, 2, "lastRow");
        sheet.setValue(7, 5, "data");
        sheet.setValue(9, 6, "lastCell");
    }
    
    function buttonClick() {
        var spread = GC.Spread.Sheets.findControl(document.getElementById("ss"));
        var sheet = spread.getActiveSheet();
        var result = getLastNotEmptyCell(sheet);
        console.log("The last non-empty row index: " + result.lastRow);
        console.log("The last non-empty col index: " + result.lastColumn);
        console.log("The last non-empty CELL :  [" + result.lastCell.row + ":" + result.lastCell.col + "]");
    }
    
    function getLastNotEmptyCell(sheet) {
        var lastCell = null, lastRow = -1, lastColumn = -1;
        var searchCondition = getSearchCondition(sheet);
        var searchResult = sheet.search(searchCondition);
        while (searchResult.searchFoundFlag > 0) {
            sheet.setActiveCell(searchResult.foundRowIndex, searchResult.foundColumnIndex);
            lastRow = searchResult.foundRowIndex;
            lastColumn = searchResult.foundColumnIndex;
            lastCell = sheet.getCell(searchResult.foundRowIndex, searchResult.foundColumnIndex);
            if (searchCondition.searchOrder === GC.Spread.Sheets.Search.SearchOrder.zOrder) {
                searchCondition.findBeginRow = searchResult.foundRowIndex;
                searchCondition.findBeginColumn = searchResult.foundColumnIndex + 1;
            } else if (searchCondition.searchOrder === GC.Spread.Sheets.Search.SearchOrder.nOrder) {
                searchCondition.findBeginRow = searchResult.foundRowIndex + 1;
                searchCondition.findBeginColumn = searchResult.foundColumnIndex;
            }
            searchResult = sheet.search(searchCondition);
        }
        return {
            lastCell: lastCell,
            lastRow: lastRow,
            lastColumn: lastColumn
        };
    }
    
    function getSearchCondition(sheet) {
        var searchCondition = new GC.Spread.Sheets.Search.SearchCondition();
        searchCondition.rowStart = 0;
        searchCondition.rowEnd = sheet.getRowCount();
        searchCondition.columnStart = 0;
        searchCondition.columnEnd = sheet.getColumnCount();
        searchCondition.searchString = "*";
        searchCondition.searchOrder = GC.Spread.Sheets.Search.SearchOrder.zOrder;
        searchCondition.searchTarget = GC.Spread.Sheets.Search.SearchFoundFlags.cellText;
        searchCondition.searchFlags = GC.Spread.Sheets.Search.SearchFlags.useWildCards;
        searchCondition.findBeginRow = 0;
        searchCondition.findBeginColumn = 0;
        return searchCondition;
    }
    
        </script>
    </head>
    <body onload="bodyReady()">
        <div id="ss" style="width:100%;height:500px;border:1px solid gray"></div>
        <input type="button" id="btn" value="Last Cell in Console" onclick="buttonClick()" />
    </body>
    </html>
    See Also