Share via


API voor het downloaden van bestanden

Met de API voor het downloaden van bestanden kunnen gebruikers gegevens downloaden van een aangepaste visual naar een bestand op hun opslagapparaat. Voor het downloaden van een visual zijn gebruikerstoestemming en beheerdersmachtigingen vereist die zijn opgegeven in de globale switch van de beheerder. Deze instelling is gescheiden van en wordt niet beïnvloed door downloadbeperkingen die zijn toegepast in de instellingen voor exporteren en delen van tenants van uw organisatie.

Schermopname van de beheerdersinstelling voor het inschakelen van aangepaste visualdownloads.

Notitie

De API voor het downloaden van bestanden heeft drie methoden:

Gebruik de API voor het downloaden van bestanden om te exporteren naar bestanden van de volgende typen:

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

Voordat het downloaden begint, wordt er een venster weergegeven waarin wordt gevraagd om te bevestigen dat de visual afkomstig is van een vertrouwde bron.

Schermopname waarin wordt gevraagd om het downloaden alleen te bevestigen als deze afkomstig is van een vertrouwde bron.

De API voor het downloaden van bestanden gebruiken

Als u de API voor het downloaden van bestanden wilt gebruiken, voegt u een declaratie toe aan de bevoegdhedenmatrix in visuele mogelijkheden.

De API voor het downloaden van bestanden heeft drie methoden:

Het verschil tussen de twee methoden is de retourwaarde.

De status methode

De statusmethode retourneert de status van de API voor het downloaden van bestanden:

  • PrivilegeStatus.DisabledBy Beheer: de switch van de tenantbeheerder is uitgeschakeld
  • PrivilegeStatus.NotDeclared: de visual heeft geen declaratie voor de lokale opslag in de bevoegdhedenmatrix
  • PrivilegeStatus.NotSupported: de API wordt niet ondersteund. Zie beperkingen voor meer informatie.
  • PrivilegeStatus.Allowed: de API wordt ondersteund en toegestaan.

De exportVisualsContent methode

De exportVisualsContent methode heeft vier parameters:

  • inhoud: tekenreeks
  • bestandsnaam: tekenreeks
  • fileType: tekenreeks : bij het exporteren naar een .pdf - of .xlsx-bestand moet de fileType parameter zijn base64
  • fileDescription: tekenreeks

Deze methode retourneert een belofte die wordt omgezet voor een Booleaanse waarde.

De exportVisualsContentExtended methode

De exportVisualsContentExtended methode heeft ook vier parameters:

  • inhoud: tekenreeks
  • bestandsnaam: tekenreeks
  • fileType: tekenreeks : bij het exporteren naar een .pdf - of .xlsx-bestand moet de fileType parameter zijn base64
  • fileDescription: tekenreeks

Deze methode retourneert een belofte, die wordt opgelost met een resultaat van het type ExportContentResultInfo dat de volgende parameters bevat:

  • downloadCompleted : als het downloaden is voltooid.
  • bestandsnaam : de geëxporteerde bestandsnaam.

Voorbeeld: API voor het downloaden van bestanden

Hier volgt een voorbeeld van het downloaden van de inhoud van een aangepast visueel element in een Excel-bestand en een tekstbestand.

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
            }
        }
    }
}

Overwegingen en beperkingen

  • De API wordt alleen ondersteund in de Power BI-service en Power BI Desktop
  • De groottelimiet voor een gedownload bestand is 30 MB.
  • Deze API is een bevoegde API.