API de téléchargement de fichier
L’API de téléchargement de fichier permet aux utilisateurs de télécharger des données à partir d’un visuel personnalisé dans un fichier sur leur appareil de stockage. Le téléchargement d’un visuel nécessite le consentement de l’utilisateur et l’autorisation de l’administrateur fournie dans le switch global d’administration. Ce paramètre est distinct et n’est pas affecté par les restrictions de téléchargement appliquées dans les paramètres Exportation et partage de votre locataire.
Remarque
L’API de téléchargement de fichiers comporte trois méthodes :
exportVisualsContent
est disponible à partir de la version 4.5 de l’API.status
est disponible à partir de la version 4.6 de l’API.exportVisualsContentExtended
est disponible à partir de la version 5.3 de l’API.- Pour savoir quelle version vous utilisez, consultez le
apiVersion
fichier pbiviz.json .
Utilisez l’API de téléchargement de fichiers pour exporter vers des fichiers des types suivants :
- .txt
- .csv
- .json
- .tmplt
- .xml
- .xlsx
Avant le début du téléchargement, une fenêtre s’affiche et vous invite à confirmer que le visuel provient d’une source approuvée.
Comment utiliser l’API de téléchargement de fichier
Pour utiliser l’API de téléchargement de fichiers, ajoutez une déclaration au tableau de privilèges dans les fonctionnalités des visuels.
L’API de téléchargement de fichiers comporte trois méthodes :
- status : disponible à partir de la version 4.6 de l’API.
exportVisualsContent
: disponible à partir de la version 4.5 de l’APIexportVisualsContentExtended
: disponible à partir de la version 5.3 de l’API.
La différence entre les deux méthodes est la valeur de retour.
Méthode status
La méthode status retourne l’état de l’API de téléchargement de fichiers :
- PrivilegeStatus.DisabledByAdmin : le commutateur d’administration du tenant est désactivé.
- PrivilegeStatus.NotDeclared : le visuel n’est pas lié à une déclaration de stockage local dans le tableau de privilèges.
- PrivilegeStatus.NotSupported : l’API n’est pas prise en charge. Consultez les limitations pour en savoir plus.
- PrivilegeStatus.Allowed : l’API est prise en charge et autorisée.
Méthode exportVisualsContent
La méthode exportVisualsContent
a quatre paramètres :
- content : chaîne
- filename : chaîne
- fileType : chaîne ; lors de l’exportation vers un fichier .pdf ou .xlsx, le paramètre
fileType
doit êtrebase64
- fileDescription : chaîne
Cette méthode retourne une promesse qui sera résolue en valeur booléenne.
Méthode exportVisualsContentExtended
La méthode exportVisualsContentExtended
a aussi quatre paramètres :
- content : chaîne
- filename : chaîne
- fileType : chaîne ; lors de l’exportation vers un fichier .pdf ou .xlsx, le paramètre
fileType
doit êtrebase64
- fileDescription : chaîne
Cette méthode retourne une promesse qui sera résolue avec un résultat de type ExportContentResultInfo
qui contient les paramètres suivants :
- downloadCompleted : si le téléchargement s’est terminé avec succès.
- filename : nom du fichier exporté.
Exemple : API de téléchargement de fichier
Voici un exemple de téléchargement du contenu d’un visuel personnalisé dans un fichier Excel et un fichier texte.
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
}
}
}
}
Considérations et limitations
- L’API est prise en charge uniquement dans le service Power BI et Power BI Desktop
- La limite de taille d’un fichier téléchargé est de 30 Mo.
- Cette API est une API privilégiée.