API pengunduhan file
API unduhan file memungkinkan pengguna mengunduh data dari visual kustom ke dalam file di perangkat penyimpanan mereka. Mengunduh visual memerlukan persetujuan pengguna dan izin admin yang disediakan dalam sakelar global admin. Pengaturan ini terpisah dari dan tidak terpengaruh oleh pembatasan unduhan yang diterapkan dalam pengaturan penyewa ekspor dan berbagi organisasi Anda.
Catatan
API unduhan file memiliki tiga metode:
exportVisualsContent
tersedia dari API versi 4.5status
tersedia dari API versi 4.6.exportVisualsContentExtended
tersedia dari API versi 5.3.- Untuk mengetahui versi mana yang Anda gunakan, periksa
apiVersion
di file pbiviz.json .
Gunakan API unduhan file untuk mengekspor ke file dari jenis berikut:
- .txt
- .csv
- .json
- .tmplt
- .xml
- .xlsx
Sebelum unduhan dimulai, jendela muncul meminta untuk mengonfirmasi bahwa visual berasal dari sumber tepercaya.
Cara menggunakan API unduhan file
Untuk menggunakan API unduhan file, tambahkan deklarasi ke array hak istimewa dalam kemampuan visual.
API unduhan file memiliki tiga metode:
- status: tersedia dari API versi 4.6
exportVisualsContent
: tersedia dari API versi 4.5exportVisualsContentExtended
: tersedia dari API versi 5.3.
Perbedaan antara kedua metode adalah nilai pengembalian.
Metode status
Metode status mengembalikan status API unduhan file:
- PrivilegeStatus.DisabledByAdmin: sakelar admin penyewa nonaktif
- PrivilegeStatus.NotDeclared: visual tidak memiliki deklarasi untuk penyimpanan lokal dalam array hak istimewa
- PrivilegeStatus.NotSupported: API tidak didukung. Lihat batasan untuk informasi selengkapnya.
- PrivilegeStatus.Allowed: API didukung dan diizinkan.
Metode exportVisualsContent
Metode exportVisualsContent
membutuhkan dua parameter:
- konten: string
- nama file: string
- fileType: string - Saat mengekspor ke file .pdf atau .xlsx ,
fileType
parameter harusbase64
- fileDescription: string
Metode ini mengembalikan janji yang akan diselesaikan untuk nilai Boolean.
Metode exportVisualsContentExtended
Metode ini exportVisualsContentExtended
juga memiliki empat parameter:
- konten: string
- nama file: string
- fileType: string - Saat mengekspor ke file .pdf atau .xlsx ,
fileType
parameter harusbase64
- fileDescription: string
Metode ini mengembalikan janji, yang akan diselesaikan dengan hasil jenis ExportContentResultInfo
yang berisi parameter berikut:
- downloadCompleted – jika pengunduhan berhasil diselesaikan.
- filename – nama file yang diekspor.
Contoh: API pengunduhan file
Berikut adalah contoh cara mengunduh konten visual kustom ke dalam file excel dan file teks.
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
}
}
}
}
Pertimbangan dan batasan
- API hanya didukung di desktop layanan Power BI dan Power BI
- Batas ukuran untuk file yang diunduh adalah 30 MB.
- API ini adalah API istimewa.