MAIDR JavaScript API
    Preparing search index...

    Interface TableauExtensionWorksheet

    A worksheet as the Extensions API hands it out: a worksheet that also takes listeners.

    interface TableauExtensionWorksheet {
        name: string;
        sheetType: "worksheet";
        getSummaryColumnsInfoAsync: () => Promise<TableauColumn[]>;
        getSummaryDataReaderAsync: (
            pageRowCount?: number,
            options?: TableauGetSummaryDataOptions,
        ) => Promise<TableauDataTableReader>;
        selectMarksByValueAsync: (
            selections: readonly TableauSelectionCriteria[],
            updateType: string,
        ) => Promise<void>;
        clearSelectedMarksAsync: () => Promise<void>;
        getVisualSpecificationAsync: () => Promise<TableauVisualSpecification>;
        addEventListener: (
            eventType: string,
            handler: (event: unknown) => void,
        ) => TableauEventUnregisterFn;
    }

    Hierarchy (View Summary)

    Index

    Properties

    name: string
    sheetType: "worksheet"
    getSummaryColumnsInfoAsync: () => Promise<TableauColumn[]>

    Columns in view order — the reader's own columns are alphabetical.

    getSummaryDataReaderAsync: (
        pageRowCount?: number,
        options?: TableauGetSummaryDataOptions,
    ) => Promise<TableauDataTableReader>
    selectMarksByValueAsync: (
        selections: readonly TableauSelectionCriteria[],
        updateType: string,
    ) => Promise<void>
    clearSelectedMarksAsync: () => Promise<void>
    getVisualSpecificationAsync: () => Promise<TableauVisualSpecification>

    The worksheet's visual specification.

    Declared non-optionally on both public Worksheet interfaces — ExternalContract/Embedding/SheetInterfaces.d.ts and ExternalContract/Extensions/SheetInterfaces.d.ts — and implemented by the Embedding API's own Worksheet class (EmbeddingApi/Models/Worksheet) in @tableau/embedding-api@3.12.1. It is not Extensions-only.

    It is declared required here and still feature-detected in reader.ts, because the two answer different questions. This type describes the contract; the runtime check describes the host, which loads whatever build of the Embedding library it likes. The Extensions declaration carries @since 1.11.0 and Tableau 2024.1; the Embedding one carries no @since at all, so the declarations set no version floor there — an older library on the page simply will not have the method, and an older Tableau Server can reject the call at runtime, which reader.ts catches.

    addEventListener: (
        eventType: string,
        handler: (event: unknown) => void,
    ) => TableauEventUnregisterFn