Что мне нужно сделать, чтобы Excel получил доступ к веб-запросу через HTTPS?

Я пытаюсь реализовать страницу, которая позволяет пользователям Excel использовать данные, которые она предоставляет с помощью функции веб-запроса, предоставляемой Excel.

Все работает довольно хорошо, пока я использую HTTP (работает даже BASIC-аутентификация пользователя).

Как только я переключу это на HTTPS, Excel больше не будет загружать данные (это даже полностью официальный сертификат SSL, так что это не проблема с самозаверяющим сертификатом).

Эта статья базы знаний Microsoft в значительной степени описывает проблему.

Теперь часть, которая заставляет меня задаться вопросом, заключается в следующем:

Эта проблема возникает, когда Excel не может инициировать подключение из-за настроек на защищенном веб-сервере.

Кажется, это означает, что есть какой-то способ заставить это работать, но нет даже намека на то, в каком направлении мне нужно смотреть.

Следует ли принимать фразу «из-за настроек защищенного веб-сервера» за чистую монету, или это просто способ Microsoft сказать: «это не сработает, если вы не купите у нас нужное программное обеспечение»?


person Joachim Sauer    schedule 05.02.2010    source источник
comment
Вы пробовали их тест в разделе «Дополнительная информация»?   -  person Matthew Flaschen    schedule 05.02.2010
comment
Да и открыть не смог. Но это действительно не говорит мне ничего нового.   -  person Joachim Sauer    schedule 05.02.2010
comment
Я думаю, это может сказать вам, что вам не повезло. Есть ли какие-либо предупреждения, когда вы просматриваете информацию HTTPS в IE?   -  person Matthew Flaschen    schedule 05.02.2010
comment
@Matthew: нет, IE (и все другие браузеры) нормально отображает страницу, без каких-либо предупреждений. Даже почти браузерный диалог, всплывающий в Excel, правильно отображает страницу.   -  person Joachim Sauer    schedule 05.02.2010


Ответы (2)


Кажется, я нашел проблему:

MS Excel, по-видимому, не может использовать данные на странице, если в заголовках HTTP страницы указано, что она не должна кэшироваться и она передается через HTTPS (те же заголовки, отправленные через HTTP, похоже, получают игнорируется).

Таким образом, не отправляя эти заголовки, Excel внезапно смог получить доступ к данным:

Pragma: no-cache
Cache-Control: no-cache
person Joachim Sauer    schedule 05.02.2010
comment
Привет, Иоахим, у меня такая же проблема с Excel 2016, но только на одном компьютере под управлением Windows 10, на другом ПК с той же конфигурацией все работает правильно. У вас есть идеи, как решить эту проблему? Спасибо. - person Ragnar; 24.07.2018
comment
@Ragnar: извините, мне не приходилось работать с этим с тех пор, как я опубликовал этот ответ, поэтому у меня нет дополнительных сведений о том, что я опубликовал выше. - person Joachim Sauer; 25.07.2018

Ответ Иоахима решил проблему для меня. Веб-фреймворк на стороне сервера (PHP5/Expression Engine 1.6.7) отправлял Pragma: no-cache при каждом запросе (даже несмотря на то, что на моей странице результатов веб-запроса был установлен Pragma: public, я думаю, что фреймворк отменил его). Как только я его удалил, все заработало.

Поведение IE и Office для Pragma: no-cache аналогично описанному в статье MS KB: Internet Explorer не может для открытия документов Office с веб-сайта SSL

См. также предупреждение: Pragma no-cache устарела в этом руководстве по кэшированию. Имея это в виду, я установил «Вывод и отладка Expression Engine»> «Создать заголовки HTTP-страницы»? выберите Нет. (Другие фреймворки имеют аналогичные параметры конфигурации). Но некоторые из других автоматически отправляемых заголовков были необходимы для успешного кэширования остальной части сайта, поэтому я решил закомментировать строки Pragma: no-cache в исходном коде фреймворка.

Если у вас нет возможности изменять заголовки HTTP, отправляемые вашим веб-сервером/фреймворком, единственным вариантом на стороне клиента MS-Office будет использование макросов VBA для автоматизации компонента Internet Explorer, чтобы обойти поведение кэширования Office. . См. Различные способы использования веб-запросов в Microsoft Office Excel 2003 в качестве отправной точки. .

person dankingsbury    schedule 23.07.2010