2010-10-21 30 views
0

當我打開存儲在Sharepoint上的Excel文件時,我可以選擇將其打開爲只讀還是在編輯模式下。如果我打開它只讀,Excel將打開並顯示「服務器工作簿要修改此工作簿,請單擊編輯工作簿」。我需要通過ASP.NET應用程序檢索這個Excel文件,但仍然具有此服務器工作簿功能。模擬從Sharepoint檢索Excel文件

在fiddler中,我看到當在Sharepoint中打開時,使用method = getdocument將SharepointSite/_vti_bin/_vti_aut/author.dll作爲發送參數之一併將文件名作爲另一個發送到POST。

我是否需要通過ajax調用重複該POST,還是有更簡單的方法(因爲我懷疑有)?

回答

1

查看this post並發現他只是跟着javascript和被調用函數editDocumentWithProgID2,我做了幾乎那樣的事情。我只是從該功能切換到ViewDoc JavaScript功能。

<a onclick="javascript: ViewDoc('http://mysite/myfile.xlsx', 'SharePoint.OpenDocuments');"... 

這就要求我的鏈接添加到SharePoint我的網頁上的JavaScript文件Core.js:

<script src='http://mysite/_layouts/1033/core.js' type="text/javascript" 
     language="javascript"></script> 

現在,點擊該鏈接後,電子表格彈出並具有「服務器工作簿」與「編輯工作簿」按鈕

我不會真的推薦任何人複製它,因爲它非常脆弱,並且會在我們升級到Sharepoint 2010時/將會中斷,並且它會耦合ASP.NET和Sharepoint網站。但是,我們現在需要它做這項工作。

0

而不是模擬瀏覽器功能,它可能會在未來破解,首選的方法是使用sharepoint對象模型或sharepoint web服務來檢索文件。

如果這是您所指的,那麼您可以使用列表webservices來檢入/檢出函數。 http://msdn.microsoft.com/en-us/library/lists.lists_members%28v=office.12%29.aspx

除非我誤解了你的問題。

+0

我明白你的觀點在未來打破它,但我不確定如何使用列表webservice重現該功能。 – DougJones 2010-10-21 20:02:03