---
schema_version: "1"
id: afeed959c3194ea91b0c01bcbb43490ed87fef507cca8ef76e317eb6a903294c
title: Worksheet | Tableau Embedding API
collection: tableau
version: current
locale: en-us
portal_url: https://docs.salesforce.com/tableau/current/en-us/api/embedding_api/reference/interfaces/Worksheet.md
canonical_url: https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Worksheet.html
source_site: help.tableau.com
content_type: documentation
content_hash: 596f84f2185b1490ab42533aaa13fd9eee9e1bfb6672dfcff24729eda0070de4
description: Documentation for Tableau Embedding API
---
- Worksheet

# Interface Worksheet

interface Worksheet {  
    [index](#index): number;  
    [isActive](#isactive): boolean;  
    [isHidden](#ishidden): boolean;  
    [name](#name): string;  
    [parentDashboard](#parentdashboard): null | [Dashboard](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Dashboard.html);  
    [parentStoryPoint](#parentstorypoint): null | [StoryPoint](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/StoryPoint.html);  
    [sheetType](#sheettype): [SheetType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/SheetType.html);  
    [size](#size): [SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html);  
    [url](#url): string;  
    [workbook](#workbook): [Workbook](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Workbook.html);  
    [annotateMarkAsync](#annotatemarkasync-1)(mark: [MarkInfo](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/MarkInfo.html), annotationText: string): Promise<void\>;  
    [appendContextMenuAsync](#appendcontextmenuasync-1)(  
        targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip),  
        config: [ContextMenuOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/ContextMenuOptions.html),  
    ): Promise<string\>;  
    [applyFilterAsync](#applyfilterasync-1)(  
        fieldName: string,  
        values: string\[\],  
        updateType: [FilterUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/FilterUpdateType.html),  
        filterOptions: [FilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/FilterOptions.html),  
    ): Promise<string\>;  
    [applyHierarchicalFilterAsync](#applyhierarchicalfilterasync-1)(  
        fieldName: string,  
        values: string\[\] | [HierarchicalLevels](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/HierarchicalLevels.html),  
        updateType: [FilterUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/FilterUpdateType.html),  
        options: [FilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/FilterOptions.html),  
    ): Promise<string\>;  
    [applyRangeFilterAsync](#applyrangefilterasync-1)(  
        fieldName: string,  
        filterOptions: [RangeFilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/RangeFilterOptions.html),  
    ): Promise<string\>;  
    [applyRelativeDateFilterAsync](#applyrelativedatefilterasync-1)(  
        fieldName: string,  
        options: [RelativeDateFilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/RelativeDateFilterOptions.html),  
    ): Promise<string\>;  
    [changeSizeAsync](#changesizeasync-1)(sheetSize: [SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html)): Promise<[SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html)\>;  
    [clearFilterAsync](#clearfilterasync-1)(fieldName: string): Promise<string\>;  
    [clearSelectedMarksAsync](#clearselectedmarksasync-1)(): Promise<void\>;  
    [executeContextMenuAsync](#executecontextmenuasync-1)(  
        targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip),  
        menuItemId: string,  
    ): Promise<void\>;  
    [getAnnotationsAsync](#getannotationsasync-1)(): Promise<[Annotation](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Annotation.html)\[\]\>;  
    [getDataSourcesAsync](#getdatasourcesasync-1)(): Promise<[DataSource](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataSource.html)\[\]\>;  
    [getFiltersAsync](#getfiltersasync-1)(): Promise<[Filter](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Filter.html)\[\]\>;  
    [getSelectedMarksAsync](#getselectedmarksasync-1)(): Promise<[MarksCollection](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/MarksCollection.html)\>;  
    [getSummaryColumnsInfoAsync](#getsummarycolumnsinfoasync-1)(): Promise<[Column](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Column.html)\[\]\>;  
    [getSummaryDataAsync](#getsummarydataasync-1)(options?: [GetSummaryDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetSummaryDataOptions.html)): Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>;  
    [getSummaryDataReaderAsync](#getsummarydatareaderasync-1)(  
        pageRowCount?: number,  
        options?: [GetSummaryDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetSummaryDataOptions.html),  
    ): Promise<[DataTableReader](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTableReader.html)\>;  
    [getUnderlyingDataAsync](#getunderlyingdataasync-1)(  
        options?: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html),  
    ): Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>;  
    [getUnderlyingTableDataAsync](#getunderlyingtabledataasync-1)(  
        logicalTableId: string,  
        options?: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html),  
    ): Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>;  
    [getUnderlyingTableDataReaderAsync](#getunderlyingtabledatareaderasync-1)(  
        logicalTableId: string,  
        pageRowCount?: number,  
        options?: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html),  
    ): Promise<[DataTableReader](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTableReader.html)\>;  
    [getUnderlyingTablesAsync](#getunderlyingtablesasync-1)(): Promise<[LogicalTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/LogicalTable.html)\[\]\>;  
    [getVisualSpecificationAsync](#getvisualspecificationasync-1)(): Promise<[VisualSpecification](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/VisualSpecification.html)\>;  
    [removeAnnotationAsync](#removeannotationasync-1)(annotation: [Annotation](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Annotation.html)): Promise<void\>;  
    [removeContextMenuAsync](#removecontextmenuasync-1)(  
        targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip),  
        menuItemId: string,  
    ): Promise<void\>;  
    [renameContextMenuAsync](#renamecontextmenuasync-1)(  
        targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip),  
        menuHeader: string,  
        menuDescription: string,  
    ): Promise<void\>;  
    [selectMarksByValueAsync](#selectmarksbyvalueasync-1)(  
        selections: [SelectionCriteria](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SelectionCriteria.html)\[\],  
        updateType: [SelectionUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/SelectionUpdateType.html),  
    ): Promise<void\>;  
}

#### Hierarchy ([View Summary](https://help.tableau.com/current/api/embedding_api/en-us/reference/hierarchy.html#Worksheet))

- [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html)
    - Worksheet

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:136

##### Index

### Methods

[annotateMarkAsync](#annotatemarkasync) [appendContextMenuAsync](#appendcontextmenuasync) [applyFilterAsync](#applyfilterasync) [applyHierarchicalFilterAsync](#applyhierarchicalfilterasync) [applyRangeFilterAsync](#applyrangefilterasync) [applyRelativeDateFilterAsync](#applyrelativedatefilterasync) [changeSizeAsync](#changesizeasync) [clearFilterAsync](#clearfilterasync) [clearSelectedMarksAsync](#clearselectedmarksasync) [executeContextMenuAsync](#executecontextmenuasync) [getAnnotationsAsync](#getannotationsasync) [getDataSourcesAsync](#getdatasourcesasync) [getFiltersAsync](#getfiltersasync) [getSelectedMarksAsync](#getselectedmarksasync) [getSummaryColumnsInfoAsync](#getsummarycolumnsinfoasync) [getSummaryDataAsync](#getsummarydataasync) [getSummaryDataReaderAsync](#getsummarydatareaderasync) [getUnderlyingDataAsync](#getunderlyingdataasync) [getUnderlyingTableDataAsync](#getunderlyingtabledataasync) [getUnderlyingTableDataReaderAsync](#getunderlyingtabledatareaderasync) [getUnderlyingTablesAsync](#getunderlyingtablesasync) [getVisualSpecificationAsync](#getvisualspecificationasync) [removeAnnotationAsync](#removeannotationasync) [removeContextMenuAsync](#removecontextmenuasync) [renameContextMenuAsync](#renamecontextmenuasync) [selectMarksByValueAsync](#selectmarksbyvalueasync)

### Properties

[index](#index) [isActive](#isactive) [isHidden](#ishidden) [name](#name) [parentDashboard](#parentdashboard) [parentStoryPoint](#parentstorypoint) [sheetType](#sheettype) [size](#size) [url](#url) [workbook](#workbook)

## Methods

### annotateMarkAsync[](#annotatemarkasync)

- annotateMarkAsync(mark: [MarkInfo](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/MarkInfo.html), annotationText: string): Promise<void\>[](#annotatemarkasync-1)
    
    Add an annotation to the specified mark. This is intended to be passed a MarkInfo object received from a DataTable. MarkInfo can be found in the DataTable returned from getSelectedMarksAsync.
    
    #### Parameters
    
    - mark: [MarkInfo](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/MarkInfo.html)
        
        The mark to annotate.
    - annotationText: string
        
        The text to display in the annotation.
    
    #### Returns Promise<void\>
    
    Empty promise that resolves when the annotation is complete.
    
    The following example shows how you might call this method using a MarkInfo object.
    
    ```
       const markCollection = await worksheet.getSelectedMarksAsync();   const markToAnnotate = marksCollection.data[0].marksInfo[0];   await worksheet.annotateMarkAsync(markToAnnotate, 'Manufacturing line #2 shutdown triggered');
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:535

### appendContextMenuAsync[](#appendcontextmenuasync)

- appendContextMenuAsync(  
        targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip),  
        config: [ContextMenuOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/ContextMenuOptions.html),  
    ): Promise<string\>[](#appendcontextmenuasync-1)
    
    Adds external context menu item into location defined by targetMenu input parameter.
    
    Calling this function does not have immediate affect, it just registers new menu item. When the corresponding context menu is later shown, the new menu item is also rendered there.
    
    The return value of this function is the unique identifier for the newly inserted context menu item.
    
    When the user clicks the new context menu item, a TableauEvent is raised. Each targetMenu parameter will have a different event type. The unique identifier could be used to distinguish different menu items that have the same event type.
    
    #### Parameters
    
    - targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip)
        
        Defines where to insert the new external menu item.
    - config: [ContextMenuOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/ContextMenuOptions.html)
        
        Provides configuration information for new external menu item.
    
    #### Returns Promise<string\>
    
    Unique identifier for newly inserted context menu item.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:586

### applyFilterAsync[](#applyfilterasync)

- applyFilterAsync(  
        fieldName: string,  
        values: string\[\],  
        updateType: [FilterUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/FilterUpdateType.html),  
        filterOptions: [FilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/FilterOptions.html),  
    ): Promise<string\>[](#applyfilterasync-1)
    
    Applies the list of provided categorical filter values.
    
    #### Parameters
    
    - fieldName: string
        
        The name of the field to filter on.
    - values: string\[\]
        
        The list of values to filter on.
    - updateType: [FilterUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/FilterUpdateType.html)
        
        The update type of this filter (add, all, remove, replace).
    - filterOptions: [FilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/FilterOptions.html)
        
        Advanced filter options (isExcludeMode).
    
    #### Returns Promise<string\>
    
    The field name that the filter is applied on.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:385

### applyHierarchicalFilterAsync[](#applyhierarchicalfilterasync)

- applyHierarchicalFilterAsync(  
        fieldName: string,  
        values: string\[\] | [HierarchicalLevels](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/HierarchicalLevels.html),  
        updateType: [FilterUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/FilterUpdateType.html),  
        options: [FilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/FilterOptions.html),  
    ): Promise<string\>[](#applyhierarchicalfilterasync-1)
    
    Applies the list of provided hierarchial filter values.
    
    #### Parameters
    
    - fieldName: string
        
        The name of the field to filter on.
    - values: string\[\] | [HierarchicalLevels](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/HierarchicalLevels.html)
        
        The list of values or levels to filter on.
    - updateType: [FilterUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/FilterUpdateType.html)
        
        The update type of this filter (add, all, remove, replace).
    - options: [FilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/FilterOptions.html)
    
    #### Returns Promise<string\>
    
    The field name that the filter is applied on.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:442

### applyRangeFilterAsync[](#applyrangefilterasync)

- applyRangeFilterAsync(  
        fieldName: string,  
        filterOptions: [RangeFilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/RangeFilterOptions.html),  
    ): Promise<string\>[](#applyrangefilterasync-1)
    
    Applies a range filter to a quantitative or date field.
    
    #### Parameters
    
    - fieldName: string
        
        The name of the field to filter on
    - filterOptions: [RangeFilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/RangeFilterOptions.html)
        
        Filter Options: min, max, nullOption. Atleast one of of min and max is required. For applying date filters, UTC Date objects are expected. (i.e., var min = new Date(Date.UTC(1999, 0, 1)))
    
    #### Returns Promise<string\>
    
    The field name that the filter is applied on.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:395

### applyRelativeDateFilterAsync[](#applyrelativedatefilterasync)

- applyRelativeDateFilterAsync(  
        fieldName: string,  
        options: [RelativeDateFilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/RelativeDateFilterOptions.html),  
    ): Promise<string\>[](#applyrelativedatefilterasync-1)
    
    Applies a relative date filter.
    
    #### Parameters
    
    - fieldName: string
        
        The name of the field to filter on.
    - options: [RelativeDateFilterOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/RelativeDateFilterOptions.html)
        
        The relative date filter options (anchorDate, periodType, rangeType, rangeN). When the rangeType is LASTN or NEXTN, the rangeN is required.
    
    #### Returns Promise<string\>
    
    The field name that the filter is applied on.
    
    The following example shows how to apply a relative date filter from a worksheet.
    
    ```
     worksheet.applyRelativeDateFilterAsync(   'Order Date',   {     anchorDate: new Date(Date.UTC(2022, 4, 13)),     periodType: PeriodType.Years,     rangeType: DateRangeType.LastN,     rangeN: 1,   } );
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:429

### changeSizeAsync[](#changesizeasync)

- changeSizeAsync(sheetSize: [SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html)): Promise<[SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html)\>[](#changesizeasync-1)
    
    Sets the size information of a sheet. Note that if the sheet is a Worksheet, only SheetSizeBehavior.Automatic is allowed since you can't actually set a Worksheet to a fixed size.
    
    #### Parameters
    
    - sheetSize: [SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html)
    
    #### Returns Promise<[SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html)\>
    
    Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[changeSizeAsync](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#changesizeasync)
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:79

### clearFilterAsync[](#clearfilterasync)

- clearFilterAsync(fieldName: string): Promise<string\>[](#clearfilterasync-1)
    
    Resets existing filters on the given field. Categorical filters are reset to "All," and range filters are reset to the full range. Relative date filters can not be reset, consider using the applyRelativeDateFilterAsync API.
    
    #### Parameters
    
    - fieldName: string
        
        The name of the field to clear filter on.
    
    #### Returns Promise<string\>
    
    The field to clear filter on.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:406

### clearSelectedMarksAsync[](#clearselectedmarksasync)

- clearSelectedMarksAsync(): Promise<void\>[](#clearselectedmarksasync-1)
    
    Clears selected marks in the current worksheet.
    
    #### Returns Promise<void\>
    
    Empty promise that resolves when the selection has been cleared.
    
    The following example assumes that you have some marks already selected in the worksheet. After it has run, you should have no marks selected, and you should see the console message. Use `await` only inside an Async function
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {   // clear selected marks   await vizActiveSheet.clearSelectedMarksAsync();   console.log('Your marks selection has been cleared!');}
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:467

### executeContextMenuAsync[](#executecontextmenuasync)

- executeContextMenuAsync(targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip), menuItemId: string): Promise<void\>[](#executecontextmenuasync-1)
    
    Executes the external context menu item inserted by the appendContextMenuAsync method.
    
    The parameter menuItemId specifies the menu item to execute and is the return value from the appendContextMenuAsync method.
    
    Once this function is called, menu item identified by menuItemId will be executed.
    
    #### Parameters
    
    - targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip)
        
        Defines where to execute new external menu item.
    - menuItemId: string
        
        Unique identifier of external context menu item that user wants to execute.
    
    #### Returns Promise<void\>
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:613

### getAnnotationsAsync[](#getannotationsasync)

- getAnnotationsAsync(): Promise<[Annotation](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Annotation.html)\[\]\>[](#getannotationsasync-1)
    
    Retrieves a list of the annotations in the worksheet.
    
    #### Returns Promise<[Annotation](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Annotation.html)\[\]\>
    
    A list annotations in the worksheet.
    
    The following example shows how you might call this method.
    
    ```
       let annotations = await worksheet.getAnnotationsAsync();   console.log(annotations);
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:550

### getDataSourcesAsync[](#getdatasourcesasync)

- getDataSourcesAsync(): Promise<[DataSource](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataSource.html)\[\]\>[](#getdatasourcesasync-1)
    
    Gets the data sources for this worksheet. Note that calling this method might negatively impact performance and responsiveness of the viz that you are embedding. The method is partly asynchronous but includes some serial operations.
    
    #### Returns Promise<[DataSource](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataSource.html)\[\]\>
    
    The primary data source and all of the secondary data sources for this worksheet. By convention the first data source in the array is the primary.
    
    The following example shows how you might find a specific data source of a worksheet, using the `getDataSourcesAsync()` method. You could then call the `getLogicalTablesAsync()` method to get the logical tables in the data source, and then use the either the `DataSource` or the `Worksheet` to get the underlying table data.
    
    Use `await` only inside an Async function
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {   let dataSources = await vizActiveSheet.getDataSourcesAsync();   console.log(dataSources[0].name);   let dataSource = dataSources.find(datasource => datasource.name === "Sample - Superstore");   // process the dataSource}
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:172

### getFiltersAsync[](#getfiltersasync)

- getFiltersAsync(): Promise<[Filter](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Filter.html)\[\]\>[](#getfiltersasync-1)
    
    Gets the list of filters on a worksheet. Hierarchical filters are not yet supported
    
    #### Returns Promise<[Filter](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Filter.html)\[\]\>
    
    A promise that resolves to the collection of filters used in this worksheet.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:373

### getSelectedMarksAsync[](#getselectedmarksasync)

- getSelectedMarksAsync(): Promise<[MarksCollection](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/MarksCollection.html)\>[](#getselectedmarksasync-1)
    
    Gets the data for the marks which are currently selected on the worksheet. If there are no marks currently selected, an empty model is returned.
    
    #### Returns Promise<[MarksCollection](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/MarksCollection.html)\>
    
    The marks that are selected.
    
    Use `await` only inside an Async function
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {   // Call to get the selected marks for the worksheet   let selectedMarks = await vizActiveSheet.getSelectedMarksAsync();   // Get the first DataTable for our selected marks (usually there is just one)   const dataTableName = selectedMarks.data[0];   // Map the data into a format for display, etc.}
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:490

### getSummaryColumnsInfoAsync[](#getsummarycolumnsinfoasync)

- getSummaryColumnsInfoAsync(): Promise<[Column](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Column.html)\[\]\>[](#getsummarycolumnsinfoasync-1)
    
    Gets the columns that are returned with `getSummaryDataAsync` or `getSummaryDataReaderAsync`. The columns are sorted in the order that they appear in the view or in the View Data window. Note that `getSummaryDataReaderAsync` returns the summary data sorted with the columns in alphabetical (ascending) order. You can use method to determine the view order..
    
    #### Returns Promise<[Column](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Column.html)\[\]\>
    
    The array of columns that describe the data in the worksheet.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:246

### getSummaryDataAsync[](#getsummarydataasync)

- getSummaryDataAsync(options?: [GetSummaryDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetSummaryDataOptions.html)): Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>[](#getsummarydataasync-1)
    
    Gets the summary data table for a worksheet. Warning: getSummaryDataAsync can fail with a worksheet with many rows of data and is now deprecated.
    
    #### Parameters
    
    - `Optional`options: [GetSummaryDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetSummaryDataOptions.html)
        
        Collection of options to change the behavior of the call.
    
    #### Returns Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>
    
    A data table containing the summary data for the worksheet.
    
    #### Deprecated[](#deprecated)
    
    Use getSummaryDataReaderAsync to avoid failures with many rows of data.
    
    Example shows how to replace unsafe usage of `getSummaryDataAsync` with `getSummaryDataReaderAsync` and `getAllPagesAsync` assuming less than 4,000,000 rows of data.
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {  const dataTableReader = await vizActiveSheet.getSummaryDataReaderAsync();  const dataTable = await dataTableReader.getAllPagesAsync();  await dataTableReader.releaseAsync();  // ... process data table ...}
    ```
    
    Example shows how to replace unsafe usage of `getSummaryDataAsync` with `getSummaryDataReaderAsync` and `getPageAsync` and work with individual pages.
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {  const dataTableReader = await vizActiveSheet.getSummaryDataReaderAsync();  for (let currentPage = 0; currentPage < dataTableReader.pageCount; currentPage++) {    const dataTablePage = await dataTableReader.getPageAsync(currentPage);    // ... process current page ....  }  await dataTableReader.releaseAsync();}
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:212

### getSummaryDataReaderAsync[](#getsummarydatareaderasync)

- getSummaryDataReaderAsync(  
        pageRowCount?: number,  
        options?: [GetSummaryDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetSummaryDataOptions.html),  
    ): Promise<[DataTableReader](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTableReader.html)\>[](#getsummarydatareaderasync-1)
    
    Gets a summary data table reader for this worksheet. Only one active DataTableReader for summary data is supported.
    
    #### Parameters
    
    - `Optional`pageRowCount: number
        
        The number of rows per page. The default and maximum is 10,000 rows.
    - `Optional`options: [GetSummaryDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetSummaryDataOptions.html)
        
        Collection of options to change the behavior of the reader.
    
    #### Returns Promise<[DataTableReader](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTableReader.html)\>
    
    A data table reader to access the summary data for the worksheet.
    
    Example showing the methods to get and use the summary data reader for all rows in a worksheet. Use `await` only inside an Async function
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {    const dataTableReader = await vizActiveSheet.getSummaryDataReaderAsync();    for (let currentPage = 0; currentPage < dataTableReader.pageCount; currentPage++) {        const dataTablePage = await dataTableReader.getPageAsync(currentPage);        // ... process current page ....    }    await dataTableReader.releaseAsync();}
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:236

### getUnderlyingDataAsync[](#getunderlyingdataasync)

- getUnderlyingDataAsync(options?: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html)): Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>[](#getunderlyingdataasync-1)
    
    Gets the underlying data table for this worksheet.
    
    #### Parameters
    
    - `Optional`options: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html)
        
        Collection of options to change the behavior of the call.
    
    #### Returns Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>
    
    A data table containing the underlying data for the worksheet.
    
    You can use the `GetUnderlyingDataOptions.maxRows` property to request the number of rows of data to return. If unspecified (maxRows == '0'), the call to `getUnderlyingDataAsync` requests all rows in the data source. Note that the maximum number of rows returned from the `getUnderlyingDataAsync()` method is limited to 10,000 rows. You can use the `DataTable` property, `isTotalRowCountLimited`, to test whether there is more data. A value of true indicates that the calling function requested more rows than the limit (10,000) and the underlying data source contains more rows than can be returned.
    
    In the following example, the `getUnderlyingDataAsync()` method is used to get the underlying data for a specific column in a workbook. Use `await` only inside an Async function
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {   let dataTable = await  vizActiveSheet.getUnderlyingDataAsync();   let field = dataTable.columns.find(column => column.fieldName === "Sales");   let list = [];   for (let row of dataTable.data) {        list.push(row[field.index].value);   }   let values = list.filter((el, i, arr) => arr.indexOf(el) === i);   console.log(values);}
    ```
    
    #### Deprecated[](#deprecated-1)
    
    Use Worksheet.getUnderlyingTableDataReaderAsync or Worksheet.getUnderlyingTableDataAsync.
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:282

### getUnderlyingTableDataAsync[](#getunderlyingtabledataasync)

- getUnderlyingTableDataAsync(  
        logicalTableId: string,  
        options?: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html),  
    ): Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>[](#getunderlyingtabledataasync-1)
    
    Gets the underlying data table for the given logical table id. Use the `getUnderlyingTablesAsync` method to identify the logical tables.
    
    #### Parameters
    
    - logicalTableId: string
        
        logical table id.
    - `Optional`options: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html)
        
        Collection of options to change the behavior of the call.
    
    #### Returns Promise<[DataTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTable.html)\>
    
    A data table containing the underlying data for the given logical table id
    
    You can use the `getUnderlyingDataOptions.maxRows` property to request the number of rows of data to return. If unspecified (maxRows == '0'), the call to `getUnderlyingTableDataAsync` requests all rows in the logical table. Note that the maximum number of rows returned from the `getUnderlyingTableDataAsync()` method is limited to 10,000 rows. You can use the `DataTable` property, `isTotalRowCountLimited`, to test whether there is more data. A value of true indicates that the calling function requested more rows than the limit (10,000) and the underlying data source contains more rows than can be returned.
    
    #### See[](#see)
    
    getUnderlyingTableDataReaderAsync to read more than 10,000 rows.
    
    ```
    var worksheet = tableau.extensions.dashboardContent.dashboard.worksheets.find(w => w.name === "Sale Map");const logicalTables = await worksheet.getUnderlyingTablesAsync();const dataTable = await worksheet.getUnderlyingTableDataAsync(logicalTables[0].id)// process the dataTable...
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:329

### getUnderlyingTableDataReaderAsync[](#getunderlyingtabledatareaderasync)

- getUnderlyingTableDataReaderAsync(  
        logicalTableId: string,  
        pageRowCount?: number,  
        options?: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html),  
    ): Promise<[DataTableReader](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTableReader.html)\>[](#getunderlyingtabledatareaderasync-1)
    
    Gets a underlying data table reader for the given logical table id. Use the `getUnderlyingTablesAsync` method to identify the logical tables. Only one active DataTableReader per logical table id is supported.
    
    `getUnderlyingTableDataReaderAsync` attempts to prepare all the rows of the underlying table to be read as pages. However, there is a limit to the number of rows that can be prepared. The default limit is 1 million rows of data. You can change the default limit with the Tableau Server (Cloud) or Tableau Desktop option: ExtensionsAndEmbeddingReaderRowLimit. If the underlying table has many columns, `getUnderlyingTableDataReaderAsync` can be sped up by only requesting native data values in the GetUnderlyingDataOptions.
    
    #### Parameters
    
    - logicalTableId: string
        
        logical table id.
    - `Optional`pageRowCount: number
        
        The number of rows per page. The default and maximum is 10,000 rows.
    - `Optional`options: [GetUnderlyingDataOptions](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/GetUnderlyingDataOptions.html)
        
        Collection of options to change the behavior of the reader.
    
    #### Returns Promise<[DataTableReader](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/DataTableReader.html)\>
    
    A data table reader to access the underlying data for the given logical table id.
    
    The following example shows getting the first page of underlying data. Use `await` only inside an Async function
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {   // Call to get the underlying logical tables used by the worksheet   const underlyingTablesData = await vizActiveSheet.getUnderlyingTablesAsync();   const logicalTableId = underlyingTablesData[0].id;   // Use the above logicalTableId to get the underlying data reader on the active sheet   const dataTableReader = await vizActiveSheet.getUnderlyingTableDataReaderAsync(logicalTableId);   const page = await dataTableReader.getPageAsync(0);   // ... process first page ....   await dataTableReader.releaseAsync();}
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:363

### getUnderlyingTablesAsync[](#getunderlyingtablesasync)

- getUnderlyingTablesAsync(): Promise<[LogicalTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/LogicalTable.html)\[\]\>[](#getunderlyingtablesasync-1)
    
    Gets the underlying logical tables used by the worksheet. The resulting logical tables are determined by the measures in the worksheet. If a worksheet's data source contains multiple logical tables and the worksheet contains only measures from one logical table, this API will return one logical table.
    
    #### Returns Promise<[LogicalTable](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/LogicalTable.html)\[\]\>
    
    An array of logical tables corresponding to the measures referenced by the worksheet. Use `await` only inside an Async function
    
    ```
    let vizActiveSheet = viz.workbook.activeSheet;if (vizActiveSheet.sheetType === "worksheet") {   // Call to get the underlying logical tables used by the worksheet   let underlyingTablesData = await vizActiveSheet.getUnderlyingTablesAsync();   let logicalTableId = underlyingTablesData[0].id;   // Use the above logicalTableId to get the underlying data on the active sheet   // by calling worksheet.getUnderlyingTableDataAsync(logicalTableId)   let underlyingTableDataForId = await vizActiveSheet.getUnderlyingTableDataAsync(logicalTableId);}
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:304

### getVisualSpecificationAsync[](#getvisualspecificationasync)

- getVisualSpecificationAsync(): Promise<[VisualSpecification](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/VisualSpecification.html)\>[](#getvisualspecificationasync-1)
    
    Returns the visual specification for the worksheet, which can be used to get the mappings from fields to encodings backing the visual within the worksheet
    
    #### Returns Promise<[VisualSpecification](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/VisualSpecification.html)\>
    
    Promise containing the VisualSpecification
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:635

### removeAnnotationAsync[](#removeannotationasync)

- removeAnnotationAsync(annotation: [Annotation](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Annotation.html)): Promise<void\>[](#removeannotationasync-1)
    
    Removes the corresponding annotation from the worksheet it belongs to. This is intended to be passed an Annotation object received from getAnnotationsAsync.
    
    #### Parameters
    
    - annotation: [Annotation](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Annotation.html)
        
        The annotation to remove.
    
    #### Returns Promise<void\>
    
    Empty promise that resolves when the annotation is removed.
    
    The following example shows how you might call this method using an annotation object.
    
    ```
       for (const annotation of annotations) {     await worksheet.removeAnnotationAsync(annotation);   }
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:568

### removeContextMenuAsync[](#removecontextmenuasync)

- removeContextMenuAsync(targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip), menuItemId: string): Promise<void\>[](#removecontextmenuasync-1)
    
    Removes the external context menu item inserted by the appendContextMenuAsync method.
    
    The parameter menuItemId specifies the menu item to remove and is the return value from the appendContextMenuAsync method.
    
    Once this function is called, menu item identified by menuItemId won't be rendered to the user in corresponding context menu.
    
    #### Parameters
    
    - targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip)
        
        Defines where to remove new external menu item.
    - menuItemId: string
        
        Unique identifier of external context menu item that user wants to remove.
    
    #### Returns Promise<void\>
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:600

### renameContextMenuAsync[](#renamecontextmenuasync)

- renameContextMenuAsync(  
        targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip),  
        menuHeader: string,  
        menuDescription: string,  
    ): Promise<void\>[](#renamecontextmenuasync-1)
    
    Sets the displayed header for the external context menu.
    
    The parameter menuHeader specifies the header to be displayed.
    
    Once this function is called, menuHeader will be rendered to the user as the header for corresponding context menu. If not called, a default header will be displayed.
    
    #### Parameters
    
    - targetMenu: [Ubertip](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/ApiMenuType.html#ubertip)
        
        Specifies the location of the external context menu.
    - menuHeader: string
        
        Defines a header string to be displayed for the menu.
    - menuDescription: string
        
        Defines a description of the menu to be displayed in a tooltip
    
    #### Returns Promise<void\>
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:627

### selectMarksByValueAsync[](#selectmarksbyvalueasync)

- selectMarksByValueAsync(  
        selections: [SelectionCriteria](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SelectionCriteria.html)\[\],  
        updateType: [SelectionUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/SelectionUpdateType.html),  
    ): Promise<void\>[](#selectmarksbyvalueasync-1)
    
    Selects the marks by value, using the SelectionCriteria interface. This is intended for manual construction of the desired selections.
    
    #### Parameters
    
    - selections: [SelectionCriteria](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SelectionCriteria.html)\[\]
        
        A list of criteria for which marks to select.
    - updateType: [SelectionUpdateType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/SelectionUpdateType.html)
        
        The type of selection to make: add, remove, or replace.
    
    #### Returns Promise<void\>
    
    Empty promise that resolves when the selection is complete.
    
    The following example shows how you might call this method using state names as the `SelectionCriteria`. The `SelectionUpdateType` is replace (`SelectionUpdateType.Replace`), so these values replace the marks that are currently selected.
    
    ```
       worksheet.selectMarksByValueAsync([{        fieldName: 'State',        value: ['Texas', 'Washington', 'California']    }], SelectionUpdateType.Replace );
    ```
    
    - Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:514

## Properties

### `Readonly`index[](#index)

index: number

#### Returns[](#returns)

The index of the sheet within the published tabs. Note that hidden tabs are still counted in the ordering, as long as they are published.

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[index](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#index)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:58

### `Readonly`isActive[](#isactive)

isActive: boolean

#### Returns[](#returns-1)

A value indicating whether the sheet is the currently active sheet.

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[isActive](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#isactive)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:45

### `Readonly`isHidden[](#ishidden)

isHidden: boolean

#### Returns[](#returns-2)

A value indicating whether the sheet is hidden (true) or visible (false) in the UI. Note that if the entire tab control is hidden, it does not affect the state of this flag. This sheet may still report that it is visible even when the tabs control is hidden.

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[isHidden](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#ishidden)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:52

### `Readonly`name[](#name)

name: string

#### Returns[](#returns-3)

The name of the sheet.

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[name](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#name)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:35

### `Readonly`parentDashboard[](#parentdashboard)

parentDashboard: null | [Dashboard](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Dashboard.html)

#### Returns[](#returns-4)

The dashboard object to which this worksheet belong. If the worksheet is not on a dashboard, it returns null.

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:140

### `Readonly`parentStoryPoint[](#parentstorypoint)

parentStoryPoint: null | [StoryPoint](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/StoryPoint.html)

#### Returns[](#returns-5)

The [StoryPoint](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/StoryPoint.html) object to which this worksheet belongs. If the worksheet is not in a story, it returns null.

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:145

### `Readonly`sheetType[](#sheettype)

sheetType: [SheetType](https://help.tableau.com/current/api/embedding_api/en-us/reference/enums/SheetType.html)

#### Returns[](#returns-6)

The type of the sheet.

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[sheetType](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#sheettype)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:40

### `Readonly`size[](#size)

size: [SheetSize](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/SheetSize.html)

#### Returns[](#returns-7)

The size information that the author specified when publishing the workbook.

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[size](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#size)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:68

### `Readonly`url[](#url)

url: string

#### Returns[](#returns-8)

the URL for this sheet.

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[url](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#url)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:63

### `Readonly`workbook[](#workbook)

workbook: [Workbook](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Workbook.html)

#### Returns[](#returns-9)

The workbook containing this sheet

Inherited from [Sheet](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html).[workbook](https://help.tableau.com/current/api/embedding_api/en-us/reference/interfaces/Sheet.html#workbook)

- Defined in packages/api-external-contract-js/src/ExternalContract/Embedding/SheetInterfaces.ts:73

### Settings

Member Visibility

- Protected
- Inherited
- External

ThemeOSLightDark

### On This Page

Methods

[annotateMarkAsync](#annotatemarkasync)[appendContextMenuAsync](#appendcontextmenuasync)[applyFilterAsync](#applyfilterasync)[applyHierarchicalFilterAsync](#applyhierarchicalfilterasync)[applyRangeFilterAsync](#applyrangefilterasync)[applyRelativeDateFilterAsync](#applyrelativedatefilterasync)[changeSizeAsync](#changesizeasync)[clearFilterAsync](#clearfilterasync)[clearSelectedMarksAsync](#clearselectedmarksasync)[executeContextMenuAsync](#executecontextmenuasync)[getAnnotationsAsync](#getannotationsasync)[getDataSourcesAsync](#getdatasourcesasync)[getFiltersAsync](#getfiltersasync)[getSelectedMarksAsync](#getselectedmarksasync)[getSummaryColumnsInfoAsync](#getsummarycolumnsinfoasync)[getSummaryDataAsync](#getsummarydataasync)[getSummaryDataReaderAsync](#getsummarydatareaderasync)[getUnderlyingDataAsync](#getunderlyingdataasync)[getUnderlyingTableDataAsync](#getunderlyingtabledataasync)[getUnderlyingTableDataReaderAsync](#getunderlyingtabledatareaderasync)[getUnderlyingTablesAsync](#getunderlyingtablesasync)[getVisualSpecificationAsync](#getvisualspecificationasync)[removeAnnotationAsync](#removeannotationasync)[removeContextMenuAsync](#removecontextmenuasync)[renameContextMenuAsync](#renamecontextmenuasync)[selectMarksByValueAsync](#selectmarksbyvalueasync)

Properties

[index](#index)[isActive](#isactive)[isHidden](#ishidden)[name](#name)[parentDashboard](#parentdashboard)[parentStoryPoint](#parentstorypoint)[sheetType](#sheettype)[size](#size)[url](#url)[workbook](#workbook)