J'ai la fonction suivante qui exporte un fichier HTML vers Excel:
function generateexcel(tableid) {
var table= document.getElementById(tableid);
var html = table.outerHTML;
window.open('data:application/vnd.ms-Excel,' + encodeURIComponent(html));
}
Le problème est que, je ne peux pas mettre un nom de fichier spécifique à sauvegarder car l'utilisateur obtient quelque chose comme:
Voulez-vous enregistrer le fichier% 3Ctable% 20id% 3D% 22tableRslts% 22% 20tabindex% 3D% 2235% 22% 20?
Et le fichier sauvegardé est comme:
IytvT8Jo.xls.part.xls
(au moins dans Firefox qui est le navigateur cible que nous utiliserons)
Comment régleriez-vous cela?
Vous pouvez examiner deux options:
Je ne sais pas si vous l'avez déjà fait. Vous pourriez avoir besoin de gérer quelque chose comme ceci ci-dessous dans votre page aspx:
$(window).load(function(){
$( "#clickExcel" ).click(function() {
var dtltbl = $('#dtltbl').html(); `enter code here`
window.open('data:application/vnd.ms-Excel,' + $('#dtltbl').html());
});
});//]]>
Dans le script ci-dessus, #dtltbl est l'identifiant de la table.
Le code suivant doit être présent dans votre code côté serveur, votre problème sera alors résolu.
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.csv");