Del via


Filnedlastings-API

Med API-en for nedlasting av filen kan brukere laste ned data fra et egendefinert visualobjekt til en fil på lagringsenheten. Nedlasting av et visualobjekt krever brukersamtykke og administratortillatelse i den globale administratorbryteren. Denne innstillingen er atskilt fra og ikke påvirket av nedlastingsbegrensninger som brukes i organisasjonens innstillinger for eksport og deling av leier.

Skjermbilde av administratorinnstillingen som aktiverer nedlastinger av egendefinerte visualobjekter.

Merk

Filnedlastings-API-en har tre metoder:

Bruk filnedlastings-API-en til å eksportere til filer av følgende typer:

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

Før nedlastingen begynner, vises et vindu som ber om å bekrefte at visualobjektet er fra en klarert kilde.

Skjermbilde som ber om å bekrefte nedlastingen bare hvis den er fra en klarert kilde.

Slik bruker du filnedlastings-API-en

Hvis du vil bruke filnedlastings-API-en, legger du til en deklarasjon i rettighetsmatrisen i visuelle funksjoner.

Filnedlastings-API-en har tre metoder:

Forskjellen mellom de to metodene er returverdien.

Metoden status

Statusmetoden returnerer statusen for filnedlastings-API-en:

  • PrivilegeStatus.DisabledByAdmin: bryteren for leieradministrator er slått av
  • PrivilegeStatus.NotDeclared: visualobjektet har ingen deklarasjon for den lokale lagringsplassen i rettighetsmatrisen
  • PrivilegeStatus.NotSupported: API-en støttes ikke. Se begrensninger for mer informasjon.
  • PrivilegeStatus.Allowed: API-en støttes og tillates.

Metoden exportVisualsContent

Metoden exportVisualsContent har fire parametere:

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

Denne metoden returnerer et løfte som vil bli løst for en boolsk verdi.

Metoden exportVisualsContentExtended

Metoden exportVisualsContentExtended har også fire parametere:

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

Denne metoden returnerer et løfte, som vil bli løst med et resultat av typen ExportContentResultInfo som inneholder følgende parametere:

  • downloadCompleted – hvis nedlastingen er fullført.
  • filnavn – det eksporterte filnavnet.

Eksempel: filnedlasting av API

Her er et eksempel på hvordan du laster ned innholdet i et egendefinert visualobjekt 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
            }
        }
    }
}

Hensyn og begrensninger

  • API-en støttes bare i Power Bi-tjeneste og Power BI Desktop
  • Størrelsesgrensen for en nedlastet fil er 30 MB.
  • Denne API-en er en privilegert API.