Del via


API til fildownload

Fildownload-API'en gør det muligt for brugerne at downloade data fra en brugerdefineret visualisering til en fil på deres lagerenhed. Download af en visualisering kræver brugersamtykke og administratortilladelse, der er angivet i den globale administratorkontakt. Denne indstilling er adskilt fra og påvirkes ikke af downloadbegrænsninger, der er anvendt i organisationens indstillinger for eksport og deling af lejere.

Skærmbillede af administratorindstilling, der aktiverer downloads af brugerdefinerede visualiseringer.

Bemærk

API'en til fildownload har tre metoder:

Brug API'en til fildownload til at eksportere til filer af følgende typer:

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

Før overførslen begynder, vises der et vindue, hvor du bliver bedt om at bekræfte, at visualiseringen er fra en kilde, der er tillid til.

Skærmbillede, der kun beder om at bekræfte download, hvis det er fra en kilde, der er tillid til.

Sådan bruger du API'en til fildownload

Hvis du vil bruge API'en til fildownload, skal du føje en erklæring til rettighedsmatrixen i visualiseringsfunktioner.

API'en til fildownload har tre metoder:

Forskellen mellem de to metoder er returværdien.

Metoden status

Statusmetoden returnerer status for API'en til fildownload:

  • PrivilegeStatus.DisabledBy Administration: lejeradministratorkontakten er slået fra
  • PrivilegeStatus.NotDeclared: Visualiseringen har ingen erklæring for det lokale lager i rettighedsmatrixen
  • PrivilegeStatus.NotSupported: API'en understøttes ikke. Se begrænsninger for at få flere oplysninger.
  • PrivilegeStatus.Allowed: API'en understøttes og tillades.

Metoden exportVisualsContent

Metoden exportVisualsContent har fire parametre:

  • indhold: streng
  • filnavn: streng
  • fileType: string – Når du eksporterer til en .pdf eller .xlsx fil, fileType skal parameteren være base64
  • fileDescription: streng

Denne metode returnerer et løfte, der fortolkes for en boolesk værdi.

Metoden exportVisualsContentExtended

Metoden exportVisualsContentExtended har også fire parametre:

  • indhold: streng
  • filnavn: streng
  • fileType: string – Når du eksporterer til en .pdf eller .xlsx fil, fileType skal parameteren være base64
  • fileDescription: streng

Denne metode returnerer et løfte, som løses med et resultat af typen ExportContentResultInfo , der indeholder følgende parametre:

  • downloadCompleted – hvis overførslen blev fuldført.
  • filename – det eksporterede filnavn.

Eksempel: API til fildownload

Her er et eksempel på, hvordan du downloader indholdet af en brugerdefineret visualisering til en Excel-fil og en tekstfil.

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

Overvejelser og begrænsninger

  • API'en understøttes kun i Power BI-tjeneste og Power BI Desktop
  • Størrelsesgrænsen for en downloadet fil er 30 MB.
  • Denne API er en privilegeret API.