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.
Notitie
De API voor het downloaden van bestanden heeft drie methoden:
exportVisualsContent
is beschikbaar via API-versie 4.5status
is beschikbaar via API-versie 4.6.exportVisualsContentExtended
is beschikbaar via API-versie 5.3.- Als u wilt achterhalen welke versie u gebruikt, controleert u het
apiVersion
bestand in het pbiviz.json .
Gebruik de API voor het downloaden van bestanden om te exporteren naar bestanden van de volgende typen:
- .txt
- .Csv
- .Json
- .tmplt
- .xml
- .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.
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:
- status: beschikbaar via API-versie 4.6
exportVisualsContent
: beschikbaar via API-versie 4.5exportVisualsContentExtended
: beschikbaar via API-versie 5.3.
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 zijnbase64
- 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 zijnbase64
- 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.