Vous devrez générer le côté serveur de fichiers Excel, puis envoyer les octets au client en utilisant le MIME approprié tapez de sorte que le client puisse comprendre comment l'ouvrir.
Quelque chose comme ça ...
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", fileName));
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.BinaryWrite(bytes);
où fileName
est le nom que vous voulez pour le fichier et bytes
est la sortie de votre générateur Excel sous forme byte[]
. Notez que cela ne force pas vraiment Excel ouvert ou quelque chose comme ça, il présente juste le contenu au client dans le meilleur format possible pour le client de l'ouvrir en Excel. L'utilisateur devra cliquer sur "ouvrir" et s'ils ont excel installé, ce sera l'application par défaut pour ouvrir le fichier.
Si le client n'a pas excel, ou que leurs types MIME ne sont pas mappés, etc., cela ne fonctionnera pas. Sans un vaudou activx fou (que je ne recommande pas), vous n'allez pas pouvoir "ouvrir exceller pour eux".
1 - C'est le meilleur que vous pouvez faire –
Note de côté, COM Interop avec les DLL de bureau est un très mauvais moyen de générer des fichiers Excel sur un serveur. En outre, Office n'est pas vraiment autorisé pour cette utilisation de toute façon. Je recommande fortement une bibliothèque comme NPOI ou ExcelLibrary pour générer vos fichiers. – Brook
Cela a été documenté dans [Considérations pour l'automatisation côté serveur d'Office - KB 257757] (http://support.microsoft.com/kb/257757). –