# IsSpreadsheetObject

Determines whether an object is a BoxLang spreadsheet object.

## Method Signature

```
IsSpreadsheetObject(object=[any])
```

### Arguments

| Argument | Type  | Required | Description         | Default |
| -------- | ----- | -------- | ------------------- | ------- |
| `value`  | `ANY` | `true`   | The value to check. |         |

## Examples

Check if a value is a spreadsheet object:

```js
// Check if variable is a spreadsheet
var spreadsheet = SpreadsheetNew();
if ( IsSpreadsheetObject( spreadsheet ) ) {
    println( "This is a valid spreadsheet object" );
}
```

Validate before operations:

```js
// Ensure object is spreadsheet before manipulating
var data = SpreadsheetRead( "/path/to/file.xlsx" );

if ( !IsSpreadsheetObject( data ) ) {
    throw( "Invalid spreadsheet object" );
}

SpreadsheetAddRow( data, [ "Name", "Age" ] );
```

Type validation in functions:

```js
// Type check in utility function
function processSpreadsheet( spreadsheetObj ) {
    if ( !IsSpreadsheetObject( spreadsheetObj ) ) {
        return { success = false, error = "Expected spreadsheet object" };
    }

    // Safe to process
    return { success = true, rows = SpreadsheetGetColumnCount( spreadsheetObj ) };
}
```

## Related

* [IsSpreadsheetFile()](https://boxlang.ortusbooks.com/boxlang-framework/boxlang-plus/modules/bx-spreadsheet/reference/built-in-functions/isspreadsheetfile) - Check for SpreadsheetFile objects
* [SpreadsheetNew()](https://boxlang.ortusbooks.com/boxlang-framework/boxlang-plus/modules/bx-spreadsheet/reference/built-in-functions/spreadsheetnew) - Create a spreadsheet
* [SpreadsheetInfo()](https://boxlang.ortusbooks.com/boxlang-framework/boxlang-plus/modules/bx-spreadsheet/reference/built-in-functions/spreadsheetinfo) - Get spreadsheet information
* [Type Checking Guide](https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-framework/boxlang-plus/modules/bx-spreadsheet/type-checking.md) - BoxLang type validation
