我想实现一个页面,让Excel用户通过使用Excel提供的Web查询功能,使用它提供的数据。

这一切都工作了相当好听,只要我使用HTTP(甚至连基本的用户身份验证的作品)。

只要我交换机,到HTTPS Excel将不下载数据了(它甚至完全正式的SSL证书,所以它不是一个问题一个自签名)。

此Microsoft知识库文章非常能说明问题。

现在让我难怪部分是这样的:

  

在Excel无法启动,因为安全Web服务器上设置的连接出现此问题。

这似乎在暗示,存在的一些的方式来得到这个工作,但有没有即使在我需要看的方向提示。

如果该“因为安全Web服务器上的设置”可以在信以为真,或者是它只是一个说:“除非你从我们这里购买合适的软件,这是不行的”微软呢?

有帮助吗?

解决方案

看来我已经找到了问题:

MS Excel中似乎是无法使用网页上的数据,如果在网页的HTTP标头指定它不应该是高速缓存它经由HTTPS转移(通过HTTP发送的相同标头似乎得到忽略)。

因此,通过的不可以发送这些头时,Excel突然能够访问数据:

Pragma: no-cache
Cache-Control: no-cache

其他提示

勒夫的回答解决了这个问题对我来说。服务器端的Web框架(PHP5 /表达式引擎1.6.7)将派遣一个杂注:在每次请求无缓存(即使我的网页查询结果页面中设置杂注:公开,我猜框架推翻它)。一旦我删除它,一切都开始工作。

IE和用于附注办公室行为:无缓存是类似于 MS KB文章描述:因特网资源管理器无法打开,从一个SSL网站 Office文档

另见本教程的缓存的警告:附注无缓存弃用。考虑到这一点我设置表达式引擎”输出和调试>生成HTTP页眉?选项号(其他框架也有类似的配置选项)。但其他一些自动发送头均需要被成功缓存网站的休息,所以我选择了注释掉杂注:无缓存框架中的源代码行。

如果您还没有修改由Web服务器/框架发送的HTTP标头的选项,只有MS-Office的客户端,唯一的选择将是使用VBA宏来自动的Internet Explorer组件来解决办公室的缓存行为。请参见在Microsoft Office Excel 2003 使用网络查询为出发点的不同方式

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top