2008-10-14 2 views
1

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

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

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

Я также пробовал выполнить следующие шаги в this answer (так как linked reference говорит: «Эта проблема была рассмотрена в Excel 2007 beta 2.») без везения.

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

Версии:

Excel 2003 (11.8220.8221) SP3

IE 7.0.5730.11 (Update Versions: 0)

+0

У меня нет ответа, но какая версия Excel? Вы пробовали Excel «Игнорировать другие приложения» в разделе «Инструменты», «Параметры», «Общие»? – 2009-01-29 23:31:45

+0

Я добавил номера версий к вопросу. Я не пробовал эту настройку, я отдам ее. – 2009-01-30 11:10:19

+0

К сожалению, включение параметра «Игнорировать другие приложения» не решило проблему. – 2009-01-30 11:23:01

ответ

1

В дополнение к Robert's answer, следующая строка (Java) код исправляет эту проблему, в том, что он предотвращает Excel от подвешивания:

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

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

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

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

0

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

+0

Можете ли вы указать мне подробную информацию о версии Excel, где исправлена ​​эта проблема (статьи базы знаний и т. Д.)? – 2008-10-14 14:31:57

0

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

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

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

+0

Да. Он воспроизводится в моей среде. Крис Лайвли предположил, что это известная проблема. – 2009-01-27 17:59:35

0

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

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

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

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

1

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

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


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