MAIDR Documentation - v4.4.0
    Preparing search index...

    Interface TableauWorksheet

    A worksheet: the only sheet kind that owns data and selection.

    The signatures match both the Embedding and the Extensions Worksheet, so every pure module downstream works unchanged under either host.

    interface TableauWorksheet {
        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>;
    }

    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 interfacesExternalContract/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.