Bonjour,
j'au une service qui me retourne un un fichier excel en format binaire,
A partir d'un bouton Export, je souhaite le récupérer via angular 4 et le télécharger en fichier Excel sur le disque
des idées svp je suis perdu :(
merci
Version imprimable
Bonjour,
j'au une service qui me retourne un un fichier excel en format binaire,
A partir d'un bouton Export, je souhaite le récupérer via angular 4 et le télécharger en fichier Excel sur le disque
des idées svp je suis perdu :(
merci
Tu ne peux pas écrire sur le disque depuis le navigateur.
Il te faut donc ouvrir le fichier dans un nouvel onglet, le navigateur donnera alors la main à l'utilisateur pour ouvrir directement le fichier dans son tableur ou pour l'enregistrer sur son disque.
Ça se fait en passant un Blob à URL.createObjectURL qui retourne une url que tu vas ouvrir assez classiquement via window.open. Reste à "Angulariser" tout ça.
oui effectivement,
mais le problème c'est qu'il me télécharge le fichier au format binaire :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 onSubmit() { this.aService.getExportExcel() .subscribe(res => { this.downloadFile(res); } ); } downloadFile(data: any) { let parsedResponse = data.text(); let blob = new Blob([parsedResponse], { type: 'text/csv' }); let url = window.URL.createObjectURL(blob); if(navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, 'export.csv'); } else { let a = document.createElement('a'); a.href = url; a.download = 'export.csv'; document.body.appendChild(a); a.click(); document.body.removeChild(a); } window.URL.revokeObjectURL(url); }
Pièce jointe 350377
comment transformé le binaire en excel file svp ?
Ben ça ça dépend de ton endpoint. Quel est le type du fichier retourner par ton webservice ?
Si c'est .xls le bon content-type c'est application/vnd.ms-excel et pas text/csv.
A mon avis tu lui demandes d’interpréter un xls (au format proprio) comme un csv (du texte donc). D'où le bordel à l'arrivée.
Merci pour votre réponse,
le type du fichier retourner par mon webservice c'est un tableau binaire : byte[]