Interfejs API pobierania plików
Interfejs API pobierania plików umożliwia użytkownikom pobieranie danych z wizualizacji niestandardowej do pliku na urządzeniu magazynowym. Pobranie wizualizacji wymaga zgody użytkownika i uprawnienia administratora udostępnionego w przełączniku globalnym administratora. To ustawienie jest oddzielone od ograniczeń pobierania zastosowanych w ustawieniach eksportowania i udostępniania dzierżawy w organizacji.
Uwaga
Interfejs API pobierania plików ma trzy metody:
exportVisualsContent
jest dostępny z interfejsu API w wersji 4.5status
jest dostępny w wersji 4.6 interfejsu API.exportVisualsContentExtended
jest dostępny w wersji 5.3 interfejsu API.- Aby dowiedzieć się, której wersji używasz, sprawdź
apiVersion
plik pbiviz.json .
Użyj interfejsu API pobierania plików, aby wyeksportować do plików następujących typów:
- txt
- .Csv
- .Json
- .tmplt
- xml
- .xlsx
Przed rozpoczęciem pobierania zostanie wyświetlone okno z prośbą o potwierdzenie, że wizualizacja pochodzi z zaufanego źródła.
Jak używać interfejsu API pobierania plików
Aby użyć interfejsu API pobierania plików, dodaj deklarację do tablicy uprawnień w funkcjach wizualizacji.
Interfejs API pobierania plików ma trzy metody:
- status: dostępny z interfejsu API w wersji 4.6
exportVisualsContent
: dostępny z interfejsu API w wersji 4.5exportVisualsContentExtended
: dostępny z interfejsu API w wersji 5.3.
Różnica między dwiema metodami jest wartością zwracaną.
Metoda status
Metoda status zwraca stan interfejsu API pobierania pliku:
- PrivilegeStatus.DisabledBy Administracja: przełącznik administratora dzierżawy jest wyłączony
- PrivilegeStatus.NotDeclared: wizualizacja nie ma deklaracji dla magazynu lokalnego w tablicy uprawnień
- PrivilegeStatus.NotSupported: interfejs API nie jest obsługiwany. Aby uzyskać więcej informacji, zobacz ograniczenia .
- PrivilegeStatus.Allowed: interfejs API jest obsługiwany i dozwolony.
Metoda exportVisualsContent
Metoda exportVisualsContent
ma cztery parametry:
- zawartość: ciąg
- nazwa pliku: ciąg
- fileType: ciąg — podczas eksportowania do pliku
fileType
.pdf lub .xlsx parametr powinien mieć wartośćbase64
- fileDescription: ciąg
Ta metoda zwraca obietnicę, która zostanie rozpoznana dla wartości logicznej.
Metoda exportVisualsContentExtended
Metoda exportVisualsContentExtended
ma również cztery parametry:
- zawartość: ciąg
- nazwa pliku: ciąg
- fileType: ciąg — podczas eksportowania do pliku
fileType
.pdf lub .xlsx parametr powinien mieć wartośćbase64
- fileDescription: ciąg
Ta metoda zwraca obietnicę, która zostanie rozpoznana z wynikiem typu ExportContentResultInfo
zawierającego następujące parametry:
- downloadCompleted — jeśli pobieranie zostało ukończone pomyślnie.
- nazwa pliku — wyeksportowana nazwa pliku.
Przykład: interfejs API pobierania plików
Oto przykład pobierania zawartości wizualizacji niestandardowej do pliku programu Excel i pliku tekstowego.
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
}
}
}
}
Rozważania i ograniczenia
- Interfejs API jest obsługiwany tylko w usługa Power BI i programie Power BI Desktop
- Limit rozmiaru pobranego pliku wynosi 30 MB.
- Ten interfejs API jest uprzywilejowanym interfejsem API.