JS利用ActiveX控制元件的方式,即 Excel.Application,實現對word或者excel的列印
下面以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物件
注意: 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