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

StackOverflow https://stackoverflow.com/questions/201355

Question

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

Tout cela fonctionne correctement sauf si Excel est déjà ouvert lors du téléchargement d'une feuille de calcul. 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 n'est déverrouillé que si l'utilisateur se déconnecte de l'application Web ou télécharge un fichier d'un type différent.

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

J'ai également essayé de suivre les étapes décrites dans cette réponse (sous la forme référence liée indique" Ce problème a été résolu dans Excel 2007 version 2 ") sans aucune chance.

Existe-t-il une étape "d'élimination" que je ne fais pas actuellement et qui empêcherait Excel de rester suspendue?

Versions:

Excel 2003 (11.8220.8221) SP3

IE 7.0.5730.11 (versions de mise à jour: 0)

Était-ce utile?

La solution 2

Suite à La réponse de Robert , la ligne de code (Java) suivante corrige ce problème, car elle empêche le blocage d’Excel:

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

[NB 'réponse' est un HttpServletResponse]

Cependant, il force le chargement de la feuille de calcul dans une fenêtre Excel plutôt que de l'afficher dans le IFrame ...

Mise à jour: La réinitialisation de l'URL de l'IFrame à blanc force la suppression de l'instance Excel et corrige ce problème (sans nécessiter la modification Content-Disposition ).

Autres conseils

Je ne suis pas sûr que cela aide mais ...

J'ai eu un problème similaire (générer du contenu CSV à la volée) il y a longtemps et tout ce dont je me souviens, c'est qu'il devait faire quelque chose avec les bonnes méthodes Response appelées. Le code ressemblait à ceci


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(); 

Malheureusement, ceci est complètement hors de votre portée. Cela dépend vraiment de la version d’ excel et des mises à jour qui ont été appliquées.

Avez-vous été en mesure de reproduire ce problème dans votre propre environnement? Sinon, cela peut être un problème sur l'ordinateur du client. Pourriez-vous trouver les options installées ou non, 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 par la suite.

J'examinerais également les problèmes de clôture d'iFrame. Pour tester cette théorie, vous pouvez poster l'iframe sur une nouvelle page (sans iframes), puis renvoyer un lien vers une page contenant des iframes et le fichier Excel? Je suis conscient que cette solution ne fonctionnera probablement pas pour vous, mais elle devrait vous aider à éliminer s'il s'agit d'un bogue excellent, IE7 ou le code iframe.

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 traquer?

Le lien que vous avez fourni concerne plusieurs moniteurs. J'ai également plusieurs moniteurs lorsque j'arrête mon ordinateur portable et j'ai constaté qu'un certain nombre d'applications ne répondaient pas bien. Par exemple, si une application tente d'ouvrir une boîte de dialogue modale dans un espace de bureau qui n'existe plus (par exemple, sur mon "deuxième moniteur" après l'ouvrage de mon ordinateur portable), l'application sera verrouillée ne peut pas aller à la boîte. Serait-ce ce qui se passe ici?

Un autre problème potentiel se produit si vous demandez à l'utilisateur une sorte d'authentification lorsqu'il récupère le fichier Excel. Sur notre site SharePoint, Excel demande à l'utilisateur de s'authentifier. Si cette boîte de dialogue d'authentification modale est en quelque sorte repoussée à l'arrière-plan, il peut être impossible de revenir au premier plan. Le seul moyen est de tuer le processus ou de fermer le navigateur sharepoint, car cela met fin à la demande du fichier.

J'espère que cela vous aidera, et si l'un ou l'autre vous donne plus d'indices, affichez-les ici et nous réglerons le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top