Come posso impedire che Excel 2003 si blocchi dopo aver aperto un foglio di calcolo in Internet Explorer?

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

Domanda

Ho un'applicazione web che fornisce file Excel tramite Internet Explorer 7. Richiede i file con un HTTP GET da un URL che restituisce i dati con un tipo di contenuto di 'application / vnd.ms-excel'. Quindi apre i fogli di calcolo in un IFrame.

Tutto funziona bene a meno che Excel non sia già aperto quando viene scaricato un foglio di calcolo. In questo caso è ancora visualizzato correttamente ma riutilizza l'istanza di Excel che è aperta. Quando l'IFrame è chiuso, Excel si blocca. Excel viene sbloccato solo se l'utente si disconnette dall'applicazione Web o se scarica un file di tipo diverso.

Ho provato ad attivare l'impostazione "Ignora altre applicazioni" in Strumenti | Opzioni | Generale ma non ha risolto il problema.

Ho anche provato a seguire i passaggi in questa risposta (come riferimento collegato dice" Questo problema è stato risolto in Excel 2007 beta 2. ") senza fortuna.

Esiste una sorta di passaggio di "smaltimento" che non sto attualmente facendo che impedirebbe ad Excel di bloccarsi?

Versioni:

Excel 2003 (11.8220.8221) SP3

IE 7.0.5730.11 (versioni di aggiornamento: 0)

È stato utile?

Soluzione 2

In seguito a La risposta di Robert , la seguente riga di codice (Java) risolve questo problema, in quanto impedisce ad Excel di bloccarsi:

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

[NB 'response' è un HttpServletResponse]

Tuttavia, impone che il foglio di calcolo venga caricato in una finestra di Excel anziché essere visualizzato nell'IFrame ...

Aggiornamento: la reimpostazione dell'URL di IFrame su vuoto impone l'eliminazione dell'istanza di Excel e risolve questo problema (senza richiedere la modifica Content-Disposition ).

Altri suggerimenti

Non sono sicuro se questo aiuta ma ...

Ho avuto un problema simile (generazione di contenuti CSV al volo) molto tempo fa e tutto ciò che posso ricordare è che doveva fare qualcosa con i metodi di risposta corretti chiamati. Il codice era qualcosa del genere


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

Sfortunatamente, questo è completamente a portata di mano. Dipende molto dalla versione di Excel che hanno e dagli aggiornamenti applicati.

Sei stato in grado di riprodurre questo problema nel tuo ambiente? In caso contrario, potrebbe trattarsi di un problema sul computer del client. C'è un modo per scoprire quali opzioni sono state o non sono state installate o se Excel è stato mantenuto con le sue patch?

Mi sembra che l'ufficio stesso debba essere reinstallato, se non dopo IE 7.

Vorrei anche esaminare eventuali problemi di chiusura di iFrame. Per testare questa teoria, potresti pubblicare l'iframe in una nuova pagina (senza iframe) e quindi ricollegarti a una pagina con iframe e il file Excel? Mi rendo conto che probabilmente non sarà una soluzione funzionante per te, ma dovrebbe aiutarti a eliminare se è Excel, IE7 o il codice iframe con un bug.

È qualcosa che sei in grado di riprodurre o è stato segnalato da un cliente e stai cercando di dargli la caccia?

Il link che hai fornito riguarda più monitor: ho anche più monitor quando aggancio il mio laptop e ho riscontrato che alcune applicazioni non rispondono bene. Ad esempio, se un'applicazione tenta di aprire una finestra di dialogo modale in uno spazio desktop che non esiste più (ad esempio, sul mio "secondo monitor" dopo aver collegato il mio laptop), bloccherà l'applicazione poiché non riesco ad arrivare alla scatola. Potrebbe essere quello che sta succedendo qui?

Un altro potenziale problema si verifica se stai chiedendo all'utente un qualche tipo di autenticazione quando ottiene il file Excel. Sul nostro sito sharepoint, Excel vuole che l'utente esegua l'autenticazione e se la finestra di dialogo di autenticazione modale viene in qualche modo inserita in background, può essere impossibile tornare in primo piano. L'unico modo è se si interrompe il processo o si chiude il browser sharepoint, poiché in questo modo si termina la richiesta del file

Spero che questo aiuti, e se uno di questi ti dà qualche indizio in più, pubblicali qui e lo risolveremo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top