Как я могу остановить зависание Excel 2003 после открытия электронной таблицы в IE? - PullRequest
1 голос
/ 14 октября 2008

У меня есть веб-приложение, которое предоставляет файлы Excel через IE 7. Оно запрашивает файлы с помощью HTTP GET с URL-адреса, который возвращает данные с типом содержимого «application / vnd.ms-excel». Затем он открывает электронные таблицы в IFrame.

Это все работает нормально, если Excel уже не открыт при загрузке электронной таблицы. В этом случае он по-прежнему отображается правильно, но повторно использует экземпляр Excel, который открыт. Когда IFrame закрыт, Excel зависает. Excel становится разблокированным только в том случае, если пользователь выходит из веб-приложения или загружает файл другого типа.

Я попытался включить параметр «Игнорировать другие приложения» в разделе «Инструменты | Варианты | Общее, но это не решило проблему.

Я также пытался выполнить шаги, описанные в этом ответе (так как ссылка говорит: «Эта проблема была решена в Excel 2007 beta 2.»), но безуспешно.

Есть ли какой-то шаг "удаления", который я сейчас не выполняю, который бы мешал зависанию Excel?

Версия:

Excel 2003 (11.8220.8221) SP3

IE 7.0.5730.11 (версии обновления: 0)

Ответы [ 5 ]

1 голос
/ 30 января 2009

Не уверен, поможет ли это, но ...

У меня была какая-то похожая проблема (генерация CSV-контента на лету) давным-давно, и все, что я помню, это то, что она должна была что-то делать с правильными вызываемыми методами Response. Код был примерно таким


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

1 голос
/ 30 января 2009

В дополнение к ответу Роберта следующая строка кода (Java) устраняет эту проблему, поскольку предотвращает зависание Excel:

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

[NB 'ответ' является HttpServletResponse]

Однако, это заставляет электронную таблицу загружаться в окно Excel, а не отображаться в IFrame ...

Обновление: Сброс URL-адреса IFrame до пустого значения приводит к удалению экземпляра Excel и устранению этой проблемы (без необходимости изменения Content-Disposition).

0 голосов
/ 30 января 2009

Это то, что вы можете воспроизвести, или это что-то, о чем вам сообщает клиент, и вы пытаетесь выследить это?

Ссылка, которую вы предоставили, относится к нескольким мониторам - у меня также есть несколько мониторов, когда я подключаю свой ноутбук, и я обнаружил, что ряд приложений плохо реагируют. Например, если приложение пытается открыть модальное диалоговое окно в пространстве рабочего стола, которого больше нет (например, на моем «втором мониторе» после того, как я открепил свой ноутбук), оно заблокирует приложение, так как я могу не добраться до коробки. Может ли это быть тем, что здесь происходит?

Другая потенциальная проблема возникает, если вы запрашиваете у пользователя какую-то аутентификацию при получении файла Excel. На нашем сайте sharepoint Excel хочет, чтобы пользователь прошел аутентификацию, и если этот диалог модальной аутентификации каким-то образом отодвинется на задний план, может оказаться невозможным снова выйти на передний план. Единственный способ - если вы убьете процесс или закроете браузер sharepoint, так как это в первую очередь завершит запрос файла.

Надеюсь, что это поможет, и если любой из них даст вам больше подсказок, опубликуйте их здесь, и мы решим это.

0 голосов
/ 27 января 2009

Удалось ли воспроизвести эту проблему в вашей собственной среде? Если нет, это может быть проблема на компьютере клиента. Есть ли какой-нибудь способ узнать, какие опции были или не установлены, или если Excel поддерживал свои исправления?

Мне кажется, что сам офис необходимо переустановить, если не IE 7 после этого.

Я бы также рассмотрел любые вопросы закрытия iFrame. Чтобы проверить эту теорию, вы можете опубликовать iframe на новой странице (без iframes), а затем сделать ссылку на страницу с iframe и файлом excel? Я понимаю, что, вероятно, это не будет для вас рабочим решением, но оно должно помочь вам избежать ошибок, будь то Excel, IE7 или код iframe с ошибкой.

0 голосов
/ 14 октября 2008

К сожалению, это полностью не в ваших руках. Это действительно зависит от того, какая у них версия Excel и какие обновления были применены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...