標籤:office excel 超連結
報錯情況如
650) this.width=650;" title="QQ圖片20140708213814.jpg" alt="wKiom1O79d2Dg-7XAAPPtvB7Ivo000.jpg" src="http://s3.51cto.com/wyfs02/M01/3A/A5/wKiom1O79d2Dg-7XAAPPtvB7Ivo000.jpg" />
引用以下這位哥們的分析
http://blog.chinaunix.net/uid-7654720-id-1742038.html
“
1)在IE中直接輸入連結的地址,可以正常瀏覽。然而,在excel中也不是所有連結都不能直接存取。結合這兩點,網站伺服器、IE、excel各自都沒有問題,單獨一點都沒問題,那問題很有可能是發生在之間的“配合”問題。
2)開啟電腦的“抓包”軟體(我這裡用的是Wireshark),之後在excel中點擊不能訪問的連結,看一個抓到的結果,客戶機(我的電腦)與伺服器建立三次TCP握手之後,客戶機開始進行http請求,請求的header如下:
GET / HTTP/1.1
Accept:*/*
User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.1;SVC1;CIBA; .NET CLR 2.0.50727)
Host:www.****.com
Connection:Keep-Alive
Cookie:**************
同時在IE中直接存取連結(http://www.****.com),用httpwatch抓包,(也可以再用抓包工具來抓包,這裡用Httpwatch更方便一些,另外,在excel中直接開啟連結在IE中用httpwatch直接是抓不到那個“有問題的”連結包的,因為不能在excel中通過點選連結開啟IE視窗,所以上頁的包一定要用抓包工具Wireshark來擷取訪問內容)。請求的header如下:
GET / HTTP/1.1
Accept:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, */*
Accept-Encoding:gzip, deflate
Accept-Language:zh-cn
Connection:Keep-Alive
Cookie:**************
User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.1;SVC1;CIBA; .NET CLR 2.0.50727)
這是可以訪問的請求header,對比用“excel方式”的請求header。
主要是多了一個Accept-Language:zh-cn欄位。
通過這一步,基本上已經看出一此問題所在,那麼進行一下驗證。
3)驗證2)中的分析的所得的資訊。
telnet www.****.com 80 ,之後用下面的header發送請求:
GET / HTTP/1.1
Host:www.****.com
結果是不能得到頁面的內容。
再用下面的header發送請求
GET / HTTP/1.1
Accept-Language:zh-cn
Host:www.****.com
結果是可以得到正確的頁面內容。
由些可以“推斷出”:不能用excel直接用連結方式開啟的連結,在伺服器端WEB程式或是頁面中字元編碼設定的參數與excel中發送的請求,“不相容”。
”
解決方案來自微軟N久以前的Kb,白老闆找到並測試可以解決
http://support.microsoft.com/kb/218153/en-us
注意:中文案例中的內容沒有更新,註冊表路徑可能有誤
解決方案中的Fixit工具對目前的版本的office不適用,不過,手動修改的方法是正常的
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\xx.0\Common\Internet
建立Dword值 ForceShellExecute 並設定為 1
本文出自 “foolishfish” 部落格,請務必保留此出處http://foolishfish.blog.51cto.com/3822001/1436056