java深度历险Java和MS Office.pdfVIP

  • 5
  • 0
  • 约2.33万字
  • 约 33页
  • 2017-06-07 发布于湖北
  • 举报
第三章 Java 與Microsoft Office 如果你相信了他的經驗,那麼你的極限就會侷限在他的經驗之中。 █簡介 記得不久前,在網路上看到一位網友寫著: 「Java 把程式設計師和底層作業 系統隔開,因而讓不同平台上的程式可以用同一種方式開發。但是也因為如此, Java 讓程式設計師和底層作業系統之間變得毫無關聯,使得很多原本用Visual Basic 、Delphi 等原生開發工具很容易做到的事情,在Java 中卻難以做到。」 其實,就基本的概念來說,這句話是正確的,也說明了Java 在某些功能上的確 力不從心。可是,這不就是Java 之所以為Java 的理由嗎? 對實際參與 Java 應用程式開發的工程師來說,往往因為某些特殊因素(通 常是客戶和老闆的要求) ,需要完成一些與作業系統結合較緊密的程式,比方說 要從Java 應用程式裡頭去操作Windows Registry 、或是要讓Java 應用程式 可以操作未公開格式的 Microsoft WORD 文件檔。這些功能都是標準的Java 類別函式庫沒有提供的,所以,除了到網路上搜尋是否有廠商提供類似功能的元 件之外,工程師幾乎一籌莫展。這個時候,JNI(Java Native Interface)就是最 好的萬靈丹。 如果要從Java 應用程式裡頭去操作Windows Registry ,那麼我們只要寫 個簡單的轉接器(adapter) ,讓Java 叫用那些被包裝好、用來操控Windows Registry 的Win32 API 即可,如下圖所示: Java程式(Java) Windows Registry 轉接器(Java) JNI 動態聯結函式庫(C++) Win32 API 然而,如果要讓Java 應用程式可以操作未公開格式的 Microsoft WORD 文件檔,可就沒有那麼簡單了,在無法得知檔案格式的情況下,我們該如何解決 呢? 於是,問題回到基本面: 「既然只有WORD 才能讀取WORD 文件檔,那我 們就請 WORD 幫我們讀不就好了嗎? 」,此時,就必須要動用到OLE Automation 技術,方法如下圖所示: Java程式(Java) WORD文件 橋接用介面類別(Java) JNI WORD Container 動態聯結函式庫(C++) Component OLE Automation 本文所要討論的重點,就是如何在 Java 應用程式之中使用 Microsoft Office 之中所提供的軟體元件。本文的程式碼純粹為了便於展示用,沒有做過 任何最佳化。如果您要讓程式碼變得更有擴充性,請使用適當的Design Pattern 即可,程式基本的運作原理是不變的。 █本章目的 本章將教大家從無到有製作一個「套表列印模組」。此模組的功能說明如下:

文档评论(0)

1亿VIP精品文档

相关文档