Загрузка Excel в IE8 делает недействительными ссылки на серии данных диаграммы на именованные диапазоны

Чтобы воссоздать эту проблему:

  1. Создайте книгу Excel (.xlsx). Я использую Excel 2010, но я не уверен, что это имеет значение.

  2. Создайте именованный диапазон.

  3. Создайте диаграмму, которая ссылается на именованный диапазон значений своих рядов данных. Ссылка должна выглядеть примерно так: «workbook.xlsx! NamedRangeName».

  4. Используйте IE8 для загрузки этого файла с веб-сервера. Открыть в Excel (без предварительного сохранения).

Когда вы пытаетесь открыть файл, Excel жалуется на недопустимые ссылки, потому что каким-то образом «workbook.xlsx» был заменен на «http://someUrl/filename.xlsx» в ссылке на именованный диапазон.

Проблема не возникает, если вы сначала сохраняете файл, а не открываете его. Это также не происходит в IE9 или Firefox.

Я подозреваю, что это связано с тем, как IE хранит загруженные файлы.

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


person Todd Gibson    schedule 17.04.2012    source источник
comment
Если вы очистите кеш браузера, будет ли IE8 вести себя так, как вы хотите? Если да, можете ли вы отправить заголовки с файлом Excel, чтобы предотвратить его кеширование (или добавить случайный параметр строки запроса в ссылку браузера, чтобы сделать то же самое)?   -  person Tim Williams    schedule 18.04.2012
comment
@Tim Я упомянул о кэшировании загруженных файлов, но на самом деле я имел в виду только то, как они загружаются для открытия (в отличие от сохранения). Я не имел в виду, что файл кэшируется, а затем перезагружается из кеша при последующих загрузках. Я отредактировал свой вопрос, чтобы уточнить.   -  person Todd Gibson    schedule 18.04.2012
comment
Работает нормально, если вы сначала сохраните файл, а не откроете его. Разве это не ответ на ваш вопрос? Я думаю, что это соответствует лучшим практикам, даже если это не сломается в других браузерах.   -  person Jon Peltier    schedule 01.05.2012
comment
@Jon, это не полностью ответило на мой вопрос, потому что файлы загружают пользователи приложения, и мне неразумно говорить им, что они должны сначала сохранить файл. Тем не менее, это указало мне на обходной путь. Я добавлю это как ответ.   -  person Todd Gibson    schedule 02.05.2012
comment
@ToddGibson Вопрос слишком расплывчатый, похоже, вы вставили задание прямо в поле вопроса ... пожалуйста, отредактируйте свой вопрос, исключив ненужную информацию, такую ​​как работа с именованными диапазонами.   -  person Oerd    schedule 02.05.2012
comment
@Oerd, я сформулировал вопрос в виде шагов по воспроизведению проблемы, потому что подумал, что это будет самым ясным - проблема возникает только в очень конкретной ситуации. Повреждение именованных диапазонов вряд ли имеет значение - это проблема. Если у вас есть конкретные предложения по улучшению моего вопроса, пожалуйста, дайте мне знать.   -  person Todd Gibson    schedule 03.05.2012
comment
@ToddGibson: извините, если раньше я казался резким. Я лучше понимаю ваш вопрос после того, что вы только что написали. Я все еще думаю, что может быть какой-то лучший способ сформулировать ваш вопрос (например, объяснить, что шаги для воспроизведения проблемы следуют / использовать пронумерованный список для шагов / и т. д.);)   -  person Oerd    schedule 03.05.2012


Ответы (1)


Обходной путь, который я нашел, заключался в том, чтобы добавить на страницу загрузки:

<!--[if lte IE 8 ]>
<meta name="DownloadOptions" content="noopen" />
<![endif]-->

Это лишает пользователя возможности открыть файл без его предварительного сохранения.

person Todd Gibson    schedule 01.05.2012