Dela via


API för filnedladdning

Med filnedladdnings-API:et kan användarna ladda ned data från ett anpassat visuellt objekt till en fil på lagringsenheten. För att ladda ned ett visuellt objekt krävs användarmedgivande och administratörsbehörighet i den globala administratörsväxeln. Den här inställningen är separat från och påverkas inte av nedladdningsbegränsningar som tillämpas i organisationens inställningar för export och delning av klientorganisationer.

Skärmbild av administratörsinställningen som aktiverar anpassade visuella nedladdningar.

Kommentar

API:et för filnedladdning har tre metoder:

  • exportVisualsContent är tillgängligt från API version 4.5
  • status är tillgängligt från API-version 4.6.
  • exportVisualsContentExtended är tillgängligt från API version 5.3.
  • Om du vill ta reda på vilken version du använder kontrollerar apiVersion du i filen pbiviz.json .

Använd filnedladdnings-API:et för att exportera till filer av följande typer:

  • .txt
  • .Csv
  • .Json
  • .tmplt
  • .xml
  • .pdf
  • .xlsx

Innan nedladdningen börjar visas ett fönster där du uppmanas att bekräfta att det visuella objektet kommer från en betrodd källa.

Skärmbild där du endast uppmanas att bekräfta nedladdningen om den kommer från en betrodd källa.

Så här använder du filnedladdnings-API:et

Om du vill använda filnedladdnings-API:et lägger du till en deklaration i matrisen privilegier i visuella funktioner.

API:et för filnedladdning har tre metoder:

Skillnaden mellan de två metoderna är returvärdet.

Metoden status

Statusmetoden returnerar status för filnedladdnings-API:et:

  • PrivilegeStatus.DisabledByAdmin: klientadministratörsknappen är inaktiverad
  • PrivilegeStatus.NotDeclared: det visuella objektet har ingen deklaration för den lokala lagringen i behörighetsmatrisen
  • PrivilegeStatus.NotSupported: API:et stöds inte. Mer information finns i begränsningar .
  • PrivilegeStatus.Allowed: API:et stöds och tillåts.

Metoden exportVisualsContent

Metoden exportVisualsContent har fyra parametrar:

  • innehåll: sträng
  • filename: string
  • fileType: string – När du exporterar till en .pdf - eller .xlsx-fil ska parametern fileType vara base64
  • fileDescription: string

Den här metoden returnerar ett löfte som kommer att matchas för ett booleskt värde.

Metoden exportVisualsContentExtended

Metoden exportVisualsContentExtended har också fyra parametrar:

  • innehåll: sträng
  • filename: string
  • fileType: string – När du exporterar till en .pdf - eller .xlsx-fil ska parametern fileType vara base64
  • fileDescription: string

Den här metoden returnerar ett löfte som kommer att matchas med ett resultat av typen ExportContentResultInfo som innehåller följande parametrar:

  • downloadCompleted – om nedladdningen har slutförts.
  • filename – det exporterade filnamnet.

Exempel: API för filnedladdning

Här är ett exempel på hur du laddar ned innehållet i ett anpassat visuellt objekt till en Excel-fil och en textfil.

import IDownloadService = powerbi.extensibility.IDownloadService;
...

export class Visual implements IVisual {
    ...
    private downloadService: IDownloadService;
    ...

    constructor(options: VisualConstructorOptions) {
        this.downloadService = options.host.downloadService;
         ...

        const downloadBtn: HTMLElement = document.createElement("button");
        downloadBtn.onclick = () => {
            let contentXlsx: string = ...;//content in base64
            let contentTxt: string = ...;
            this.downloadService.exportVisualsContent(contentTxt, "mytxt.txt", "txt", "txt file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContent(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContentExtended(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result.downloadCompleted) {
                    //do something
                    console.log(result.fileName);
                }
            }).catch(() => {
                //handle error
            });
        };

        // if you are using API version > 4.6.0
        downloadBtn.onclick = async () => {
            try {
                const status: powerbi.PrivilegeStatus = await this.downloadService.exportStatus();
                if (status === powerbi.PrivilegeStatus.Allowed) {
                    const result = await this.downloadService.exportVisualsContent('aaaaa','a.txt', 'text/plain', 'aa');
                    // handle result
                } else {
                    // handle if the API is not allowed
                }

            } catch (err) {
                //handle error
            }
        }
    }
}

Beaktanden och begränsningar

  • API:et stöds endast i Power BI-tjänst och Power BI Desktop
  • Storleksgränsen för en nedladdad fil är 30 MB.
  • Det här API:et är ett privilegierat API.