1. 程式人生 > >JS利用ActiveX控制元件的方式,即 Excel.Application,實現對word或者excel的列印

JS利用ActiveX控制元件的方式,即 Excel.Application,實現對word或者excel的列印

實現過程:先將需要列印的資料匯入到word或者excel中,再利用word或者excel的列印功能來實現web列印。
   下面以excel為例實現如何列印的過程
   將網頁中資料匯入excel中的方法有很多,這裡先介紹一種,利用ActiveX控制元件的方式,即 Excel.Application, 這個控制元件是MS為excel提供的程式設計介面,在很多種程式語言種都可以通過該介面來操縱excel表格。
   下面用javascript指令碼來實現一個簡單的例子。
< script language="javascript">

function ExcelPrint(){

var excelApp;//存放Excel物件

var excelBook;//存放Excel工件簿檔案

var excelSheet;//存放Excel活動工作表

try{

excelApp = new ActiveXObject("Excel. Application");//建立Excel物件}

catch(e){

alert("請啟用ActiveX控制元件設定!");

return;}

excelBook = excelApp.Workbooks.Add();//建立Excel工作簿檔案

excelSheet = excelBook.ActiveSheet;//啟用Excel工作表

var rowLen = printTable.rows.length;//table物件的行數

for (var i=0;i< rowLen;i++){

var colLen = printTable.rows(i).cells.length;//table物件的列數

for (var j=0;j< colLen;j++)//為Excel表的單元格賦值

excelSheet.Cells(i+1,j+1).value = printTable.rows(i).cells(j).innerText;} //將表格中的每個單元格的innerText匯入到excel的單元格中

excelApp.Visible = true;//設定Excel物件可見}

excelSheet.PrintOut(); //列印工作表

excelBook.Close(true); //關閉文件

excelApp.Quit(); //結束excel物件

excelApp=null;  //釋放excel物件

< /script>
  

   注意: 1.其中printTable為要列印的table,需要自己定義。

   2.執行該程式的前提是 IE要允許對沒有標記為安全的Activex控制元件進行初始化和指令碼執行。設定方法如下:

   開啟控制面板→Internet選項→安全性→自定義級別→對沒有標記為安全的ActiveX控制元件進行初始化和指令碼執行→選中啟用,這樣我們的程式就可以運行了。如果沒有啟用該ActiveX控制元件設定,那麼程式在執行建立Excel物件時會丟擲一個異常,這時可以通過catch()語句來捕獲這個異常,並且做出相應的處理。

   執行該程式必須客戶端安裝了MS EXCEL,否則Activex驅動不了。

文章來自:http://www.cnitblog.com/eprint01/archive/2008/10/23/50586.html