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.
Kommentar
API:et för filnedladdning har tre metoder:
exportVisualsContent
är tillgängligt från API version 4.5status
ä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
- .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.
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:
- status: tillgänglig från API version 4.6
exportVisualsContent
: tillgänglig från API version 4.5exportVisualsContentExtended
: tillgänglig från API version 5.3.
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
varabase64
- 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
varabase64
- 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.