『壹』 web如何直接打開一個excel文檔並可以使用
web直接打開一個excel文檔並可以使用方法如下:
安裝Office以後,有一個ActiveX控制項被安
裝到了系統中,這個控制項位於「Program Files\Microsoft
Office\OFFICE11\owssupp.dll」。通過這個控制項,客戶端頁面上的java
script就可以激活本地的Office軟體,來實現打開、編輯Office(Word,Excel)文檔。(另,Office
XP應該就已經包含這個ActiveX控制項了。)
首先,用Script創建一個本地的對象:
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2"); // 為了兼容Office XP,可以創建「SharePoint.OpenDocuments.1」
然後,調用openDocObj的相應的方法。比如打開伺服器上的一個Office文檔:
openDocObj.ViewDocument("http://www.dzwebs.net/sample.doc");
openDocObj對象會根據參數中不同的Office文檔類型(.doc、.xls、.ppt)來打開不同的程序(Word、Excel、PowerPoint)。ViewDocument()方法還有一個重載簽名,可以讓我們手工指定激活哪個程序來打開文檔:
openDocObj.ViewDocument("http://www.dzwebs.net/sample.doc", 要激活的程序的ProgID);
那麼要打開Office程序在線編輯文件又如何?
openDocObj.EditDocument("http://www.dzwebs.net/sample.doc");
就
可以直接激活Word,在Word裡面編輯文檔,然後直接點擊Word裡面的保存功能,就可以將文件保存會伺服器上了。注意:為了讓Word能將編輯後的
文檔直接保存會伺服器,訪問Web站點的當前上下文的Windows
Identity必須對伺服器的相應目錄(即「http://www.abc.com/documents」這個虛擬目錄所對應的伺服器上的物理路徑)有
相應的寫許可權,否則保存動作會失敗。編輯完成後,EditDocument()會返回一個bool值,來反映編輯操作是否成功。
我們還可以通過打開伺服器上的一個文檔模版,來創建一個新的文檔:
openDocObj.CreateNewDocument("http://www.dzwebs.net/sampleTemplate.dot", "http://www.dzwebs.net/documents/");
就
可以使用「http://www.dzwebs.net/sampleTemplate.dot」這個模版來創建一個新的文檔,默認新文檔的保存地點是
「http://www.dzwebs.net/documents/」。創建新文檔時使用的程序取決於模版文件的類型(比如.dot模版會對應
Word)。新文檔的保存同樣需要注意許可權問題。CreateNewDocument()方法同樣會返回一個bool值來反映操作是否成功。
CreateNewDocument()方法的第一個參數,除了可以使用一個模版的地址外,還可以直接指定為希望用來創建新文檔的客戶端程序的ProgID。
應用實例:
<Script Language="java script">
function OpenWord()
{
var openDocObj;
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.1");
openDocObj.ViewDocument("http://www.dzwebs.net/document/shouce.doc");
}
</script>
<input type="button" name="button" value="shouce" onclick="OpenWord()">
『貳』 web如何實現客戶端列印在線文件(pdf,word,excel等),同時可以控制列印設置
瀏覽器本身並不支持,可能通過客戶端安裝一些軟體。然後瀏覽器中js調用實現。
方案1:本地軟體開了http伺服器,監聽一個埠。瀏覽器中通過127.0.0.1發jsonp請求和本地軟體通信
方案2:瀏覽器中js瀏覽器擴展通信,擴展再和本地軟體通信。可以參考chrome extension api