Rozhranie API na stiahnutie súboru
Rozhranie API na stiahnutie súboru umožňuje používateľom sťahovať údaje z vlastného vizuálu do súboru vo svojom úložisku. Stiahnutie vizuálu si vyžaduje súhlas používateľa a povolenie správcu uvedené v globálnom prepínači správcu. Toto nastavenie je oddelené od a nie je ovplyvnené obmedzeniami sťahovania použitými v nastaveniach nájomníka exportu a zdieľania vo vašej organizácii.
Poznámka
Rozhranie API sťahovania súborov má tri spôsoby:
exportVisualsContent
je k dispozícii od rozhrania API verzie 4.5status
je k dispozícii od rozhrania API verzie 4.6.exportVisualsContentExtended
je k dispozícii od rozhrania API verzie 5.3.- Ak chcete zistiť, ktorú verziu používate, pozrite si
apiVersion
pbiviz.json súbore.
Rozhranie API na stiahnutie súboru použite na export do súborov nasledujúcich typov:
- .txt
- .Csv
- .Json
- .tmplt
- .xml
- .xlsx
Skôr než začne sťahovanie, zobrazí sa okno s požiadavkou na potvrdenie toho, či vizuál pochádza z dôveryhodného zdroja.
Ako používať rozhranie API na stiahnutie súboru
Ak chcete použiť rozhranie API na stiahnutie súboru, pridajte deklaráciu do poľa oprávnení v možnostiach vizuálu.
Rozhranie API sťahovania súborov má tri spôsoby:
- status: dostupné od rozhrania API verzie 4.6
exportVisualsContent
: dostupné od rozhrania API verzie 4.5exportVisualsContentExtended
: k dispozícii od rozhrania API verzie 5.3.
Rozdiel medzi týmito dvomi metódami je vrátená hodnota.
Metóda status
Metóda status vracia stav rozhrania API na stiahnutie súboru:
- PrivilegeStatus.DisabledBy Spravovanie: prepínač správcu nájomníka je vypnutý
- PrivilegeStatus.NotDeclared: vizuál nemá žiadnu deklaráciu pre lokálne úložisko v poli oprávnenia
- PrivilegeStatus.NotSupported: rozhranie API nie je podporované. Ďalšie informácie nájdete v téme Obmedzenia .
- PrivilegeStatus.Allowed: rozhranie API je podporované a povolené.
Metóda exportVisualsContent
Metóda exportVisualsContent
má štyri parametre:
- content: reťazec
- názov súboru: reťazec
- fileType: string (typ súboru): reťazec – pri exporte do .pdf alebo .xlsx súboru
fileType
by mal byť parameterbase64
- fileDescription: reťazec
Táto metóda vráti prísľub, ktorý bude vyriešený pre booleovskú hodnotu.
Metóda exportVisualsContentExtended
Metóda exportVisualsContentExtended
má tiež štyri parametre:
- content: reťazec
- názov súboru: reťazec
- fileType: string (typ súboru): reťazec – pri exporte do .pdf alebo .xlsx súboru
fileType
by mal byť parameterbase64
- fileDescription: reťazec
Táto metóda vráti sľub, ktorý sa vyrieši vo výsledku typu ExportContentResultInfo
, ktorý obsahuje nasledujúce parametre:
- DownloadCompleted – ak sa sťahovanie úspešne dokončilo.
- filename – názov exportovaného súboru.
Príklad: Rozhranie API na stiahnutie súboru
Tu je príklad toho, ako stiahnuť obsah vlastného vizuálu do excelového súboru a textového súboru.
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
}
}
}
}
Dôležité informácie a obmedzenia
- Rozhranie API je podporované len v aplikáciách služba Power BI a Power BI Desktop.
- Limit veľkosti pre stiahnutý súbor je 30 MB.
- Toto rozhranie API je privilegované rozhranie API.