如何通過Javascript指令碼編輯生成word?

在程式設計開發過程中,偶爾有通過開發相應程式編輯並生成word的功能,那麼該如何做呢?對於新手來說會是一件很頭疼的事情,在這我教大家一個方便實用簡單的辦法。

工具/原料

office 2003(主要是word,excel也可以適用)

1、開始錄製插入表格巨集

開啟word工具,選擇工具->巨集->Visual Basic 編輯器。

如何通過Javascript指令碼編輯生成word

在隨後出現的視窗中,“將巨集儲存在:”下拉框中,選擇文件1(文件)

如何通過Javascript指令碼編輯生成word

從常用工具欄中,點選插入表格按鈕,並選擇一個3行3列的表格

如何通過Javascript指令碼編輯生成word

在巨集錄製工具欄上,點選停止錄製按鈕

如何通過Javascript指令碼編輯生成word

此時,文件中出現了一個3行3列的表格

如何通過Javascript指令碼編輯生成word

2、檢視巨集程式碼

選擇工具->巨集->Visual Basic 編輯器

如何通過Javascript指令碼編輯生成word

在出現的Visual Basic視窗中,從左邊展開Project(文件1)中的模組,並雙擊NewMacros。

如何通過Javascript指令碼編輯生成word

接下來右邊視窗中會彈出相應程式碼

如何通過Javascript指令碼編輯生成word

3、VBA程式碼分析

分析vba程式碼

如何通過Javascript指令碼編輯生成word

4、VBA程式碼轉換為JavaScript程式碼應該注意的問題

VBA中的常量應該使用數字代替。比如上面以下VBA語句中的

wdWord9TableBehavior以及wdAutoFitFixed。

如何通過Javascript指令碼編輯生成word

要得到VBA常量的數字值,可以在Visual Basic編輯器中,隨便輸入一個Sub過程,加入MessageBox 常量即可。比如,要顯示

如何通過Javascript指令碼編輯生成word

將游標定位到Msgbox語句所在行,點選工具欄上的執行按鈕

如何通過Javascript指令碼編輯生成word

即可得到結果

如何通過Javascript指令碼編輯生成word

2)在VBA程式碼中,可以直接訪問Application物件,ActiveDocument物件,以及Selection物件。但是在使用JavaScript對NTKO OFFICE文件控制元件中的Word物件程式設計時,首先是通過控制元件物件.ActiveDocument得到word的Document物件,然後通過Document物件的Application屬性訪問Application物件。然後再通過Application物件得到Selection物件。比如:

var mydoc = ntkoobj.ActiveDocument; //得到Document物件 var app = mydoc.Application; //得到Application物件 var sel = app.Selection; //得到Selection物件

3)VBA函式或者過程呼叫支援命名引數。但是JavaScript呼叫不支援命名引數。因此,應該在Word程式設計幫助中找到相應方法的描述,按照從左到右的順序寫入引數。常量採用數字代替。中間不能有遺漏的引數。但是最後面的可選引數是可以省略的。

注意VBA中的Bool型別的常量True和False,應該替換為Js中的true和false.

注意其它Js和VBA的語法差別。比如,if語句等。以及每行js語句之後需要分號。

5、將VBA程式碼轉換為JavaScript程式碼

按照上述原則,以下VBA語句:

如何通過Javascript指令碼編輯生成word

可以遵循以下步驟被轉換為如下JavaScript程式碼: 首先查閱Tables集合的Add方法描述,在Word程式設計參考中對Tables物件的Add方法的描述如下:

如何通過Javascript指令碼編輯生成word

如何通過Javascript指令碼編輯生成word

而通過第6節,第1)步所描述的方法,可以得到wdWord9TableBehavior=1,wdAutoFitFixed=0 有了這些資訊,就可以得到如下Js程式碼:

如何通過Javascript指令碼編輯生成word

注意事項

在Word 2003中,由於安全性問題,預設情況下巨集是被禁用的,不能被執行。

有巨集的文件在開啟的時候會有安全性提示,導致使用者感覺不友好。

相關問題答案