Comment puis-je empêcher Excel 2003 de suspendre après avoir ouvert une feuille de calcul dans IE?

J'ai une application Web qui fournit des files Excel via IE 7. Elle request les files avec un HTTP GET à partir d'une URL qui renvoie datatables avec un type de contenu de 'application / vnd.ms-excel'. Il ouvre ensuite les feuilles de calcul dans un IFrame.

Tout fonctionne bien sauf si Excel est déjà ouvert lorsqu'une feuille de calcul est téléchargée. Dans ce cas, il est toujours affiché correctement, mais réutilise l'instance d'Excel qui est ouverte. Lorsque l'IFrame est fermé, Excel se bloque. Excel ne devient déverrouillé que si l'user se déconnecte de l'application Web ou s'il télécharge un file d'un type différent.

J'ai essayé d'activer le paramètre 'Ignorer d'autres applications' dans devises | Options | Général, mais cela n'a pas résolu le problème.

J'ai également essayé de suivre les étapes de cette réponse (car la reference liée indique «Ce problème a été abordé dans Excel 2007 beta 2.») sans chance.

Y a-t-il une sorte d'étape d'élimination que je ne fais pas actuellement, ce qui empêcherait l'export de Excel?

Versions:

Excel 2003 (11.8220.8221) SP3

IE 7.0.5730.11 (mises à jour des versions: 0)

Je ne sais pas si cela aide mais …

J'ai eu un problème similaire (générer du contenu CSV à la volée) il y a longtime et tout ce que je me souviens, c'est qu'il fallait faire quelque chose avec les methods de réponse correctes appelées. Le code était quelque chose comme ça

Response.Clear(); Response.Buffer = true; Response.AppendHeader("Content-Disposition", "attachment; filename=export.csv"); Response.Cache.SetCacheability(HttpCacheability.Private); Response.Cache.SetExpires(DateTime.MinValue); Response.Cache.SetLastModified(DateTime.Now); Response.Cache.SetMaxAge(new TimeSpan(1)); Response.ContentType = "text/csv"; Response.ContentEncoding = System.Text.Encoding.Unicode; ... //Some writing to the Response.OutputStream ... Response.Flush(); //I am not sure about the following line: Response.End(); 

Suite à la réponse de Robert , la ligne de code (Java) suivante corrige ce problème, en ce sens qu'il empêche l'émission de Excel:

 response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); 

[NB 'réponse' est une HttpServletResponse]

Cependant, cela oblige la feuille de calcul à charger dans une window Excel plutôt que d'être affichée dans l'IFrame …

Mise à jour: la réinitialisation de l'URL de l'IFrame en blanc oblige l'instance Excel à être éliminée et corrige ce problème (sans nécessiter le changement Content-Disposition ).

Malheureusement, cela est complètement hors de vos mains. Cela dépend vraiment de la version d'excel et des mises à jour appliquées.

Avez-vous pu reproduire ce problème dans votre propre environnement? Dans le cas contraire, il peut s'agir d'un problème sur l'ordinateur du client. Existe-t-il une façon de savoir quelles options ont été ou ont été installées, ou si Excel a été maintenu avec ses correctifs?

Il me semble que le bureau lui-même doit être réinstallé, sinon IE 7 après cela.

Je voudrais également examiner les problèmes de fermeture d'iFrame. Pour tester cette théorie, vous pouvez publier l'iframe dans une nouvelle page (sans iframes), puis relier une page aux iframes et au file excel? Je me rends count que probablement ne sera pas une solution de travail pour vous, mais cela devrait vous aider à éliminer s'il s'agit d'Excel, IE7 ou le code iframe ayant un bug.

Est-ce quelque chose que vous pouvez reproduire, ou est-ce que quelque chose vous est signalé par un client et que vous essayez de le faire tomber?

Le lien que vous avez fourni traite de plusieurs moniteurs – J'ai plusieurs moniteurs aussi bien quand je quitte mon ordinateur portable, et j'ai trouvé un certain nombre d'applications ne répondent pas bien. Par exemple, si une application tente d'ouvrir une boîte de dialog modale dans un espace de bureau qui n'existe plus (par exemple, sur mon «second moniteur» après avoir mis à jour mon ordinateur portable), il verrouillera l'application car je peux Je vais à la boîte. Cela pourrait-il être ce qui se passe ici?

Un autre problème potentiel se produit si vous requestz à l'user une sorte d'authentification lorsqu'ils obtiennent le file Excel. Sur notre site sharepoint, Excel veut que l'user s'authentifie, et si cette boîte de dialog d'authentification modale est en partie enfoncée, il est impossible d'accéder à l'avant. La seule façon est de tuer la procédure ou si vous fermez le browser sharepoint, puisqu'il met fin à la request pour le file en premier lieu.

J'espère que cela vous aidera, et si l'un d'entre eux vous donne plus d'indices, postz-les ici et nous allons résoudre ce problème.